The fastest, easiest, and most accurate command-line music downloader
- Downloads music from YouTube as an MP3 file
- Applies basic metadata gathered from Spotify such as:
- Track Name
- Track Number
- Album
- Album Cover
- Genre
- and more!
spotDL is being redesigned! This means we are currently not accepting new feature requests. You can talk to us on our Discord if there is anything further.
- Python 3.6.1 or above (added to PATH)
- FFmpeg 4.2 or above (added to PATH)
YouTube Music must be available in your country for spotDL to work. This is because we use YouTube Music to filter search results. You can check if YouTube Music is available in your country, by visiting YouTube Music.
- Windows Tutorial
- OSX -
brew install ffmpeg
- Linux -
sudo apt install ffmpeg
-
Recommended Stable Version:
pip install spotdl
-
Dev Version: (NOT STABLE)
pip install https://codeload.github.com/spotDL/spotify-downloader/zip/dev
If you have trouble installing spotdl take a look at the extended installation guide here or ask for help in our discord server
curl -L https://raw.githubusercontent.com/spotDL/spotify-downloader/master/termux/setup_spotdl.sh | sh
There is an Arch User Repository (AUR) package for spotDL.
-
spotdl [trackUrl]
example:
spotdl https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b
-
spotdl [albumUrl]
example:
spotdl https://open.spotify.com/album/4yP0hdKOZPNshxUOjY0cZj
-
spotdl [playlistUrl]
example:
spotdl https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID
-
spotdl [artistUrl]
example:
spotdl https://open.spotify.com/artist/1fZAAHNWdSM5gqbi9o5iEA
-
spotdl '[songQuery]'
example:
spotdl 'The Weeknd - Blinding Lights'
Note: This is not accurate and often causes errors.
-
spotdl [pathToTrackingFile]
example:
spotdl 'The Weeknd - Blinding Lights.spotdlTrackingFile'
Note:
.spotdlTrackingFile
s are automatically created when a download starts and deleted on completion -
spotdl [songQuery1] [albumUrl] [songQuery2] ... (order does not matter)
example:
spotdl 'The Weeknd - Blinding Lights' https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID ...
Note: spotDL downloads up to 4 songs in parallel, so for a faster experience, download albums and playlist, rather than tracks.
-
spotdl "YouTubeURL|SpotifyURL"
example:
spotdl "https://www.youtube.com/watch?v=EO7XnC1YpVo|https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3"
Note: Urls have to be separated with
|
and quoted properly ex. "YouTubeURL|SpotifyUrl" -
spotdl [songUrl] --output-format mp3/m4a/flac/opus/ogg/wav
example:
spotdl [songUrl] --output-format opus
-
spotdl [songUrl] --ffmpeg path/to/your/ffmpeg.exe
example:
spotdl [songUrl] --ffmpeg C:\ffmpeg\bin\ffmpeg.exe
-
spotdl [playlistUrl] --m3u
example:
spotdl https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID --m3u
-
spotdl [songUrl] --use-youtube
example:
spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --use-youtube
-
spotdl [songUrl] --lyrics-provider lyrics_provider
available lyrics providers:
- genius
- musixmatch
example:
spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --lyrics-provider genius
-
spotdl [songUrl] --dt [number]
example:
spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --dt 8
-
spotdl [songUrl] --st [number]
example:
spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --st 8
-
spotdl [songUrl] --ignore-ffmpeg-version
-
spotdl [songUrl] --path-template 'template'
example:
spotdl https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b --path-template '{artist}/{album}/{title} - {artist}.{ext}'
possible values:
- {artist}
- {artists}
- {title}
- {album}
- {ext}
- {playlist}
For users who are not familiar with pipx
, it can be used to run scripts without
installing the spotDL package and all the dependencies globally with pip. (Effectively
skipping over the spotDL Installation step)
First, you will need to install pipx
by running:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Next, you can jump directly to running spotDL with:
pipx run spotdl ...
Interested in contributing? Check out our CONTRIBUTING.md to find resources around contributing along with a guide on how to set up a development environment.
- @ritiek for creating and maintaining spotDL for 4 years
- @rocketinventor for figuring out YouTube Music querying
- @MikhailZex for, never mind...