https://github.com/daniel-191/spotify-downloader
Download your music! (GUI, Webpage, CLI - Cross Platform)
https://github.com/daniel-191/spotify-downloader
application cli desktop-app desktop-application downloader downloadermp3 downloaders gradio music music-downloader pyqt5 python spotify spotify-api spotify-downloader spotify-downloader-gui webapp webpage website yt-dlp
Last synced: about 1 month ago
JSON representation
Download your music! (GUI, Webpage, CLI - Cross Platform)
- Host: GitHub
- URL: https://github.com/daniel-191/spotify-downloader
- Owner: Daniel-191
- License: mit
- Created: 2025-11-21T14:53:43.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-09T21:01:47.000Z (5 months ago)
- Last Synced: 2026-02-01T23:46:03.699Z (5 months ago)
- Topics: application, cli, desktop-app, desktop-application, downloader, downloadermp3, downloaders, gradio, music, music-downloader, pyqt5, python, spotify, spotify-api, spotify-downloader, spotify-downloader-gui, webapp, webpage, website, yt-dlp
- Language: Python
- Homepage:
- Size: 71.3 KB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎵 Spotify Downloader
Download your **Spotify playlists, albums, and tracks** for free!
This script takes a **Spotify link** (album, playlist, or track) and downloads the corresponding audio directly from **YouTube**, converting it with `ffmpeg`.
---
## ✨ Features
- Paste a **Spotify link** (playlist / album / track) and let the script do the rest
- Downloads full **playlists**, **albums**, or single tracks
- Converts audio to **MP3** format using `ffmpeg`
- Beautiful **colored console output** with progress bars
- **Modern PyQt6 GUI** - Clean, modern desktop interface
- **Web Interface** - Gradio-based web UI for browser access
- Simple setup with **automated installation scripts**
- Cross-platform support: **Windows**, **macOS**, **Linux**
- **Multiple extraction methods** - Tries different approaches to fetch track lists
- **Error handling** - Automatically retries failed downloads
---
## Preview

---
## 📦 Requirements
Make sure you have the following before starting:
- [Python 3.10+](https://www.python.org/downloads/)
- [ffmpeg](https://ffmpeg.org/download.html) (required for MP3 conversion)
- Internet connection (to fetch from Spotify + YouTube)
---
## 🔧 Installation
### 1. Clone the repository
```bash
git clone https://github.com/Daniel-191/Spotify_Downloader
cd Spotify_Downloader
```
### 2. Install dependencies
- **Windows:** Double-click `install.bat` or run:
```bash
install.bat
```
- **macOS/Linux (Terminal):**
```bash
chmod +x install.sh
./install.sh
```
- **Manual Installation:**
```bash
pip install -r requirements.txt
```
### 3. Install `ffmpeg`
You'll need `ffmpeg` installed and accessible in your system PATH.
- **Windows:**
1. Download ffmpeg from [ffmpeg.org/download.html](https://ffmpeg.org/download.html)
2. Extract the downloaded ZIP file to a folder
3. Add ffmpeg to your system PATH:
- Open **System Properties** → **Environment Variables**
- Under **System Variables**, find and edit **Path**
- Add the path to ffmpeg's `bin` folder
- Click **OK** to save
4. Restart your command prompt and verify with: `ffmpeg -version`
**Need help?** Watch this tutorial for guidance: https://www.youtube.com/watch?v=jZLqNocSQDM&t=33s
- **macOS (Homebrew):**
```bash
brew install ffmpeg
```
- **Linux (Debian/Ubuntu):**
```bash
sudo apt update
sudo apt install ffmpeg
```
- **Linux (Fedora):**
```bash
sudo dnf install ffmpeg
```
- **Linux (Arch):**
```bash
sudo pacman -S ffmpeg
```
---
## 🚀 Usage
### Choose Your Interface
This application offers three different interfaces:
#### 1️⃣ Desktop GUI (PyQt6) - **Recommended**
Launch the modern desktop application:
- **Double-click** `run_gui.pyw`
- **Or run:** `python run_gui.pyw`
#### 2️⃣ Web Interface (Gradio)
Launch the web-based interface:
```bash
python main.py
# or
python3 main.py
```
Access through your browser at `http://localhost:7860`
#### 3️⃣ Command Line Interface (CLI)
For terminal users:
```bash
python cli.py "https://open.spotify.com/playlist/..."
```
### Using the Downloader
When prompted, paste a Spotify link:
- **Track** → `https://open.spotify.com/track/...` → downloads the song
- **Album** → `https://open.spotify.com/album/...` → downloads all songs in the album
- **Playlist** → `https://open.spotify.com/playlist/...` → downloads the entire playlist
The script will:
1. Extract track information from Spotify
2. Search for each track on YouTube
3. Download the best audio match
4. Convert to MP3 format
5. Save to the `downloaded/` folder
---
## 🖥 Supported Operating Systems
- ✅ Windows
- ✅ macOS
- ✅ Linux
---
## 📝 Dependencies
This project uses the following Python packages:
| Package | Purpose |
|---------|---------|
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | YouTube downloading |
| [requests](https://requests.readthedocs.io/) | HTTP requests to Spotify |
| [colorama](https://github.com/tartley/colorama) | Colored terminal output |
| [urllib3](https://urllib3.readthedocs.io/) | HTTP client utilities |
| [gradio](https://www.gradio.app) | Web interface |
| [PyQt6](https://www.riverbankcomputing.com/software/pyqt/) | Desktop GUI framework |
**External Dependencies:**
- [FFmpeg](https://ffmpeg.org/) - Audio conversion (must be installed separately)
---
> [!WARNING]
> This project is for **educational purposes only**.
> Downloading copyrighted content without permission may violate copyright laws.
> Please support artists by streaming legally on [Spotify](https://spotify.com) or purchasing their music.