Code Monkey home page Code Monkey logo

spotify-playlist-archive's Introduction

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 (7042)

spotify-playlist-archive's People

Contributors

mackorone-bot avatar github-actions[bot] avatar mackorone avatar twomilesblue avatar catzs avatar jesse27 avatar mjmawins avatar maciejpedzich avatar mixgrill924 avatar wanniethecharacter avatar romiljain23 avatar robbycuenot avatar apoclyps avatar litebrick204 avatar fortytwo102 avatar kairixir avatar searching2020 avatar bananabeer19 avatar prillan avatar officiallskillstreet avatar ttrnwcz avatar wlritchi avatar haydenelza avatar barefootdingo avatar blitxzx avatar borstinology avatar choonchew avatar cleoni avatar curtisjk avatar danceder avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.