Downloads songs from your Spotify My Music collection or any Spotify playlist
#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+
-
Install using pip
pip install spotify_dl
-
Create your Spotify app & fetch the client id and client secret from Spotify Developer Console. These keys then need to be assigned as
SPOTIPY_CLIENT_ID
,SPOTIPY_CLIENT_SECRET
andSPOTIPY_REDIRECT_URI
environment variables.You can set environment variables in Linux like so:
export SPOTIPY_CLIENT_ID='your-spotify-client-id' export SPOTIPY_CLIENT_SECRET='your-spotify-client-secret' export SPOTIPY_REDIRECT_URI='your-app-redirect-url'
Windows users, check for this question for details on how you can set environment variables.
Note the redirect URL can be a valid URL, just ensure it matches with what you have entered in the developer console & in the environment variable above.
-
Create your YouTube API key & fetch the keys from Google Developer Console. Set the key as
YOUTUBE_DEV_KEY
environment variable as mentioned above. -
Run the script using
spotify_dl
. spotify_dl accepts different parameters, for more details runspotify_dl -h
. For most usersspotify_dl -d -p playlist_id -u user_name -o download_directory
should do whereplaylist_id
is the id of the playlist where songs need to be downloaded. If this is skipped then it will download songs ftom your "My Music" collectionuser_name
is the user name who created the playlist.download_directory
is the location where the songs must be downloaded to.
-
A first time run will require authentication; you will need to 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
- rhnvrm for adding in youtube-dl
- mr-karan for adding save to directory
- shantanugoel for adding in User playlist support
- sildur for adding any user playlist support and other fixes
- avinassh for being a Rockstar and not teleporting over to my house to kill me when I innundated him with questions
##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