A Spotify downloader needing only a python interpreter and ffmpeg.

Overview

Stars Forks Size

ZSpotify

A Spotify downloader needing only a python interpreter and ffmpeg.

Discord Server - Matrix Server - Gitea Mirror - Main Site

Requirements:

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 from ffmpeg.org and placing them in your %PATH% in Windows. Mac users can install it with Homebrew by running brew install ffmpeg.

**Git can be installed via apt for Debian-based distros or by downloading the binaries from git-scm.com for Windows.

Command line usage:

Basic command line usage:
  python zspotify <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 directory

Options:

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=True

Key (zs-config) commandline parameter Description
ROOT_PATH --root-path directory where ZSpotify saves the music
ROOT_PODCAST_PATH --root-podcast-path directory where ZSpotify saves the podcasts
SKIP_EXISTING_FILES --skip-existing-files Skip songs with the same name
SKIP_PREVIOUSLY_DOWNLOADED --skip-previously-downloaded Create a .song_archive file and skip previously downloaded songs
DOWNLOAD_FORMAT --download-format The download audio format (aac, fdk_aac, m4a, mp3, ogg, opus, vorbis)
FORCE_PREMIUM --force-premium Force the use of high quality downloads (only with premium accounts)
ANTI_BAN_WAIT_TIME --anti-ban-wait-time The wait time between bulk downloads
OVERRIDE_AUTO_WAIT --override-auto-wait Totally disable wait time between songs with the risk of instability
CHUNK_SIZE --chunk-size chunk size for downloading
SPLIT_ALBUM_DISCS --split-album-discs split downloaded albums by disc
DOWNLOAD_REAL_TIME --download-real-time only downloads songs as fast as they would be played, can prevent account bans
LANGUAGE --language Language for spotify metadata
BITRATE --bitrate Overwrite the bitrate for ffmpeg encoding
SONG_ARCHIVE --song-archive The song_archive file for SKIP_PREVIOUSLY_DOWNLOADED
CREDENTIALS_LOCATION --credentials-location The location of the credentials.json
OUTPUT --output The output location/format (see below)
PRINT_SPLASH --print-splash Print the splash message
PRINT_SKIPS --print-skips Print messages if a song is being skipped
PRINT_DOWNLOAD_PROGRESS --print-download-progress Print the download/playlist progress bars
PRINT_ERRORS --print-errors Print errors
PRINT_DOWNLOADS --print-downloads Print messages when a song is finished downloading
TEMP_DOWNLOAD_DIR --temp-download-dir Download tracks to a temporary directory first

Output format:

With the option OUTPUT (or the commandline parameter --output) you can specify the output location and format.
The value is relative to the ROOT_PATH/ROOT_PODCAST_PATH directory and can contain the following placeholder:

Placeholder Description
{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 number

Example 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}

Docker Usage

Pull the official docker image (automatically updates):
  docker pull cooper7692/zspotify-docker
Or build the docker image yourself from the Dockerfile:
  docker build -t zspotify .
Create and run a container from the image:
  docker run --rm -u $(id -u):$(id -g) -v "$PWD/zspotify:/app" -v "$PWD/zs_config.json:/zs_config.json" -v "$PWD/ZSpotify Music:/ZSpotify Music" -v "$PWD/ZSpotify Podcasts:/ZSpotify Podcasts" -it zspotify

Google Colab

There is a community maintained repo for Google Colab at Ori5000/zspotifycolab designed to make it easier to add songs to Google Drive or orther cloud services.

Will my account get banned if I use this tool?

Currently no user has reported their account getting banned after using ZSpotify.

There have been 2-3 reports from users who received account bans from Spotify for using this tool.

We recommend using ZSpotify with a burner account. Alternatively, there is a configuration option labled DOWNLOAD_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 ZSpotify at your own risk, the developers of ZSpotify 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.

Contributing

Please refer to CONTRIBUTING

Changelog

Please refer to CHANGELOG

Common Errors

Please refer to COMMON_ERRORS

You might also like...
Youtube video downloader and info extractor for python.

tube_dl Tube_dl is a Simple Youtube video downloader for Python. A Modular approach to bypass and download Youtube Videos and Playlist from Youtube us

YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Created using Python, PyTube and PySimpleGUI.
YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Created using Python, PyTube and PySimpleGUI.

YouTube Downloader YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Disclaimer It's

Using Youtube downloader is the fast and easy way to download and save any YouTube video.
Using Youtube downloader is the fast and easy way to download and save any YouTube video.

Youtube video downloader using Django Using Django as a backend along with pytube module to create Youtbue Video Downloader. https://yt-videos-downloa

Vinetrimmer-DRM-TOOL - Widevine DRM downloader and decrypter for AMZN|NF|STAN And all

🍃 ✂️ Vinetrimmer Widevine DRM downloader and decrypter. Thanks to wvleaks for t

music downloader written in python.   (Uses jiosaavn API)
music downloader written in python. (Uses jiosaavn API)

music downloader written in python. (Uses jiosaavn API)

Youtube Video Downloader Using Python Gui Appliction with progress Bar
Youtube Video Downloader Using Python Gui Appliction with progress Bar

Youtube-Video-Downloader Youtube Video Downloader Using Python Gui Appliction with progress Bar Module Used Pytube Tkinter Pil Urllib Bytes Io LICENSE

Ebook downloader built using python

