How many songs are on the Absolute Radio 00s playlist?

Seduced, as I have become in my middle-aged years, by the nostalgia of the early 2000s when times were simpler, summers longer and everyone had iPods full of 96kbps mp3s of landfill indie; I now listen to a lot of Absolute Radio 00s which promises to only play songs released from 2000-2009.

After many many hours of listening to the station in the car, and hearing what semeed to be the same 50 or so songs over and over again, I started to wonder just how big the station's playlist actually was. Was it confirmation bias that made it seem like they were playing Mr Brightside every time I started my car or did they actually only have a few dozen songs on the playlist, ensuring a constant repetition of only a handful of noughties bangers?

Sensing a good opportunity to finally learn how to do some web scraping, I set about interrogating the handy playlist page on the station's website to get some data so I could crack this critically important nut.

Note to the reader: if the 828 words now standing between you and the answer is too many, you can make all of your TL;DR dreams come true by clicking right here.

Scraping

Luckily, all track names and artist names were the only text inside the descriptively named 'fJkXMD' and 'fExKgU' classes so the track details were easy enough to get thanks to the combined powers of Python, Selenium and BeautifulSoup (which you can check out on Github).

Because the track names and artist names were grabbed in the same order, I was able to store the scraped data in two separate lists, one for tracks and one for artists, and use list(zip()) to create a merged list of tuples in the format [(artist, track),(artist, track),...]. This was a useful format, allowing me to access the artist-track pair (songs[i]), just the artist (songs[i][0]) or just the track name (songs[i][1]).

After this initial scraping I had a list of 1828 songs (artist / track name pairs) that were played over a period of around five days.

The answer! (Or so I thought ...)

So, how many songs are on the Absolute Radio 00s playlist? To figure that out I needed to make sure that every artist-track pair appeared only once in my list. I'd like to say that I came up with this elegant solution myself but it was Lead Engineer Google who told me that I could simply convert my list to a dictionary (and then back to a list) and, because dictionaries do not allow duplicate entries, I would end up with a list of unique songs from the station's playlist.

uniqueSongs = list(dict.fromkeys(songsforDict))

So, *drumroll*, how many songs are in the Absolute Radio 00s playlist?

print(len(uniqueSongs))

489 songs!

489 songs? I should check that ...

As satisfying as it was to get an answer, I quickly became suspicious that this wasn't the answer. After all, 489 is a bit of an odd number. Although licensing agreements might affect the total number of available songs at any given moment, I assume a human being is responsible for picking the playlist and 489 seemed like such an un-human number. It's not like every song on the playlist is a stone cold hit. Surely any human being worth their salt would find another 11 songs to round it out to a nice fat 500?

Despite having an estimated five days of playlist data, I wasn't sure if that was enough time to loop through the entire playlist. I figured a quick way to check would be to see if there were any songs in the full 1798 list of played songs that were broadcast only once. If any song appeared in the list only once, it would suggest that the entire playlist hadn't necessarily been played through during that time and, therefore, that there were yet undiscovered songs on the playlist.

A few lines of python later and I had my answer: there were a whopping 46 songs that had been played only once during those five days. So could I be sure I'd scraped every song on the playlist? No, reader I could not.

Coming back for more

Now, I could have scheduled the scraper to run at regular intervals on PythonAnywhere, written the data to a file and then analysed that but, given I knew (or so I thought ...) that the max number of songs was fairly limited I just ran this script every few days manually rather than also take on the challenge of debugging things on a remote server.

I wrote a new script to look for songs in a scrape that weren't already in the list of unique songs and then added those new songs into it, creating a running master list.

Slowly but surely over the course of three months (!) I dilligently ran my script every few days and, just when it had returned no new songs for weeks on end, a new song would pop up that I'd never seen before. I think this is because: (a) the playlist wasn't as static as I had thought and songs were slowly being added and removed and (b) the Christmas period played absolute havoc on the playlist as it became artificially bloated with the hastily thrown together and long-forgotten Christmas single offerings from a benighted crop of B and C-tier noughties indie hopefuls which distorted what I imagined would be the normal ebb and flow of playlist changes.

Get on with it! Just tell us how many songs are on the playlist!

Well, after many hours of work on what must qualify as one of the planet's most niche and least important questions; I can finally reveal, with much fanfare, and bombast, and other non-specific platitudes, that the answer is ...

more than 500 songs and likely less than 550. Probably.

Oh.

To paraphrase the Hitchhiker's Guide: while I have been inaccurate, I have at least been definitively inaccurate. In fact, I would go as far to say that one cannot find a less inaccurate figure for the number of songs on the Absolute Radio 00s playlist anywhere else on the internet.

While I am still picking up new songs I've never seen, I'm doing so at such a slow rate that I doubt I'll hit 550 (current count is at 516) and, no doubt, songs are also being removed from the playlist at a similarly slow rate and I don't have any mechanism to count those because, to be honest, I thought I would find all the unique songs in a couple of weeks max, rather than the months that this has dragged on for.

And what are the songs on the playlist?

I'm going to refrain from posting the list of songs. To be honest, I'm unsure of the legality of posting the whole playlist and, aside from the legal question, as a former (student) radio DJ myself I know a lot of work goes into creating and evolving a station's playlist. But, if you really want to know, then you too can write some Python code and scrape away! If I can do it, anyone can.

What artist has the most songs on the playlist?

A quick insight from the data? Go on then. But was it ever in doubt? The omnipresent 00s soft rockers Coldplay are the winners here with a whopping 14 songs on the playlist. That's five more than the next most represented artists: Eminem, Kasabian, Kings of Leon and Muse.

So, what was the point of all that?

Here comes the science philosophy bit. Concentrate!

The question of how many songs are on the Absolute Radio 00s playlist, and the process of (sort of) answering it, is one of the reasons I love programming. Here's this stupid question, no more than an idle musing, that has no reasonable manual way to answer it but, because you can program, because you know what you can ask a computer to do, you know it can be answered and that all you need is perseverence, some code and (turns out) quite a lot of time to spend on your fleeting curiosity.

The answer doesn't matter. I can't do anything with it now I know it. Hell, the question doesn't really matter either. But, this is a question I had and, through the combinatory magic of my own curiosity, some Python libraries and a lot of StackOverflow copy and pasting, I was able to answer it.

By answering this question, I got to experience the exhilarating magic of forging a computer into a bicycle for my mind.

Why climb a mountain?
Because it's there.

Why count the number of songs on the Absolute Radio 00s playlist?
Because you can.

In conclusion ...

Epilogue

Next mission: what are the most played songs?

So if there are more than 500 unique songs, why does it always feel like they're playing the same ones?

Well, we can see from our scrapes already that some songs are played way more than others. In our biggest scrape the station played 'Welcome to The Black Parade' nine times whereas Avril Lavigne's masterful telling of star-cross lovers, 'Sk8er Boi', was criminally played only twice so there must be significant variation in play frequency across the playlist.

Aha! Another idle musing! The journey continues ...

Published 2025-01-11