Hysen Labs
Open-source project
Pushan2005/SpotTransfer avatar
Pushan2005

SpotTransfer

Spotify to YT-Music Playlist Sync Tool

929 stars39 forksTypeScriptGPL-3.0
DEEP OPEN-SOURCE ANALYSIS

A tool to sync Spotify playlists to YouTube Music

SpotTransfer moves Spotify playlists into YouTube Music through a Flask backend and a TypeScript frontend.

What the tool does

SpotTransfer lets you migrate any Spotify playlist to YouTube Music without manually copying and pasting tracks one by one. The project describes itself as a sync tool, and the homepage is hosted on Vercel. The repository shows meaningful adoption, with 929 stars, 39 forks, and 48 open issues at the time of writing, which suggests a real user base that runs into real edge cases. The problem it solves is familiar to anyone who has built a playlist on one music service and later wants it on another: the track names, artists, and ordering have to be matched and recreated, and doing that by hand is slow and error prone. SpotTransfer automates the move so the playlist appears on YouTube Music with its songs intact. The README keeps the overview short and points to a star history chart for those who want to see growth over time. The scope is deliberately narrow: it is about playlists, not about mirroring listening history or migrating accounts. That focus is what makes the tool approachable, because a user can try it on one playlist, see the result, and decide whether to move others. The split between a Python backend and a TypeScript frontend also keeps the project readable for contributors who know either stack.

Setting up the backend

The backend is a Python service built with Flask. Prerequisites are Python 3.8 or newer, Node.js 14 or newer or pnpm, and a Spotify developer account to obtain a client id and client secret. After cloning the repository, you enter the backend directory and install the Python dependencies from requirements.txt. You then rename dot env example to dot env and add your Spotify credentials. The README includes an important note: Spotify changed its API so that a Premium subscription is now required to use it, so the credentials must come from an account that has Premium, though it need not be the same account that owns the playlists. For local development you start the Flask server with the main module, and the docs mention that py main.py can work when python3 does not behave as expected on a given system. For a public self hosted deployment the README is explicit: do not expose the development server directly. Instead you run Gunicorn with the provided configuration and put Nginx in front of it. The supplied Nginx example applies request read timeouts, body size limits, and request and concurrent connection limits, and the Gunicorn configuration binds to localhost so public clients cannot bypass those protections. Nginx then listens on port 8080.

Running the frontend and deploying

The frontend is a TypeScript application. Setup begins in the frontend directory, where you rename dot env example to dot env and set the API URL to point at the backend, for example http://localhost:8080. You install the frontend dependencies with npm install and start the dev server with npm run dev, then open http://localhost:5173 in a browser. The README notes that you can build the app and serve it, but the dev server is enough for normal use. The whole flow assumes the backend is reachable at the configured URL, so the two parts are coupled by that one environment variable. The documented prerequisites and the Premium requirement are the two things most likely to trip up a first time user, and the README calls both out rather than burying them. There is no elaborate operations section because the tool is meant to run as a small personal service: a Flask API plus a static frontend, with Nginx and Gunicorn only when you choose to expose it. That simplicity is part of the appeal. The project is distributed under the GPL 3.0 license, which matters for anyone who wants to self host or modify it, since that license requires derived network services to share their source.

Editorial conclusion

SpotTransfer is implemented in TypeScript, distributed under the GPL-3.0 license, and held 929 stars on GitHub when it was last updated on 2026-08-24.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes