MCPcopy Create free account
hub / github.com/WilliamSchack/Spotify-Downloader

github.com/WilliamSchack/Spotify-Downloader @v1.11.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.11.6 ↗ · + Follow
755 symbols 916 edges 179 files 55 documented · 7% updated 58d agov1.11.6 · 2026-05-17★ 47929 open issues

Browse by type

Functions 366 Types & classes 389
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Spotify Downloader

Latest Release Downloads Open Issues Closed Issues Stars Ko-Fi

Spotify Downloader is an application that allows you to easily download spotify playlists and songs through YouTube without the need of Spotify Premium through an easy to use GUI and many customisable settings to get the output that you desire.

[!CAUTION] Note that users are responsible for any potential legal consequenses that comes with downloading music. I do not condone unauthorized downloading of copyrighted material and do not take any responsibility for user actions. I highly encourage you to purchase the songs directly from the artists to support them and their work

[!NOTE] Rework In Progress

App is currently going through a complete rework and refactor, view the v2 Plans & Details discussion for details, and the v2 branch for the current progress

Since this is also going to take a while and a lot of work, I have opened monthly memberships with some rewards so if you want to support development please check it out :)

Contents

Installation

Only currently supports windows. Other platforms may be coming soon

The latest release can be found Here. For multiple use Installer Recommended, for single use Portable Recommended

Follow the instructions below depending on your chosen install type.

Installer


Choose your install location. Default is "C:/Program Files/Spotify Downloader" but you can change this to anywhere you like.

Note: If the program is already installed in the chosen location, it will overwrite and update the old install

Select the Spotify Downloader component (selected by default)

The program will add a shortcut to the start menu and the name can be changed here

Click install and wait for the installer to finish

Now click Finish and the program is ready to be ran

You can open the program through the start menu or from the installed location through "Spotify Downloader.exe"


Portable/ZIP


Unzip the file to any location through your chosen unzipping software.

The program can now be ran through "Spotify Downloader.exe"


Windows protected your PC popup, Windows Defender false positive


Since I am not a known publisher to microsoft and the app is not signed, the "Windows protected your PC" popup will always happen on first open and on some machines Windows defender may block the app from running if you are using the portable version

The only way I would be able to fix this is to sign the app but certificates are very costly and not something I would consider doing

Closing the "Windows protected your PC" popup

Click: - More Info - Run Anyway

The popup should not open again after the first time running the app. It most likely will happen after updating the app though

Windows Defender detecting the app

This has been fixed and the app has been excluded from windows defender scans, if the app is still getting blocked, updating your malware definitions should fix it:

  1. Open command prompt as administrator and change directory to c:\Program Files\Windows Defender
  2. Run “MpCmdRun.exe -removedefinitions -dynamicsignatures”
  3. Run "MpCmdRun.exe -SignatureUpdate"

Usage

[!WARNING] Please note that downloading too many songs in a short time span can lead to YouTube flagging your IP and preventing further downloads (Will not effect your YouTube experience). I have not experienced it personally and have downloaded a few thousand songs within a day on a few occasions when testing but there is a case where someone downloaded 5000 songs in one day which got their IP flagged so if you intend to download a large amount of songs it is safer to spread it out over a few days or limit your download speed in the settings.

User Interface

Side Panel


Note: Icon colour can be toggled to white by changing the Sidebar Icons Colour setting

Download Screen Button - Takes you to the setup or processing screen depending on if a download is started or not

Error Screen Button - Takes you to the previous download's song errors - Note: Button is non-interactable and faded if no previous download has errors

Settings Screen Button - Takes you to the settings screen

Notices Screen Button - Takes you to the notices screen - Can be hidden in the settings

Donate Button - Click to donate and support the development of this program - Note: Opens in browser

Update Button - Click to check for updates - The icon will change state depending on the checking status, and if an update is available or not - If an update is available it will redirect you to the newest github release - Note: Opens in browser

Submit Bug Button - Click to submit an issue to the github repo - Note: Opens in browser

Help Button - Click to access the help documentation (What you are reading now) - Note: Opens in browser


Setup


Download Status - Shows the result of the last download

Enter Song/Playlist URL - The URL to your songs you would like to download - You can click the paste button directly to the right to input the copied text from your clipboard into the input - Accepts: - Singlular Songs - Playlists - Albums

Note: Your playlist or album must be public or else it will not work

How To Find Your URL

In App - Right click Your chosen song or playlist - Share - Copy link to playlist

In Browser - Click on your playlist or song - Copy the URL

