17 Instructions for Downloading Songs
Ritiek Malhotra edited this page 2020-06-14 14:39:03 +05:30

DEPRECATED: The documentation has moved to https://spotdl.readthedocs.io/en/latest/home.html

This wiki is now kept for legacy reasons.


Download by Name

For example

  • We want to download Fade by Alan Walker, run the command:
$ spotdl --song "alan walker fade"
  • The script will automatically look for the best matching song and download it in the folder Music/ placed in the root directory of the code base.

  • It will now convert the song to an mp3 and try to fix meta-tags and album-art by looking up on Spotify.

  • The --song parameter can also accept multiple tracks like so:

$ spotdl --song "alan walker fade" "tobu candyland"

For example

  • We want to download the same song (i.e: Fade by Alan Walker) but using Spotify Link this time that looks like https://open.spotify.com/track/2lfPecqFbH8X4lHSpTxt8l, you can copy it from your Spotify desktop or mobile app by right clicking or long tap on the song and copy HTTP link.

  • Run:

$ spotdl --song https://open.spotify.com/track/2lfPecqFbH8X4lHSpTxt8l

It should download Fade by Alan Walker.

  • Just like before, it will again convert the song to an mp3 but since we used a Spotify HTTP link, the script is guaranteed to fetch the correct meta-tags and album-art.

Download by File

For example

  • We want to download Fade by Alan Walker, Sky High by Elektromania and Fire by Elektromania just using a single command.

Let's suppose, we have the Spotify link for only Fade by Alan Walker and Fire by Elektromania.

  • Just make a list.txt anywhere on your drive and add all the songs you want to download, in our case it is
https://open.spotify.com/track/2lfPecqFbH8X4lHSpTxt8l
elektromania sky high
https://open.spotify.com/track/0fbspWuEdaaT9vfmbAZr1C
  • Now pass --list=/path/to/list.txt to the script, i.e:
$ spotdl --list=/path/to/list.txt

and it will start downloading songs mentioned in list.txt.

  • The script will remove the track from the list file once it gets downloaded with metadata applied, and then continue to the next track. So in case if you accidentally interrupt the download, you can always re-launch the same command back and the script will continue downloading the tracks from where it left off.

NOTE: Songs that are already downloaded will prompt you to overwrite or skip. This behaviour can be changed by passing --overwrite {prompt,skip,force}.

  • You can copy the Spotify URL of the playlist and pass it in --playlist option. Note: This method works for public as well as private playlists.

For example:

$ spotdl --playlist https://open.spotify.com/user/nocopyrightsounds/playlist/7sZbq8QGyMnhKPcLJvCUFD
  • The script will load all the tracks from the playlist into <playlist_name>.txt

  • Run: spotdl --list=<playlist_name>.txt to download all the tracks (see #download-by-file for more info).

  • You can copy the Spotify URL of the album and pass it in --album option.

For example

$ spotdl --album https://open.spotify.com/album/499J8bIsEnU7DSrosFDJJg
  • The script will load all the tracks from the album into <album_name>.txt

  • Run:

$ spotdl --list=<album_name>.txt

to download all the tracks (see #download-by-file for more info).

Download by Username

  • You can also load songs using Spotify username if you don't have the playlist URL. (Open profile in Spotify, click on the three little dots below name, "Share", "Copy to clipboard", paste last numbers or text into command-line: https://open.spotify.com/user/0123456790)

  • Try running

$ spotdl -u <your_username>

It will (only) show all your public playlists (which excludes collaborative and private playlists).

  • Once you select the one you want to download, the script will load all the tracks from the playlist into <playlist_name>.txt.

  • Run:

$ spotdl --list=<playlist_name>.txt

to download all the tracks (see #download-by-file for more info).

  • You can copy the Spotify URL of the artist and pass it in --all-albums option.

For example

$ spotdl --all-albums https://open.spotify.com/artist/1feoGrmmD8QmNqtK2Gdwy8
  • The script will load all the tracks from artist's available albums into <artist_name>.txt

  • Run:

$ spotdl --list=<artist_name>.txt

to download all the tracks (see #download-by-file for more info).

  • You can copy the YouTube URL or ID of a video and pass it in -s option.

For example

  • Run:
$ spotdl -s https://www.youtube.com/watch?v=lc4Tt-CU-i0

It should download 2SCOOPS by Donuts.