Package: clspotify
ClSpotifyA Spotify downloader needing only a python interpreter and ffmpeg.Matrix Server-NotABug Mirror-Main SiteRequirements:

Binaries

- Python 3.9 or greater
- ffmpeg*
- Git**

Python packages:

- pip install -r requirements.txt*ffmpeg can be installed via apt for Debian-based distros or by downloading the binaries fromffmpeg.organd placing them in your %PATH% in Windows. Mac users can install it withHomebrewby runningbrew install ffmpeg.**Git can be installed via apt for Debian-based distros or by downloading the binaries fromgit-scm.comfor Windows.Command line usage:Basic command line usage:
  python zpotify <track/album/playlist/episode/artist url>   Downloads the track, album, playlist or podcast episode specified as a command line argument. If an artist url is given, all albums by specified artist will be downloaded. Can take multiple urls.

Different usage modes:
  (nothing)            Download the tracks/alumbs/playlists URLs from the parameter
  -d,  --download      Download all tracks/alumbs/playlists URLs from the specified file
  -p,  --playlist      Downloads a saved playlist from your account
  -ls, --liked-songs   Downloads all the liked songs from your account
  -s,  --search        Loads search prompt to find then download a specific track, album or playlist
  
Extra command line options:
  -ns, --no-splash     Suppress the splash screen when loading.
  --config-location    Use a different zs_config.json, defaults to the one in the program directoryOptions:All these options can either be configured in the zs_config or via the commandline, in case of both the commandline-option has higher priority.Be aware you have to set boolean values in the commandline like this:--download-real-time=TrueKey (zs-config)commandline parameterDescriptionROOT_PATH--root-pathdirectory where ZSpotify saves the musicROOT_PODCAST_PATH--root-podcast-pathdirectory where ZSpotify saves the podcastsSKIP_EXISTING_FILES--skip-existing-filesSkip songs with the same nameSKIP_PREVIOUSLY_DOWNLOADED--skip-previously-downloadedCreate a .song_archive file and skip previously downloaded songsDOWNLOAD_FORMAT--download-formatThe download audio format (aac, fdk_aac, m4a, mp3, ogg, opus, vorbis)FORCE_PREMIUM--force-premiumForce the use of high quality downloads (only with premium accounts)ANTI_BAN_WAIT_TIME--anti-ban-wait-timeThe wait time between bulk downloadsOVERRIDE_AUTO_WAIT--override-auto-waitTotally disable wait time between songs with the risk of instabilityCHUNK_SIZE--chunk-sizechunk size for downloadingSPLIT_ALBUM_DISCS--split-album-discssplit downloaded albums by discDOWNLOAD_REAL_TIME--download-real-timeonly downloads songs as fast as they would be played, can prevent account bansLANGUAGE--languageLanguage for spotify metadataBITRATE--bitrateOverwrite the bitrate for ffmpeg encodingSONG_ARCHIVE--song-archiveThe song_archive file for SKIP_PREVIOUSLY_DOWNLOADEDCREDENTIALS_LOCATION--credentials-locationThe location of the credentials.jsonOUTPUT--outputThe output location/format (see below)PRINT_SPLASH--print-splashPrint the splash messagePRINT_SKIPS--print-skipsPrint messages if a song is being skippedPRINT_DOWNLOAD_PROGRESS--print-download-progressPrint the download/playlist progress barsPRINT_ERRORS--print-errorsPrint errorsPRINT_DOWNLOADS--print-downloadsPrint messages when a song is finished downloadingTEMP_DOWNLOAD_DIR--temp-download-dirDownload tracks to a temporary directory firstOutput format:With the optionOUTPUT(or the commandline parameter--output) you can specify the output location and format.The value is relative to theROOT_PATH/ROOT_PODCAST_PATHdirectory and can contain the following placeholder:PlaceholderDescription{artist}The song artist{album}The song album{song_name}The song name{release_year}The song release year{disc_number}The disc number{track_number}The track_number{id}The song id{track_id}The track id{ext}The file extension{album_id}(only when downloading albums) ID of the album{album_num}(only when downloading albums) Incrementing track number{playlist}(only when downloading playlists) Name of the playlist{playlist_num}(only when downloading playlists) Incrementing track numberExample values could be:{playlist}/{artist} - {song_name}.{ext}
{playlist}/{playlist_num} - {artist} - {song_name}.{ext}
Liked Songs/{artist} - {song_name}.{ext}
{artist} - {song_name}.{ext}
{artist}/{album}/{album_num} - {artist} - {song_name}.{ext}
/home/user/downloads/{artist} - {song_name} [{id}].{ext}Will my account get banned if I use this tool?There have been 2-3 reports from users who received account bans from Spotify for using this tool.We recommend using ClSpotify with a burner account.
Alternatively, there is a configuration option labledDOWNLOAD_REAL_TIME, this limits the download speed to the duration of the song being downloaded thus not appearing suspicious to Spotify.
This option is much slower and is only recommended for premium users who wish to download songs in 320kbps without buying premium on a burner account.Use ClSpotify at your own risk, the developers of ClSpotify are not responsible if your account gets banned.What do I do if I see "Your session has been terminated"?If you see this, don't worry! Just try logging back in. If you see the incorrect username or password error, reset your password and you should be able to log back in and continue using Spotify.CreditsForked from:ZSpotify(Original was taken down)Main library used:LibreSpotOriginal author:FootsieFatContributingPlease refer toCONTRIBUTINGChangelogPlease refer toCHANGELOGCommon ErrorsPlease refer toCOMMON_ERRORS