The ultimate tool to migrate your Spotify playlists to YouTube Music.
Features β’ Quick Start β’ Tech Stack β’ CLI Mode β’ License
LinkList is a robust, open-source web application designed to seamlessly transfer your music library from Spotify to YouTube Music.
Forget about manual searching β LinkList automates the process, matching your tracks with high accuracy and creating a new playlist in your YouTube Music account in minutes.
Note: This project features a Neon-Minimalist UI, a robust Flask backend with concurrency support, and a dedicated CLI tool for power users.
- π¨ Modern UI: Fully responsive, Neon aesthetic interface built with React, Tailwind CSS, and Radix UI.
- β‘ Fast & Concurrent: Backend optimized to handle multiple users simultaneously using temporary authentication sessions.
- π‘οΈ Robust Error Handling: Smart matching algorithms that handle Chrome header compression and search failures gracefully.
- π± Mobile Ready: Responsive design for desktop, tablet, and mobile.
- π» CLI Mode included: Includes a
selfhost.pyscript for terminal lovers or large playlist migrations (no timeouts). - π Secure: No storage of user credentials. Auth files are ephemeral.
- Framework: React 18 + Vite
- Language: TypeScript
- Styling: Tailwind CSS + Tailwind Animate
- Components: Radix UI (Headless) + Lucide React (Icons)
- State: React Context API
- Server: Python 3 + Flask
- Production: Gunicorn
- APIs:
ytmusicapi(YouTube Music) +spotipy/requests(Spotify) - Validation: Regex & Error Logging
Run LinkList locally following these steps.
- Node.js 18+
- Python 3.9+
- A Spotify Developer Account (Client ID & Secret)
cd backendCreate a virtual environment (optional but recommended):
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtCreate a .env file inside /backend:
PORT=8080
FRONTEND_URL=http://localhost:5173
SPOTIPY_CLIENT_ID=your_spotify_client_id_here
SPOTIPY_CLIENT_SECRET=your_spotify_client_secret_hereStart the server:
# Development
python main.py
# Production (Linux/Mac)
gunicorn -c config/gunicorn.conf.py main:appcd frontend
npm installCreate a .env:
VITE_API_URL=http://localhost:8080Start the dev server:
npm run devOpen: http://localhost:5173
For extremely large playlists (500+ tracks), browsers may timeout. Use the included CLI tool:
cd backend
python selfhost.pyThe script stores sessions in browser.json to avoid repeating header extraction.
-
Fork the repository
-
Create your feature branch:
git checkout -b feature/AmazingFeature
-
Commit your changes:
git commit -m "Add some AmazingFeature" -
Push the branch:
git push origin feature/AmazingFeature
-
Open a Pull Request.
LinkList is a heavily modified fork of SpotTransfer.
- Copyright Β© 2025 Edvin: UI/UX Redesign, Frontend Architecture (React/Tailwind), Backend Refactoring (Async/Threading), CLI Tool implementation.
- Copyright Β© 2024 Pushan2005: Original concept and initial API integration logic.
This project is licensed under the GNU General Public License v3.0.
Unlike other tools that hit rate limits or require subscriptions, LinkList is designed for performance and freedom:
- Concurrency: Handles multiple users without crashing thanks to ephemeral auth sessions.
- Smart Matching: Enhanced search algorithm that finds songs even with slightly different metadata.
- Chrome Ready: Fixes the common "header compression" bug found in other transfer tools.
- CLI Mode: Includes a powerful terminal script for migrating massive libraries (1000+ songs) without browser timeouts.
Developed with β€οΈ by Edvin
