In New Zealand, there is a radio station name “The Rock“, that vows to never play the same song twice in a single day (Between 9 – 5). They call it “The Rock No Repeat Workday”. Snappy. It sometimes changes into a competition where they will intentionally play the same song twice in a day and you can call up to win a prize etc.
One of the main criticisms of The Rock, is that even if it doesn’t play the same song between 9 – 5, it still plays the same song everyday, often at the same time. To be fair to them, it’s probably no different to the criticism hurled at any popular radio station really. Anecdotal, I used to listen to the radio as I was getting up in the morning, and I used to swear that for weeks on end, I would be getting up to the same song.
Rather than live with the idea in my head that they “may” be playing the same songs. I sought to see if they really were. What a brilliant use of my free time I thought (/s)! But really, I had some time to kill as work was settling down for the xmas holidays, so let’s do this!
I had this crazy idea that I could stream the radio to my computer, and run some sort of Shazam type API to work out what song they were playing. But as it turned out, it’s much easier than that. The radio station keeps a page updated, that lists songs they have played that day : http://www.therock.net.nz/Shows/Workday.aspx . It’s not completely in real time, but it’s close enough that each day I can download the songs and store them somewhere for later analysis.
Weirdly enough, when I started trying to rip the contents of the page. I noticed that hidden in the page, was the ENTIRE setlist for that day, not just what it showed on the page. Even songs that were played at 2am were actually in the source code, and then they ran this amazing piece of code to decide whether to show it or not.
if((day !="Sat")&&(day !="Sun")&&(art !="")&&(hour >=9)&&(hour <18)&&(day == weekday[d.getDay()]))
document.write("<tr><td class='np_date' valign='top'>"+hour+":"+minute+"</td><td class='np_title2' valign='top'>"+tit+"</td><td class='np_artist' valign='top'>"+art+"</td><td></td></tr>");
What that’s basically saying is, if today isn’t a Saturday or a Sunday, and it’s between 9 and 6, then you can show the song. Otherwise, even though the song is written to the webpage anyway, just don’t show it to the user. If you ever wondered why The Rock website is so f-ing slow, this is the reason. The webpage is over 4000+ lines of code long, but most of it is just repeated junk just to output 20 songs on a page. Crazy stuff.
Anyway, I whipped up a quick app that would start at 11:45PM every night on my computer and hit up the page to download the list of songs. It would then save them down into a CSV, and that would be it. Unfortunately, it seems like TheRock removes some entries every now and again, so I didn’t always get complete days. But still, I recorded 1300 songs played by the radio station.
The award for most replayed song goes to… Mountain At My Gates – Foals. Played 18 times so 1.3% of all songs played.
The award for most played band goes to… Red Hot Chili Peppers. Played 34 times so 2.6% of all songs played. (They were closely followed by Foo Fighters with 33 plays).
And some other numbers that I found rather interesting. In total, there was 610 unique songs in the list. And 242 total unique bands. I would say the total is probably somewhat less than that, because I didn’t bother cleaning the list of “feat” artists.
If you want the CSV file to download for yourself, you can grab it here. Let me know what other cool numbers you come up with in the comments! Initially I wanted to work out if the same band was played roughly the same time per day, (e.g. Foo Fighters in the morning, Pearl Jam for your evening), but my Excel Fu is really not that great.
For those that may be interested (Not many), here is the very simple C# code I wrote to download the list.