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)

Download courses from khanacademy.org

khan-dl A python script to download courses from Khan Academy using youtube-dl and beautifulsoup4.

rand-net 806 Jan 03, 2023
Most versatile Telegram torrent and youtube-dl bot.

TorToolkit Telegram So basically Tortoolkit is aimed to be the most versatile torrent leecher and Youtube-DL bot for telegram. This bot is highly cust

Yash Khadse 541 Dec 22, 2022
Download Apple Music Cover Artwork in the best Quality by providing an Apple Music Link. It downloads the jpg, png and webp version since they often differ from another.

amogus.py - Version 0.0.5 amogus - Apple Music Hi-Res Artwork Fetcher this is my first real python tool so sorry if its bad amogus is a Python script

reaper 46 Jan 09, 2023
python code used to download all images contained in a facebook uid , the uid can be profile,group,fanpage

python code used to download all images contained in a facebook uid , the uid can be profile,group,fanpage

VVHai 2 Dec 21, 2021
A Celery application to collect data, download media and extract information from social media APIs

Project IBEX A Celery application to collect data, download media and extract information from social media APIs. Requirements You must have a Redis D

ibex 4 Dec 15, 2022
A Telegram bot to download TikTok videos without any watermark.

TikTok Downloader Bot A Telegram bot to download TikTok videos without any watermark. Host on Heroku Youtube: Deployment Tutorial Demo: JayBee TikTok

Joy Biswas 184 Jan 04, 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
Download all games from a public Itch.io Game Jam

Itch Jam Downloader Downloads all games from a public Itch.io Game Jam. What you'll need: Python 3.8+ pip install -r requirements.txt For site mirrori

Dragoon Aethis 19 Dec 07, 2022
YouPlay is a python based tool for downloading YouTube videos through its URL

YouPlay is a python based tool for downloading YouTube videos through its URL. It is capable to download videos from YouTube playlists too and can extract the audio file only from the video. It can r

Nitin Choudhury 10 Sep 15, 2022
Spy Ad Network - Spy Ad Network Detection With Python

Spy Ad Network Spy Ad Network Detection Jumps from link to link to access a site

Baris Dincer 2 Jan 13, 2022
Downloads separate (specified) file to a randomly generated folder in /TEMP then executes it.

PyTemp-1 A Python3 file downloader. What you do with this code / project / idea is non of my buisness or concern, and this was made for **educational*

NightTab 1 Aug 03, 2022
An Inline Telegram bot that can download YouTube videos with permanent thumbnail support

Tube (YouTube Downloader) An Inline Telegram bot that can download YouTube videos with permanent thumbnail support About Bot need to be in Inline Mode

Renjith Mangal 30 Dec 14, 2022
AI Dungeon Catalog Archive Toolkit

AI Dungeon Content Archive Toolkit (AID CAT) AID CAT is a command-line utility that will allow you to download JSON backups of: Your private and publi

Mimi 31 Oct 26, 2022
โš™๏ธ A CLI tool that can download songs from youtube.

โš™๏ธ Music Downloader Music Downloader is a tool that can download songs from Youtube. Installation Base requirements: Python 3.7+ If you have Python 3.

matjs 4 Nov 03, 2021
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

Simeon Tsvetanov 3 Dec 14, 2022
A python script that discovers hidden YouTube API clients. Just a research project.

YouTube-Internal-Clients A script that discovers hidden internal clients of the YouTube (Innertube) API using bruteforce methods. The script tries cli

David 97 Jan 02, 2023
Tool To Get Downloads up to 4k from Paramount+

Paramount 4K Downloader Tool To Get Downloads up to 4k from Paramount+ ๐Ÿ˜„ Hello Fellow Developers/ ! Hi! My name is WVDUMP. I am Leaking the script

2 Dec 25, 2021
This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube.

This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube. If you wanted to create a tiktok video compiilation youtubbe channel this

Supriyo Sarkar 32 Dec 16, 2022
A Python package for downloading / archiving all available episodes from a podcast RSS feed.

allcasts ๐Ÿ“ป ๐Ÿ—ƒ A Python package for downloading all available episodes from a podcast RSS feed. Useful for making private archives of your favourite p

Lewis Gentle 5 Nov 20, 2022
Simple tool downloads public PoC (refer from nomi-sec)

PoC Collection This is the little script to collect the proof-of-concept which is refered from nomi-sec. The repository now is only develop for linux-

2 Aug 17, 2022