Home

Awesome

<img src="https://github.com/ChazzBurger/Spotify-Downloader/assets/54973797/0998c0ca-bc59-4cb4-a9f5-76956d3bbe27" align="right" width="12%" height="12%">

Spotify Downloader

Latest Release Downloads Open Issues Closed Issues Stars

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

Contents

Installation

Only currently supports windows. Other platforms may be coming soon

The latest release can be found Here. Installer Recommended

Follow the instructions below depending on your chosen install type.

<details> <summary><b> Installer </b></summary>

Note: Installer requires administrator privileges otherwise install will fail

IF A WINDOW COMES UP SHOWING "Windows protected your PC" click:

<details> <summary><b> Reasoning Behind This </b></summary>

This popup generally comes up when windows defender does not know much about a program being installed without a publisher. Since my program is not verified by microsoft, this will show up on first launch for almost everyone. There is not really anything that I can do about this.

</details>

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

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/ed720dd2-1862-4247-8714-b1ba9f8b3c4c" width="50%" height="50%">

Select the Spotify Downloader component (selected by default)

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/8d64c8a9-1453-4b2d-b2ee-cf40742f31d3" width="50%" height="50%">

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

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/0a8b4ec7-8fd1-41ea-a522-0182c0f0ebca" width="50%" height="50%">

Click install and wait for the installer to finish

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/d4e1628a-031a-4735-b454-ecb5b2cea886" width="50%" height="50%">

Now click Finish and the program is ready to be ran

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/563d6a7a-2c8c-47ab-b45e-00d4c8939ab9" width="50%" height="50%">

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


</details> <details> <summary><b> ZIP </b></summary>

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

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/acdfb267-7f91-49be-8c93-aca623b8749f" width="50%" height="50%">

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

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/2e7771fe-1ab3-4e7f-a040-befb0fc6f8da" width="50%" height="50%">

</details>

Usage

<details> <summary><b>Side Panel</b></summary>
<img src="https://github.com/user-attachments/assets/37bcd571-c564-421b-89b5-85915e473f6e" width="4%" height="4%"> <br/>

Download Screen Button

Error Screen Button

Settings Screen Button

Donate Button

Submit Bug Button

Help Button


</details> <details> <summary><b> Setup </b></summary>
<img src="https://github.com/user-attachments/assets/a120db45-3759-431d-85b7-3e3c8ffd3d30" width="50%" height="50%">

Download Status

Enter Song/Playlist URL

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

<details> <summary><b> How To Find Your URL </b></summary>

In App

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/7114f20e-9176-4e5b-990b-421f59ff8343" width="50%" height="50%">

In Browser

<img src="https://github.com/WilliamSchack/Spotify-Downloader/assets/54973797/409a2b15-1c9a-48d7-a9a1-3b505b699b5a" width="50%" height="50%">
</details>

Select A Save Location


</details> <details> <summary><b> Settings </b></summary>

Note: All settings are saved between sessions

Output

<img src="https://github.com/user-attachments/assets/14f2ac46-5a5d-47b0-8a3b-2e970c2aebb0" width="50%" height="50%">

Overwrite Existing Files - Recommended: OFF

Normalize Volume - Recommended: ON, -14dB

Audio Bitrate - Recommended: 192kb/s

Average File Size

Naming Format

Folder Sorting

Downloading

<img src="https://github.com/user-attachments/assets/bdd06607-dfd0-4a23-b17c-4fb66b81cdac" width="50%" height="50%">

Show Status Notifications - Recommended: ON

Downloader Threads - Recommended: 6

Download Speed Limit - Recommended: 0MB/s


</details> <details> <summary><b> Downloading </b></summary>
<img src="https://github.com/user-attachments/assets/4a19eb7f-cfb5-41c9-9d58-5e931cab5082" width="50%" height="50%">

Each track downloading will show its:

You can see your total download progress on the counter at the bottom left.

Download Progress

Pause Button

Cancel Button

Settings Button


</details> <details> <summary><b> Failed Downloads </b></summary>
<img src="https://github.com/user-attachments/assets/4e6776cc-b399-4ecf-8a8e-477b42e5e00a" width="50%" height="50%">

Shows all of the songs that failed to download due to various reasons that can include:

Return To Setup Screen Button


</details>

Features

License

Spotify Downloader is distributed under the GNU General Public License v3.0 from 17/04/2024 and Release v1.1.3

Spotify Downloader is a program that downloads songs from Spotify. Copyright (C) 2024 William Schack

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

FAQ

<details> <summary><b>Where are songs downloaded from?</b></summary> Despite what the title implies, songs are actually downloaded from youtube. The program retrieves the data of each song from spotify and uses a combination of the duration, title, artists, album, and views in special cases, to determine which songs on youtube correspond to those on spotify. You can find the algorithm behind this in <a href="https://github.com/search?q=repo%3AWilliamSchack%2FSpotify-Downloader+Song%3A%3ASearchForSong&type=code">Song.cpp under SearchForSong</a>. </details> <details> <summary><b>How accurate are the downloads?</b></summary> The downloads are almost always accurate and have only few times has downloaded the incorrect song being usually covers of a song. If the song is not on youtube at all, it will not download the song if there are no extremely similar songs in title, artists, duration, etc. After roughly 500 songs tested over many artists and genres I have only gotten around 5-10 incorrect which were all covers of songs that were not on youtube. You can find the algorithm behind this in <a href="https://github.com/search?q=repo%3AWilliamSchack%2FSpotify-Downloader+Song%3A%3ASearchForSong&type=code">Song.cpp under SearchForSong</a>. </details> <details> <summary><b>What can I download from spotify?</b></summary> You can download a playlist, album, or individual songs. Episodes are also unsupported if in a playlist/album (cannot be inputted manully), but there may also be other types of media that I have not found yet. You also cannot download all songs from a given artist but if you need to get around this the only suggestion I have is to compile all of their songs into a playlist and input that into the program but I may have a look into supporting this in the future. If you need any help finding the link for your music, there is a guide <a href="https://github.com/WilliamSchack/Spotify-Downloader?tab=readme-ov-file#usage">Here</a> under Setup > How To Find Your URL. </details> <details> <summary><b>What is the quality of the downloaded songs?</b></summary> The audio quality of each song can be configured in the settings ranging from 33-256kb/s in steps of 32 (excluding 33). The program downloads the highest quality stream from youtube usually being from 230-260kb/s and converts it to the desired quality. </details> <details> <summary><b>Can I change the file extension of output files?</b></summary> No. Not yet at least. For now they will always be outputed as an mp3 file, but this is planned to change in the future and more file extensions will come in later updates. Currently there are some things in the code that are created specially regarding mp3 files and would not work with other file extensions (taglib with the metadata assigning as an example) and would need more work put into it to accommodate for more. For now I have other updates planned before regarding this, but it will definitely be a feature soon. </details> <details> <summary><b>Why have there been months between updates?</b></summary> When I first created this project I has a lot of free time on my hands and was able to work on it for as long as I wanted, but now I have other responsibilities that are taking up a good chunk of my time and there are other projects that I work on outside of this one so I just do not have the time to work on this constantly. This project is being made out of passion and I do work on it often enough to now release updates hopefully monthly and if not bi-monthly, but do not let that put you off as I enjoy working on this project and no matter the breaks that I have taken, this will continue to be developed. If anything does happen where I am unable to work on the project anymore, I will update the readme to reflect that. </details>

Credits

Packages Used

Thanks to you for using my program :)