Select A Save Location - The path to your download location - You can click the browse button directly to the right to browse to a location - Note: Saved between sessions


Settings


Note: All settings are saved between sessions

Output

Overwrite Existing Files - Recommended: OFF - If enabled, downloading will overwrite previously downloaded files or not

Codec - Recommended: M4A - The format the each song will be output as - Note: All formats will be converted from M4A and as a result WAV & FLAC are lossy and only implemented for convenience

Codec Details - Displays conversion details to remind that it is converted from an M4A file - Shows what type of metadata is used for the selected format - Shows warnings in red when something is different (No cover art for example)

Normalize Volume - Recommended: ON, -14dB - If enabled, changes the value of all songs to the same depending on its average volume.
- Quite: -17dB - Normal: -14dB - Loud: -11dB

Auto Best Quality - Recommended: ON - If enabled, the bitrate will not be modified and the download will use the bitrate from the youtube video - Only disable if you want to manually set the bitrate yourself

Audio Bitrate - Recommended: 128kb/s - Sets the output quality of each song downloaded - The quality range will change depending on the codec and if you have YouTube Premium - Non-MP3 (No Premium / Premium) - High Quality: 128kb/s, 256kb/s - Good Quality: 92kb/s, 192kb/s - Low Quality: 64kb/s, 128kb/s - MP3 (No Premium / Premium) - High Quality: 192kb/s, 320kb/s - Good Quality: 160kb/s, 256kb/s - Low Quality: 128kb/s, 192kb/s

Average File Size - Displays a estimated file size based on the chosen bitrate - The file size is different for if you use a compressed or PCM file format - Compressed File Size (MB) = (bitrate(kbs) * duration seconds) / 8) / 1024 - PCM File Size (MB) = (44.1 * (16 / 8) * 2 * duration seconds) / 1024 - PCM files use a preset 44.1kHz, 16 bits, & 2 channels - Calculation without preset is (Sample Rate * (Bits Per Sample / 8) * Channels * Seconds) / 1024 - Does not take into account metadata, an extra ~0.9MB is added

Artist Separator - Recommended: ; - Sets the seperator between artists in the metadata

Track Number - The track number that will be assigned to the metadata - Playlist - The playlist track number - Album - The album track number - Disk - The disk number

File Name - Enclosing tag input sets the characters to open and close a tag - Left character sets the opening input - Right character sets the closing input - File Name Input sets the output name of each song. - Each tag must be enclosed with the characters set in the left input field - If there are multiple songs with the file name, the spotify id will be appended to the end. - Can only include the currently implemented tags listed below

Sub Folders - Enclosing tag input sets the characters to open and close a tag - Left character sets the opening input - Right character sets the closing input - Sub Folders Input sets the sub folders within the chosen directory that each song will be saved to - Each tag must be enclosed with the characters set in the left input field - Can only include the currently implemented tags listed below

Create LRC File - Creates a LRC file for each song downloaded

LRC File Type - Enclosing tag input sets the characters to open and close a tag - Left character sets the opening input - Right character sets the closing input - Input specifies how the lrc file will be named. This must be an ABSOLUTE FILE PATH using <Download Path> will make it relative to the download path - "../" is also valid, it will go back a folder - Save Location is also a valid tag which will make the file relative to the download path

File Name, Sub Folders, LRC File Tags - These are the tags that can be used by the File Name & Sub Folders settings - Song Name - Name of the song - Album Name - Name of the album - Song Artist - Name of the first artist of a song - Song Artists - Names of each artist of a song "Artist1, Artist2, Artist3,

Core symbols most depended-on inside this repo

Shape

Class 343
Method 253
Function 113
Enum 46

Languages

C++100%

Modules by API surface

Spotify Downloader/Config.h24 symbols
Spotify Downloader/Network/YTMusicAPI.cpp23 symbols
Spotify Downloader/UI/UIUtilities.cpp19 symbols
Spotify Downloader/Downloading/Song.cpp17 symbols
Spotify Downloader/Network/SpotifyAPI.cpp15 symbols
Spotify Downloader/Downloading/PlaylistDownloader.cpp15 symbols
Spotify Downloader/UI/UISetup.cpp13 symbols
Spotify Downloader/include/taglib/tversionnumber.h12 symbols
Spotify Downloader/Network/MusixmatchAPI.cpp12 symbols
Spotify Downloader/Downloading/Codec.h12 symbols
Spotify Downloader/Downloading/SongDownloader.cpp11 symbols
Spotify Downloader/include/taglib/tfile.h10 symbols

For agents

$ claude mcp add Spotify-Downloader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page