Daily snapshots of public Spotify playlists
Spotify's playlists are great. I like that they're updated once in a while - change is good! I don't like, however, that it's impossible to see older versions. How am I supposed to remember the name of that song I really liked? Apparently, I'm not alone: see here, here, here, here, here, here, here, here, and here. Since Spotify won't take snapshots of our favorite playlists, let's do it ourselves!
- To view the current version of a playlist, click on its name below
- To see all songs that ever belonged to a playlist, click "cumulative"
- To determine which songs were added or removed from a playlist, click "githistory"
- To add a playlist to the archive, simply
touch playlists/plain/<playlist_id>
and make a pull request
This repository contains a script for scraping Spotify playlists and publishing them back to the repo. The script is run daily via Travis CI (free for public GitHub repos). It's also run after every commit, which means that playlists get regenerated whenever the scraping or formatting logic changes, or when new playlists are added - cool!
The script determines which playlists to scrape by looking at the file names in
playlists/plain
. Anything that's not a valid playlist ID gets removed. Files
that are a valid playlist IDs get regenerated: a pretty version of each
playlist gets dumped in playlists/pretty
, new tracks are added to the
files in playlists/cumulative
, and a plaintext version of each playlist is
written back to playlists/plain
. The plain version is sorted alphabetically,
rather than by track number, so that it only changes when tracks are added or
removed, making Git History a nice way to visualize
how the playlist evolves over time.
This project uses pip-tools
to manage
dependencies.
To get started, first create and activate a new virtual environment:
$ python3.10 -m venv venv
$ source venv/bin/activate
Then install pip-tools
:
$ pip install pip-tools
Lastly, use pip-sync
to install the dev requirements:
$ pip-sync requirements/requirements-dev.txt
The list below is autogenerated.
- Altar
- Coffee Club
- Daily Mix 1
- Daily Mix 5
- Dance Party
- Dance Rising
- Deep House Grooves
- Discover Weekly
- Fresh Finds - Basement by Spotify
- Fresh Finds Dance
- golden hour
- Italian Sunset
- Jazz Vibes
- Lorem
- Melodic & Euphoric
- metropolis
- PARTY MODE
- Poolside Disco
- Release Radar
- Retrowave Outrun
- Serotonin
- Sunny Mix
- TECHNO BUNKER
- The Wind Down
- vaporwave
- Warehouse Party