Downloads songs from your Spotify My Music collection(well, almost...)
#Tell me more! I wanted an easy way to grab the songs present in my library so I can download it & use it offline(Spotify still hasn't launched here. Y U NO COME?). spotify_to_mp3 worked well but it relied on grooveshark, which unfortunately is no more.
So I wrote this script which mimics that library, but instead of downloading from grooveshark, it provides you with a file of youtube URLs which you can then plug into youtube-dl
###How do I get this thing running?
Pre-requisite: You need Python 3+
- Clone this repo
- Install dependencies using
pip install -r requirements.txt
- Optional (Using Virtualenv)
pip install virtualenv
cd my_project_folder
virtualenv venv
source venv/bin/activate
- Enter your spotify userid in tokens.py
- Create your Spotify app & fetch the keys from Spotify Developer Console. Paste the client id, secret, redirect URL in tokens.py. Note the redirect URL can be a valid URL, just ensure it matches with what you have entered in the developer console & in the script.
- Create your YouTube api & fetch the keys from Google Developer Console. Paste the keys in tokens.py.
- Run the script using
python spotify-dl.py
.- Note by default, this doesn't download the songs. To download, pass
-d
as well. Ex:python spotify-dl.py -d
- To download to a specific directory, pass the directory along with
-o
. Ex:python spotify-dl.py -d -o c:\music
- To make the script act on a specific playlist of yours instead of saved tracks, use '-p' option along with playlist id. Ex:
python spotify-dl.py -p 18NLt215Rh58uE30QNLOiX
- Note by default, this doesn't download the songs. To download, pass
- Click on the URL prompted to authenticate. Once logged in, paste the URL back in
- To retrieve download songs as MP3, you will need to install ffmpeg.
- Linux users can get them by installing libav-tools by using apt-get (
sudo apt-get install -y libav-tools
) or a package manager which comes with your distro - Windows users can download FFMPEG pre-built binaries from here. Extract the file using 7-zip to a foldrer and add the folder to your PATH environment variable
###Credits
##Issues, Feedback, Contact details Feel free to raise any bugs/issues under Github issues. Pull requests are also more than welcome. You can reach me on twitter at @sathyabhat or drop a mail sathya at sathyasays dot com