Passive Spotify Downloader by Ozuru
Passive Spotify Downloader (PSD) passively downloads songs streamed through Spotify. It is intended to be ran in the background while listening to Spotify. PSD detects when a song is being played and records it as it's being listened to.
I started this project because I was annoyed how how Spotify's mobile app has thousands of ads compared to the few I come across on the computer. When Spotify is playing, the program downloads the file. Optimally, the output file is synced with mobile to allow cross-platform playing. If a file has been recorded already, it creates a copy of it in a file with the timestamp.
Example output of the program running:
- Virtual Audio Cable
- Audio Router (if this is removed, I will upload a mirror)
- Python 2.7.x
This guide assumes you have everything installed and the program's files extracted somewhere.
- Download and extract the files somewhere. It doesn't matter where.
- Open Audio Router and Virtual Audio Cable's Control Panel and Audio Repeater.
- In Audio Router, make Spotify output to Virtual Audio Cable's Line 1.
- In Virtual Audio Cable's Audio Repeater, set your wave in to "Line 1 (Virtual Audio Cable)" and wave out to whatever your speakers/headphones are set to.
- Ensure the sample rate (in Audio Repeater) is set to 44100. This is what Spotify plays at.
- Set the total buffer to 500 and buffers to 12. Increase this if you have issues with the audio quality.
You're done! What we effectively did is route Spotify's output to a separate audio cable line and then route that audio to your speakers. This is so you can listen to Spotify while it is recording and isolated. Enjoy the music.
To run the program (after opening Spotify):
python spotifyrip.py
The program will then list all devices. Type the number of the Virtual Audio Cable input and then hit enter. It is typically the first one that is highlighted green. See the example below.
Once selected, go ahead and resume play on Spotify. It will then start recording and give a progress bar and ETA:
To stop the program, a CTRL + C interrupt exits it gracefully.
This value is the path to where the storage folder is located. No trailing slashes.