Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

DUPLiiST

A tool to convert your playlists across platforms!

Convert a Spotify playlist, SoundCloud playlist, or individual songs into a YouTube playlist and download songs as MP3 (320 kbps).

⚠️ For legitimate personal use only: digitizing your own CD collection, etc. You assume responsibility for having rights to the music you download. The author does not condone piracy and prohibits the use of this software with malicious intent.

✨ Features

  • 🔍 Fetch tracks directly from Spotify, Soundcloud or Youtube
  • ▶️ Generate a YouTube playlist automatically
  • ⬇️ Download tracks as MP3 (320 kbps)
  • ✅ Select/deselect, Pause/resume songs before downloading
  • 📂 Organized output by playlist name

The tool counts with some features that make managing lots of songs the easiest feat possible. As YouTube Search isn't 100% accurate, clicking the name of a track will open up the search picker, where you can search, select other videos... The credentials are stored in the program, you can view them in Settings (YOU HAVE TO PROVIDE THESE CREDENTIALS FOR DUPLIIST TO FUNCTION, READ BELOW) You are able to download tracks onto a folder with your Playlist's name. By default, its downloaded in

/DUPLiiST/''Playlist_name''

These tracks, are downloaded at 320kbps, and include every possible metadata available for that song, such as Cover Art (Video cover if from Youtube), Artist, Song Name, Album, Track Number, Etc...

🧩 Prerequisites

1. Python 3.10 or Higher

If you don't have it installed:

winget install Python.Python.3.12

Restart your terminal afterward.

2. FFmpeg (Required to Convert to MP3)

winget install ffmpeg

Restart your terminal so it's added to your PATH.

Verify installation:

ffmpeg -version

🚀 Installation

  1. Extract or clone this folder to your desired location.

  2. Open PowerShell in that folder (Shift + right-click → "Open PowerShell window here").

  3. (Optional but recommended) Create a virtual environment:

    python -m venv venv
    .\venv\Scripts\activate
  4. Install dependencies:

    pip install -r requirements.txt
  5. Launch the app:

    python main.py

🔑 Configure Spotify (1 Minute, Free)

Spotify requires free credentials to read public playlists via their API.

  1. Go to developer.spotify.com/dashboard and sign in.
  2. Click Create app:
    • App name: anything you want (e.g., MyDigitizedCDs).
    • App description: anything.
    • Redirect URI: set to http://127.0.0.1:8888/callback (not used, but required).
    • Accept the terms and create.
  3. In your created app → Settings. Copy the Client ID and click View client secret to copy the Client Secret.
  4. In the app, click ⚙ Settings and paste both values. Save.

Done! You only need to do this once.


🎯 How to Use

  1. Copy the URL of any public Spotify/SoundCloud playlist or any song from any of these 3 platforms (share button → copy link).
  2. Paste it in the main field of the app.
  3. Click 🔍 Search — the app fetches songs from the platform and searches for each one on YouTube.
  4. Check/uncheck songs with the checkboxes (all selected by default).
  5. Choose:
    • 🎬 Open as playlist on YouTube: opens a temporary playlist in your browser (max 50 videos per URL — YouTube limitation).
    • ⬇ Download selected: downloads MP3s at 320kbps with all metadata to your configured folder.

Downloads are saved in a subfolder named after the playlist.

To come around the 50 video limitation issue, the tool now divides your playlist into chunks of 50 songs, and creates 50 song playlists until it covers all songs. If the song/video isn't the one you were searching for, click on the song/video name and Search deeper to find your exact match.


🛠️ Troubleshooting

Issue Solution
"FFmpeg not found" Install it with winget install ffmpeg and restart the app.
"Spotify error: Invalid client" Check your Client ID and Client Secret in Settings (no extra spaces).
"Playlist contains no songs" The playlist must be public. Private playlists require OAuth (not implemented).
Some song has no match Normal with rare tracks or unusual titles. Only matching songs will be downloaded.
Download fails for a specific song Could be age or region restrictions. Other songs will still download.

📁 Project Structure

DUPLiiST_Main/
├── main.py              # The app
├── requirements.txt     # Python dependencies
└── README.md            # This file
├── splash.py            # Splash Credit Screen

Configuration (credentials and folder) is saved at:

C:\Users\<YourUsername>\.DUPLiiST_Config.json

⚖️ Legal Notice

This tool automates actions that you could perform manually. You are responsible for respecting the terms of service of Spotify/YouTube and the copyright of the material you download. Use responsibly. The author doesent intend for this software to be used for piracy, and prohibits these behaviours.


📝 License

This project is provided as-is for personal use only. Not for commercial-use. All rights reserved to @erektc


❓ Support

For issues or questions, open an issue on the repository.

About

A tool to convert your playlists across platforms!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors