blog.andrewle.com

Is There a Song for Every Day of the Year?

December 31, 2022

data, music

I text a few friends each year on May 16th. As former teenagers who loved pop-punk, skateboarding, and video games, there's no better distillation of those interests than Lagwagon's May 16 featured on Tony Hawk's Pro Skater 2 soundtrack. Listening to it today evokes a time and place, a welcome reminder in our temporally ambiguous era.

So naturally I thought, "Is there a song for every day of the year?" There are only 365 (sometimes 3661) days. Surely there will be some very popular ones, but they can't all be accounted for, can they? I'd need to search song names and lyrics in all the different ways a date can be represented:

FormatExampleNote
OrdinalJanuary 1steasy to match
1st of January
WordsFirst of Maystill good
May the First
PlainJanuary 1will get results for January 10-19 and January 1979 mixed in as well
1 January 2023
LyricsDo you remember the 21st night of September?lyric search API required
Numbers1/31, 01-01-2023symbols and small numbers are not great search terms
InternationalAvril 14
OtherJan 1stAbbreviations and combinations of the above
1st of Jan

Collection

I'll be using Spotify's Search API and starting with ordinal formatted dates. The API returns all the information you'd want (artist(s), album art, available markets, published date) but we're only interested in the song title. Here's an excerpt of track names when searching "January 1st":

[
  "January 1st (feat. Jacquees & Trap Boy Freddy)",
  "Cocaine Blues - Live at Folsom State Prison, Folsom, CA (1st Show) - January 1968",
  "JANUARY 1ST",
  "January 1st, 1908",
  "January 1st",
  "I Still Miss Someone - Live at Folsom State Prison, Folsom, CA (1st Show) - January 1968",
  "January 1st",
  "25 Minutes to Go - Live at Folsom State Prison, Folsom, CA (1st Show) - January 1968",
  "January 1st",
  "January 1st (Tool Chaos)",
  ...
]

We're limited to 1000 total results, and only 50 at a time. Out of the first 50, only 19 are exact matches. I'll want to store the unique Spotify ID (so I know I've seen this track already when it shows up again in later searches), a standardized date* (to unify all the different formats), and any other relevant data that can be used to display this later.

track database

*The database requires a year even though not every song is tied to a year.

Cleanup

After looking at the data I collected, I decided that live performances don't count, so I'm ignoring names that contain live at, live @, live from, live in, and songs ending in - live (this includes live versions of songs named after a day).

ignored tracks

Here's a chart of the ~19,000 songs I collected:

Most popular day by a long shot: July 4th
Least popular day: February 25th

Other Considerations

  • Removing duplicates
  • Manually adding songs
  • Songs that mention more than one date in the title or lyrics

Make Me a Mixtape

Now that we have a bunch of songs we know belong to a specific date, the rest of the process goes like this:

  1. Programmatically create a playlist called "EverydayPlaylist - January 1st"
  2. Select all the 2022-01-01 tracks from my db and add to the playlist
  3. There were only two steps

populated playlist

1. A leap year is also called "bissextile". The extra day is an "intercalary". The next one is in 2024.