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)

Source code of paper: "HRegNet: A Hierarchical Network for Efficient and Accurate Outdoor LiDAR Point Cloud Registration".

HRegNet: A Hierarchical Network for Efficient and Accurate Outdoor LiDAR Point Cloud Registration Environments The code mainly requires the following

Intelligent Sensing, Perception and Computing Group 3 Oct 06, 2022
Download clips from youtube videos with a few clicks and a GUI!

YouClip v2.0.0 Table Of Contents: What Is YouClip Installation Usage Stuff To Fix Changelog What Is YouClip? ! IMPORTANT: The source files are a total

ador 2 Oct 05, 2021
Itchio Downloader Tool with python

Itchio Downloader Tool Install pip install git+https://github.com/emersont1/itchio Download All Games in library from account python -m itchio.downloa

Peter Taylor 69 Dec 05, 2022
Download and save Bing wallpapers and set as background for GNOME desktop

Save Bing wallpapers and set as background for GNOME desktop This script downloads the Bing wallpaper and sets it in the background of your gnome desk

manikamran 2 Nov 06, 2021
Bulk Downloader for Reddit

saveddit is a bulk media downloader for reddit pip3 install saveddit Setting up authorization Register an application with Reddit Write down your clie

Pranav 136 Jan 03, 2023
Download a large file from Google Drive (curl/wget fails because of the security notice).

gdown Download a large file from Google Drive. Description Download a large file from Google Drive. If you use curl/wget, it fails with a large file b

Kentaro Wada 2.7k Jan 09, 2023
A discord bot for downloading youtube video and audio files

disctube disctube is a discord bot for downloading video and audio files from youtube using python pytube. disclaimer i am not the best python program

razor420 3 Feb 03, 2022
A downloader for Cave Story written in Python

Cave Story Downloader This is a downloader for Cave Story written in Python. Thi

Imsad2 2 Feb 16, 2022
Utility for downloading works from AO3 (Archive Of Our Own)

ao3d video preview A small graphical utility for batch downloading works from AO3 (Archive Of Our Own) Features Batch downloading works to supported f

flux 24 Dec 09, 2022
A youtube downloader, built with flask yt-dlp

Built With Python Flask - The Python micro framework for building web applications. yt-dlp - A youtube-dl fork with additional features and fixes

Abhijith N T 13 Dec 17, 2022
This is a Text Data Analysis Project Involving (YouTube Case Study).

Text_Data_Analysis This is a Text Data Analysis Project Involving (YouTube Case Study). Problem Statement = Sentiment Analysis. Package1: There are m

1 Mar 05, 2022
抖音批量下载助手

抖音批量下载助手

HuangSK 303 Jan 05, 2023
Heroic-gogdl - GOG Downloading module for Heroic Games Launcher

heroic-gogdl GOG download module for Heroic Games Launcher Purpose This will tak

Paweł Lidwin 36 Dec 23, 2022
Downloads state flags from wikipedia for states/regions from all countries

world-state-flags Downloads state flags from wikipedia for states/regions from all countries This data is NOT curated Uses https://github.com/dr5hn/co

João Ribeiro Bezerra 2 Dec 15, 2022
This is a python based web scraping bot for windows to download all ACCEPTED submissions of any user on Codeforces

CODEFORCES DOWNLOADER This is a python based web scraping bot for windows to download all ACCEPTED submissions of any user on Codeforces Requirements

Mohak 6 Dec 29, 2022
pubmex.py - a script to get a fancy paper title based on given DOI or PMID

pubmex.py is a script to get a fancy paper title based on given DOI or PMID (can be also combined with macOS Finder)

Marcin Magnus 13 Nov 20, 2022
This package helps you to directly download an APK from Google Play by providing the package id of the app

Apk Downloader About | Features | Technologies | Requirements | Starting | License | Author 🎯 About This package helps you to directly download an AP

Daniel Agyapong 9 Dec 11, 2022
Code to scrape , download and upload to youtube daily

Youtube_Automated_Channel Code to scrape , download and upload to youtube daily INSTRUCTIONS Download the Github Repository Download and install Pytho

Atsiksdong 2 Dec 19, 2021
Noto fonts go universal! Download Noto fonts combined to suit your region

noto-cjk Noto CJK fonts Noto Serif CJK update was released on 25 October 2021. We moved the release history and other notes into both Sans and Serif s

Google Fonts 2k Jan 02, 2023
Simple python script to download .mp3 formatted files from YouTube video URLs

Introduction: Simple python script to download .mp3 formatted files from YouTube video URLs Requirements: Requires: youtube_dl module Requires: ffmpeg

Pat 2 Aug 18, 2022