So, lets assume you have an oldschool friend with a flip phone and a CD player.
You want to share some cool track with them, but it must arrive as a mixtape CD otherwise they can’t play it.
In the Netherlands we are allowed to make digital copies of our media.
In the 80’s when cassettes came out the music/movie industry worried that people would use it to make mixtapes of vinyl records, so they convinced the gov to add a copy tax to all storage media sold under the assumption that some people will use it to store music or films.
This now includes all usb disks, sd cards, hard disks etc, so I am in my legal right to want to save a copy.
Sadly Spotify don’t have a save to CD option, so I googled.
Turns out there is a nice python solution called Zspotify, it’s user friendly, can download liked songs or playlists or specific Spotify URLs you throw at it.
Their code is at.
Quickly audited the python code, it doesn’t seem to be calling home or sending my spotify creds to china, So that’s good.
Didn’t check their windows exe binary, so idk anything about it.
I noticed that their community uses a decentralized chat server instead of the usual forum/discord/github chat to protect against being taken down. I like.
It’s called Matrix https://matrix.org/ and it uses different client software to log into the chat network.
Didn’t read much yet how they decentralize the user management, I assume cryptocoin wallet style but will learn more later.
In any case, made a user, logged into the room at https://matrix.to/#/#zspotify:matrix.org , nice and helpful community.
Then I fired up a fresh ubuntu VM and ran the following commands:
Install the code:
git clone https://github.com/Footsiefat/zspotify.git
cd zspotify/
sudo apt install python3-pip
pip3 install -r requirements.txt
Fix a problem with one of the python files:
Then run the app and download a playlist:
python3 zspotify -p --skip-previously-downloaded=true --download-real-time=true --language=en --print-download-progress=true
–download-real-time=true makes the download slow to listening speed so my spotify acct (hopefully) doesnt get banned.
Instead of -p (playlist) the following can be used:
Different usage modes:
(nothing) Download the tracks/alumbs/playlists URLs from the parameter
-d, --download Download all tracks/alumbs/playlists URLs from the specified file
-p, --playlist Downloads a saved playlist from your account
-ls, --liked-songs Downloads all the liked songs from your account
-s, --search Loads search prompt to find then download a specific track, album or playlist
It saves the native spotify file format .ogg which is fine for me. It can also convert to mp3.
First time run it will ask for spotify creds and save them in an encrypted file on the disk.
Then choose the playlist from the list, let it download.
Now the hard part, finding a cd burner that works.