About
Through the Night is a 6-hour overnight broadcast of classical music curated by BBC Radio 3 that first aired in May 1996. From 1998 the BBC began sharing it with neighbouring European broadcasters under the title Notturno.
The programme is unusual in that (with rare exceptions) it does not draw on commercial releases. It is built mostly from live concert recordings supplied by members and associates of the European Broadcasting Union (EBU) and distributed with cleared rights to EBU partners. As a result, its corpus is distinctive, extensive, and relatively underexplored.
I listen to it live, which means it is the soundtrack to my weeknight life from the evening till the start of the small hours. For its target audience across Europe it is more like 1am to 7am. Nightowls unite.
What this is
This website and the tools used to build it were created out of a single question asked in the small hours: didn't I hear the Vaughan Williams Tallis Fantasia not long ago? The best way to know for sure was to get the programme data into a format that I could query. Once I had that data I found that I could ask a lot more questions.
Method
Programme data is gathered from the BBC website using the public episode JSON endpoint
and (for episodes after 2012) the segments.json endpoint that provides additional metadata for
each piece. This data is stored without additional modification in a SQLite database.
The primary challenge with this dataset is canonicalisation and normalisation: there is tremendous variation in how pieces are described from airing to airing and how composer names are spelled, especially when transliteration and different local norms are involved. (For instance, there are 13 variants of Peter Ilyich Tchaikovsky in the corpus.)
Some of this inconsistency can be offset by consolidating works by catalogue or opus number, some by semantic filtering for similiarity, but much of it requires identifying duplicates and creating aliases by hand. This is inevitably an ongoing process as new episodes are broadcast.
Beginning with the 2012-03-15 episode, broadcasts have additional metadata available
in segments.json that assigns specific performances a
PID (the BBC's unique
programme identifier) within the p-range that indicates it comes from the internal
PIPs database.
This PID can then be used to identify repeat airings of a performance over time. The
segment metadata also includes MusicBrainz IDs (MBIDs) that can be used to verify works,
composers, ensembles and performers if there is any ambiguity.
For earlier episodes the metadata is essentially limited to the published text on
the BBC website (stored in the long_synopsis field in the JSON version) but we take an
educated guess to bridge the gap when it appears that a pre-2012 performance matches
a later airing with an assigned PID.
What this cataloguing process reveals to the casual overnight listener is twofold: the BBC maintains a large repertoire of performances from its own orchestras and broadcasts together with those supplied by its EBU partners, but pieces are rarely broadcast just the once. Instead, they enter the rotation and are called upon semi-regularly. Some become mainstays of the overnight schedule: a sample of these are gathered under the title "house performances".
Performers and ensembles identified in the segment data by a MusicBrainz ID receive their own page once their work receives more than 20 airings. These pages gather everything definitively identified to them. Names credited without a MBID or that haven't yet met the 20-airing threshold remain as plain text.
How to use this website
Here are a few starting points for navigating through the data:
Check the rankings: the website ranks the popularity of works, specific performances, composers, ensembles, etc.
Discover the different performances of a particular work: popular works such as the Franck Violin Sonata in A major have multiple distinct performances. The dedicated work page shows which performances have been broadcast.
Explore the current episode: use the episode listing to explore the featured works of a particular composer, look at the popularity of a work, and identify the broadcast history of a specific performance over the 16 years for which programme data exists.
Search for specific works and composers: the search bar goes beyond the rankings to cover the whole corpus, and uses the static Pagefind search library to identify relevant pages without the need for excessive bandwith.
Who made this?
I'm Nick Sweeney. Other Nick Sweeneys exist but weren't around in the 90s to grab the domain name. I am a former academic, former sysadmin and devops person, former lots of things. I am a British person who lives in the US with a voice-activated tube that plays classical music most nights. But not Sundays, when Guy Garvey's on.
Attribution & takedown
This project is an independent, non-commercial hobby tool. It is not affiliated with, authorised by, or endorsed by the BBC in any way. "BBC", "Radio 3", and "Through the Night" are the property of the British Broadcasting Corporation.
Programme and performance data is derived from the public episode and segment JSON from BBC Radio 3's Through the Night's episode pages. All programme links go to bbc.co.uk.
To request removal of anything on this site, contact: hello@notturnometer.com.
Colophon
This website and the command line tools to scrape and analyse episode data were built as a way to test Claude Code, combined with 30 years of experience with websites and command-line tools and data-wrangling. The biggest specific value of LLM-backed coding in this project has been to identify and merge variant titles and spellings.
The command line tools use Python to populate and query SQLite. (The requests
library remains fantastic.) The website is built statically using Jinja templates.
Source code (but not the databases) is available on GitHub.
Direct inspiration for this project comes from Matthew Somerville's Theatricalia and Matt Webb's Braggoscope. 🫡 Indirect inspiration for whatever this is comes from Jesse/obra's superpowers and ed3d's skills.