ebook-downloader Getting Started Open a terminal and run the following commands. git clone github.com/georgemunyoro/ebook-downloader cd ./ebook-downlo

This is Yt Downloader. Coded with Python (my first repository)
This is Yt Downloader. Coded with Python (my first repository)

Get Started Download & install Python first before using this software. Download Python Installing Python and Pytube Library (IMPORTANT) Installing Py

A simple kemono.party downloader using python.

kemono-dl This is a simple kemono.party downloader. How to use Install python Download source code from releases and extract it Then install requireme

Releases(v0.5)
  • v0.5(Nov 27, 2021)

    Updated to v0.5.2 pre release updater included in the batch folder. Update.bat will update ZSpotify source code to the newest version on GitHub. the updater may break your install if there is a bug in the current code on GitHub use at your own risk Default Locations - install Location @ /desktop/ZSpotify Downloads @ /desktop/ZSpotify/ZSpotify Music && /ZSpotify Podcast Config @ /desktop/Zspotify/config.json credientials @ /desktop/ZSpotify/Source

    This installer will give you the option to install Python, & Git, which are Dependencies of this program, and allow you to select the install location as well as set the %path% variables for git and python and ffmpeg, if they are not already setup.

    the files included in the installer are ZSpotify source code + FFmpeg, the Python + Git installers are downloaded from official websites.

    Source code(tar.gz)
    Source code(zip)
    ZSpotify-v0.5.1.2.exe(21.25 MB)
  • v0.2.4.1(Oct 29, 2021)

    Updated to 0.2.4

    Includes ffmpeg in the zip run the .exe file in the same folder as ffmpeg.exe zs_config is located on the desktop -- used the change default download locations and other settings such as file type the default download location is the Desktop/ZSpotify Music the credentials file will be stored in the folder the .exe is run from.

    Source code(tar.gz)
    Source code(zip)
    ZSpotifyv2.4.1.zip(37.07 MB)
  • v0.2.4(Oct 27, 2021)

    Updated to 0.2.4

    • Includes ffmpeg in the zip
    • run the .exe file in the same folder as ffmpeg.exe
    • zs_config is located in %temp% aka C:/Users/yourusername here/AppData/Local/Temp -- used the change default download locations and other settings such as file type
    • the default download location is %temp%/ZSpotify Music AKA C:/Users/yourusername here/AppData/Local/Temp/ZSpotify Music
    • the credentials file will be stored in the folder the .exe is run from.
    Source code(tar.gz)
    Source code(zip)
    ZSpotify-0.2.4v2.zip(37.07 MB)
  • v0.2.3(Oct 25, 2021)

    Changed naming to match source code in CHANGELOG

    Changes since v0.0.1:

    • This release no longer requires zs_config.json as it will create one automatically if it does not already exist.
    • Simplified audio format options.
    • Use absolute paths for download directories.
    • Fixed an issue with applying metadata.
    • Can now download all of an artists songs, not just all albums.
    • Fixed an infinite loop.
    • zs_config.json file located in %appdata%/Local/Temp
    • Credentials file located in directory .exe is ran from.
    • The password is hidden by default you won't see anything being typed but it is typing.
    • extract ffmpeg binaries ffmpeg.zip into same folder as .exe if ffmpeg is not installed.
    Source code(tar.gz)
    Source code(zip)
    ffmpeg.zip(76.10 MB)
    ZSpotify0.2.3.exe(11.83 MB)
  • v0.0.1(Oct 24, 2021)

Youtube-downloader-using-Python - Youtube downloader using Python

Youtube-downloader-using-Python Hii guys !! Fancy to see here Welcome! built by

Lakshmi Deepak 2 Jun 9, 2022
YouTube-Downloader - YouTube Video Downloader made using python

YouTube-Downloader YouTube Videos Downloder made using python.

Shivam 1 Jan 16, 2022
Youtube Downloader is a simple but highly efficient Youtube Video Downloader, made completly using Python

Youtube Downloader is a simple but highly efficient Youtube Video Downloader, made completly using Python

Arsh 2 Nov 26, 2022
the best video downloader for terminals (currently only compatible with Linux and Windows)

the best video downloader for terminals (currently only compatible with Linux and Windows)

Amaral 2 Oct 14, 2021
Tkinter based YouTube video downloader works on pytube 11.0.2. Can download YouTube videos in 720p(HD), 144p and even only audio.

YouTube-Downloader Tkinter based YouTube video downloader works on pytube 11.0.2. Can download YouTube videos in 720p(HD), 144p and even only audio. G

Manav Grover 2 Dec 27, 2021
Download songs and playlists from Spotify for free!

spotify-to-mp3-converter You can basically understand the process with just this image but for clarity, these are the steps. Before using the exe down

null 2 Jan 25, 2022
This Program helps you download songs from the Spotify track's link you give in.

Spotify-Downloader-GUI This Program helps you download songs from the Spotify track's link you give in. It uses yt-dlp to download songs from Youtube.

Harish 12 Jun 14, 2022
Tool to get Canvas cover videos from Spotify tracks.

Spotify Canvas Downloader Tool to get Canvas cover videos from Spotify tracks. ✨ Try it out Building Clone the repository git clone https://github.com

Gabriel 35 Dec 28, 2022
bing image downloader app used to download bulk images for a specific search term created using streamlit and bing_image_downloader python packages

bing image downloader app bing image downloader app is used to download bulk images for a specific search term. bing image downloader app gets the sea

Siva Prakash 8 Apr 5, 2022