spotify-dl
Spotify Downloader
Download audio files from spotify links(Based on: youtube-dl)
Required
Get FFMPEG
(Node.js 14)[https://nodejs.org/en/download/package-manager/]
Note: if you run into issues related to puppeteer chromium download please try PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install -g spotify-dl
spotifydl
A simple commandline utility that allows you to download Spotify Songs, Shows, Episodes, Playlists and Albums from Youtube.
PLEASE NOTE:
- The ability to find a video is dependent on the fact it is hosted on youtube, and even then there is a chance it is still incorrectly matched
- Some items may only be available to spotify premium users, please be sure to provide a username and password when this is the case
Installation
NPM
Install from npm registry
npm install -g spotify-dl
or You can do manually
git clone https://github.com/SwapnilSoni1999/spotify-dl cd spotify-dl npm install npm link
Android (Termux)
PS: You may need to type termux-setup-storage
first and allow storage permission
sh -c "$(curl -fsSL https://raw.githubusercontent.com/SwapnilSoni1999/spotify-dl/master/tools/termux.sh)"
Docker
Build docker image:
git clone https://github.com/SwapnilSoni1999/spotify-dl cd spotify-dl docker build -t spotify-dl .
Usage
To download highest quality audio file
spotifydl <spotify track/album/playlist link> ...
Example
$ spotifydl https://open.spotify.com/track/xyz
Options
Flag
Long Flag
Usage
–o
–output
takes valid output path argument
–es
–extra-search
takes extra search string/term to be used for youtube search
–oo
–output-only
enforces all downloaded songs in the output dir
–sf
–search-format
provide template for youtube api, supports albumName
, artistName
,itemName
“something {itemName} – {albumName} anyrandomextrastring”
–ef
–exclusion-filters
comma separated string of exclusion filters
each filter will be checked against the description and title if found the link will be ignored
–st
–saved-tracks
download spotify saved tracks
–ss
–saved-songs
download spotify saved shows
–sp
–saved-playlists
download spotify saved playlists
–sa
–saved-albums
download spotify saved albums
–l
–login
Requests a login in an external window (non tty should use –u and –p) (Docker without -it is non tty)
–u
–username
spotify username for headless long (Note: you must use –login once to grant access)
–p
–password
spotify password
–cf
–cache-file
takes valid output file name path argument
–dr
–download-report
output a download report of what files failed
–cof
–cookie-file
takes valid file name path argument to a txt file for youtube cookies
–v
–version
returns current version
–h
–help
outputs help text
Notes
To use –u and –p (headless login) you must do a –l once first to grant required permissions (playlists, saved songs ect.)
if you receive ‘Got a spotify api error WebapiRegularError: An error occurred while communicating with Spotify’s Web API
Details: non existing id’ you may need to provide auth either use --l
for manual login prompt or --u username --p password
for headless login
If you receive a 429 error please provide a cookies file given the --cof
flag, to generate a cookies file please refer to Chrome or Firefox
Docker
docker run -it --user=$(id -u):$(id -g) -v $(pwd):/download --rm spotify-dl <options-to-spotify-dl defaults to --help> docker run -it --user=$(id -u):$(id -g) -v $(pwd):/download --rm spotify-dl "https://open.spotify.com/...."
Acknowledgements
thanks to icons8 for icons in hero image
and all the contributors for PR, suggestions and testing :love:
License
MIT © Swapnil Soni