Skip to content

davad00/Spotify-Playlist-Downloader

Repository files navigation

Spotify Playlist Downloader GUI

A user-friendly GUI application to download Spotify playlists as MP3 files and rename them in playlist order.

⚠️ Disclaimer

This project is not affiliated with, endorsed by, or connected to Spotify AB or any of its affiliates or subsidiaries. This is an independent tool created for educational and personal use purposes only. All trademarks, service marks, trade names, product names, and logos are the property of their respective owners.

Important Notes:

  • This tool is for personal use only
  • Respect artists and copyright laws
  • Consider supporting artists by purchasing their music or subscribing to streaming services
  • Use of this tool is at your own risk
  • We do not condone piracy or copyright infringement

Features

  • Download entire Spotify playlists as MP3 files
  • Rename downloaded files to match playlist order
  • Auto-rename option after download
  • Configurable Spotify API credentials
  • Optional YouTube cookies support for better download success
  • Progress tracking and detailed logging
  • Automatic duplicate detection
  • FFmpeg bundled - no external installation needed!

Setup

Prerequisites

  1. uv package manager installed

  2. Spotify API Credentials (free)

  3. Go to https://developer.spotify.com/dashboard

  4. Log in with your Spotify account

  5. Click "Create an App"

  6. Fill in app name and description

  7. Copy your Client ID and Client Secret

  8. Paste them in the Settings tab of the application

Installation

  1. Run the application directly with uv:

    uv run --with spotipy --with yt-dlp main.py
    

    Or simply double-click run.bat

  2. uv will automatically download and manage dependencies in an isolated environment

Building Executable

To create a standalone .exe file:

build.bat

The executable will be created in the release folder.

Usage

Download Tab

  1. Configure your Spotify API credentials in the Settings tab
  2. Paste a Spotify playlist URL
  3. Select download folder
  4. Click "Start Download"

Rename Files Tab

  1. Select the folder containing downloaded MP3 files
  2. Click "Rename Files"
  3. If multiple playlists are cached, select the one to use
  4. Files will be renamed with playlist order numbers (001, 002, etc.)

Settings Tab

  • Client ID: Your Spotify API client ID
  • Client Secret: Your Spotify API client secret
  • Cookies File: (Optional) YouTube cookies file for better download success

Optional: YouTube Cookies

For better download success rates, you can export your YouTube cookies:

  1. Install browser extension to export cookies (e.g., "Get cookies.txt")
  2. Export cookies from youtube.com
  3. Save as youtube_cookies.txt
  4. Configure the path in Settings tab

Project Structure

spotify-dl-gui/
├── main_ctk.py          # Main GUI application (CustomTkinter)
├── rename_utils.py      # File renaming utilities
├── pyproject.toml       # Project dependencies (uv)
├── run.bat             # Quick run script
├── build.bat           # Build executable script
├── installer.iss       # Inno Setup installer script
├── version_info.txt    # Windows exe version info
├── LICENSE             # MIT License
├── SETUP_GUIDE.md      # User setup instructions
└── README.md           # This file

Building for Distribution

Build Standalone EXE

  1. Run the build script:

    build.bat
  2. The executable will be in release/SpotifyDownloader.exe

  3. Test the exe before distributing

Create Installer (Optional)

  1. Install Inno Setup: https://jrsoftware.org/isdl.php

  2. Open installer.iss in Inno Setup

  3. Click "Compile" to create the installer

  4. Installer will be in installer_output/SpotifyDownloader_Setup_v1.0.0.exe

What to Distribute

Option 1: Standalone EXE

  • Just distribute SpotifyDownloader.exe
  • Include SETUP_GUIDE.md for users

Option 2: Installer

  • Distribute the installer exe
  • It includes the app + setup guide
  • Checks for FFmpeg during installation

For End Users

See SETUP_GUIDE.md for detailed setup instructions including:

  • Installing FFmpeg
  • Getting Spotify API credentials
  • Optional YouTube cookies setup

Troubleshooting

  • "uv not found": Install uv from https://docs.astral.sh/uv/
  • "FFmpeg not found": Install FFmpeg and add to PATH
  • Download failures: Try adding YouTube cookies file
  • "Invalid credentials": Check your Spotify API credentials in Settings

Notes

  • Downloaded files are cached for 24 hours to speed up subsequent operations
  • Playlist order is preserved when renaming files
  • Duplicate files are automatically skipped
  • Failed downloads are logged for retry
  • Uses uv for fast, reliable dependency management

Legal & Disclaimer

This project is not affiliated with, endorsed by, or connected to Spotify AB or any of its affiliates.

  • This tool is intended for personal use only
  • Users are responsible for complying with Spotify's Terms of Service
  • Users are responsible for complying with copyright laws in their jurisdiction
  • The developers of this tool do not condone piracy or copyright infringement
  • Please support artists by purchasing their music or subscribing to streaming services
  • Use of this tool is at your own risk

All trademarks, service marks, trade names, product names, and logos are the property of their respective owners.

License

MIT License - See LICENSE file for details

Support

For issues or questions, create an issue on the GitHub repository.

Spotify-Playlist-Downloader

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors