A fork of Neuvillette-dc/spotify-downloader (itself a fork of spotDL/spotify-downloader) with a Flask web GUI, Unraid Community Applications support, and several bug fixes.
Download your Spotify playlists, albums, artists and tracks along with embedded album art, synced lyrics and rich metadata — sourced from YouTube.
A clean browser-based interface so you never need to touch the command line:
- Download by Spotify URL — track, album, playlist or artist
- Download via CSV export from Exportify — no Spotify API credentials required
- Output format, bitrate and file template controls
- Real-time log streaming with colour-coded output
- Job queue with cancel support
- Built-in file browser for your music directory
- Settings tab for Spotify API credentials and YouTube cookie file
A ready-made template for Unraid users — one-click install from the Apps store. Config and credentials are stored in appdata, completely separate from your music share.
KeyError: 'genres'— fixed crash when Spotify API returns incomplete genre data for a track or album--skip-existingflag removed — replaced with the correct--overwrite skipsyntax for this version of spotDL
- Direct CSV downloading (no Spotify account needed)
- Reliable synced lyrics via
syncedlyrics - Robust metadata — no more "Invalid MultiSpec" errors
- Graceful Ctrl+C handling
- Suppressed non-fatal 401 noise from Musixmatch
docker run -d \
--name spotDL-GUI \
--restart unless-stopped \
-p 5000:5000 \
-v /path/to/your/music:/music \
-v /path/to/appdata/spotDL-GUI:/config \
lffpicard/spotdl-gui:latestThen open http://localhost:5000 in your browser.
version: "3"
services:
spotdl-gui:
image: lffpicard/spotdl-gui:latest
container_name: spotDL-GUI
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- /path/to/your/music:/music
- /path/to/appdata/spotDL-GUI:/config- Open the Apps tab in Unraid
- Search for spotDL-GUI
- Click Install and set your music output path
- Access the GUI via the WebUI button in the Docker tab
git clone https://github.com/LFFPicard/spotDL-GUI.git
cd spotDL-GUI
docker build -t spotdl-gui .
docker run -d -p 5000:5000 -v /path/to/music:/music -v /path/to/config:/config spotdl-guiPaste any Spotify URL into the URL box — one per line if you want multiple at once:
| Type | Example |
|---|---|
| Track | https://open.spotify.com/track/... |
| Album | https://open.spotify.com/album/... |
| Playlist | https://open.spotify.com/playlist/... |
| Artist | https://open.spotify.com/artist/... |
Note: URL downloads require your own Spotify Developer API credentials (see below). The artist URL will attempt to download the full discography so be prepared for large jobs.
- Go to exportify.net and log in with your Spotify account
- Export any playlist as a CSV file
- In the GUI, drag and drop (or click to browse) the CSV file into the upload zone
- Hit Start Download
This mode bypasses the Spotify API entirely — perfect if you don't have developer credentials or hit rate limits.
Using your own credentials avoids rate-limit errors on large downloads.
- Go to developer.spotify.com/dashboard
- Log in with your Spotify Premium account
- Click Create App, give it any name, set redirect URI to
http://localhost - Copy the Client ID and Client Secret
- Paste them into the Settings tab in the GUI and click Save
Important: The Spotify Developer API requires the account owner to have Spotify Premium as of late 2024. The credentials are stored in your
/configdirectory (appdata on Unraid), not in your music share.
Helps bypass YouTube rate limits and unlocks age-restricted content.
- Install the Get cookies.txt Locally extension (Chrome/Edge) or cookies.txt (Firefox)
- Log into YouTube in your browser
- Export cookies for youtube.com
- Upload the file in the Settings tab in the GUI
| Container Path | Purpose | Recommended Host Path (Unraid) |
|---|---|---|
/music |
Downloaded music output | /mnt/user/Music/spotDL |
/config |
App config, credentials, cookie file | /mnt/user/appdata/spotDL-GUI |
| Variable | Default | Description |
|---|---|---|
PORT |
5000 |
Web GUI port |
MUSIC_DIR |
/music |
Music output path inside container |
CONFIG_DIR |
/config |
Config/credentials path inside container |
PUID |
99 |
User ID for file ownership |
PGID |
100 |
Group ID for file ownership |
- Original project: spotDL/spotify-downloader
- Neuvillette Edition (CSV support, lyrics, metadata fixes): Neuvillette-dc/spotify-downloader
- This fork (Web GUI, Unraid template, bug fixes): LFFPicard/spotDL-GUI
MIT — see LICENSE for details.
