Download all your Spotify playlists.
This script is thin wrapper around the incredible Zotify app, which does all the heavy lifting. Zotify is currently missing 2 features that this script helps with:
- Automatically get a URL list of all of a user's playlists (as opposed to specifying them manually).
- Generate M3U playlist files for each playlist downloaded.
Songs from all playlists are downloaded into a single common directory, along with an M3U file for each playlist. Existing songs are not re-downloaded. Any existing songs that are no longer found in any playlist are deleted.
Since this is meant as a quick workaround until Zotify adds the above features, it isn't the most user-friendly. Note that:
- Zotify authenticates with your regular Spotify username/password, but this repo needs Spotify API credentials instead. This means you'll have to setup the Spotify API and authenticate twice (both methods).
- Part of the script is written in Bash, so will not work on Windows.
- Ensure Node.js and Zotify are installed.
- Copy
template.env
to.env
and fill out theCLIENT_ID
andCLIENT_SECRET
with your own Spotify client details.- Set the redirect URI to
http://127.0.0.1:8080/
(including trailing slash). - You could set the environment variables in some other way if you prefer.
- Set the redirect URI to
- Optionally, create an
IGNORED_PLAYLISTS.txt
file in the script directory with a list of playlist names to ignore. You can also add aADDITIONAL_PLAYLISTS.txt
containing a list of playlist IDs and names to include even if they are not found in your profile. - Run
./SpotifARRR.sh <path to destination directory>