Mediaeater / spotify-playlist-archive

Daily snapshots of public Spotify playlists

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spotify-playlist-archive Workflow status Save the Children

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: [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20].

Since Spotify won't take snapshots of our favorite playlists, let's do it ourselves!

Quick start

There are two options for browsing the archive:

  1. https://spotifyplaylistarchive.com/
  2. Use the autogenerated list below

To add a playlist to the archive, see these instructions.

To recreate an old version of a playlist:

  1. Use https://spotifyplaylistarchive.com/ to find the snapshot you want
  2. Use the "Copy track URLs" button to copy the URLs to your clipboard
  3. Paste them into a Spotify playlist via the Spotify web or desktop app

How it works

This repository contains a script for scraping Spotify playlists and publishing them back to the repo. The script is run daily via GitHub Actions. 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.

The script determines which playlists to scrape by looking at the file names in playlists/registry. Files get regenerated as follows: 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 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.

Aliases

Aliases are alternative playlists names. They're useful for avoiding naming collisions when archiving personalized playlists, which have the same name for every user. To add an alias, add a single line containing the desired name to playlists/registry/<playlist_id>.

Playlists (6514)

About

Daily snapshots of public Spotify playlists

License:MIT License


Languages

Language:Python 100.0%