Skip to content

πŸš€ The ultimate tool to seamlessly migrate your Spotify playlists to YouTube Music. Modern Neon UI, no limits, and fully open-source.

License

Notifications You must be signed in to change notification settings

EdvinCodes/LinkList

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LinkList Logo

LinkList

GitHub license GitHub stars GitHub last commit GitHub issues

React Python

The ultimate tool to migrate your Spotify playlists to YouTube Music.

Features β€’ Quick Start β€’ Tech Stack β€’ CLI Mode β€’ License


πŸš€ Overview

LinkList Screenshot

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.


✨ Features

  • 🎨 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.py script for terminal lovers or large playlist migrations (no timeouts).
  • πŸ”’ Secure: No storage of user credentials. Auth files are ephemeral.

πŸ›  Tech Stack

Frontend

  • Framework: React 18 + Vite
  • Language: TypeScript
  • Styling: Tailwind CSS + Tailwind Animate
  • Components: Radix UI (Headless) + Lucide React (Icons)
  • State: React Context API

Backend

  • Server: Python 3 + Flask
  • Production: Gunicorn
  • APIs: ytmusicapi (YouTube Music) + spotipy / requests (Spotify)
  • Validation: Regex & Error Logging

🎯 Quick Start

Run LinkList locally following these steps.


Prerequisites

  • Node.js 18+
  • Python 3.9+
  • A Spotify Developer Account (Client ID & Secret)

1️⃣ Backend Setup

cd backend

Create a virtual environment (optional but recommended):

python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

Create 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_here

Start the server:

# Development
python main.py

# Production (Linux/Mac)
gunicorn -c config/gunicorn.conf.py main:app

2️⃣ Frontend Setup

cd frontend
npm install

Create a .env:

VITE_API_URL=http://localhost:8080

Start the dev server:

npm run dev

Open: http://localhost:5173


πŸ’» CLI Self-Hosting (Power Users)

For extremely large playlists (500+ tracks), browsers may timeout. Use the included CLI tool:

cd backend
python selfhost.py

The script stores sessions in browser.json to avoid repeating header extraction.


🀝 Contributing

  1. Fork the repository

  2. Create your feature branch:

    git checkout -b feature/AmazingFeature
  3. Commit your changes:

    git commit -m "Add some AmazingFeature"
  4. Push the branch:

    git push origin feature/AmazingFeature
  5. Open a Pull Request.


πŸ“„ License and Copyright

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.


⚑ Why use LinkList?

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