All Works

SPT Transfer

Professional Spotify migration tool to move Liked Songs and automate playlist syncing via Docker.

ReactExpressRedisDockerSpotify APIOAuth 2.0

SPT Transfer

A full-stack tool solving a real Spotify API limitation — migrate and auto-sync playlists, including the locked Liked Songs library.


Overview

Spotify's API deliberately blocks direct access to a user's Liked Songs library — making it impossible to export, share, or migrate it through any official means. SPT Transfer works around this limitation by treating the Liked Songs library as a first-class data source, enabling full transfer and continuous synchronization to any playlist.

The project covers the full stack: OAuth authentication flow, a real-time streaming backend, a background sync engine with Redis persistence, and a React frontend — all packaged into a single multi-arch Docker image.


Screenshots

Home

Home screen

One-time Transfer

One-time transfer

Auto-sync

Auto-sync screen


Technical Highlights

Real-time progress streaming Transfer status is pushed to the client via Server-Sent Events (SSE), avoiding polling and keeping the UI in sync with backend state throughout the operation.

Background sync engine Auto-sync jobs run on a custom scheduler backed by Redis for persistence, supporting both cron-based scheduling and change-detection polling. Every sync run is a full mirror: additions, removals, and track order are all reconciled against the source.

Large library handling The Spotify API caps requests at 100 tracks per call. The backend handles automatic pagination and chunked writes, making transfers of 1000+ track libraries reliable without manual intervention.

Automatic token refresh OAuth tokens are transparently refreshed mid-transfer, so long-running operations never fail due to expiry.

Docker-first deployment A multi-stage Dockerfile builds the React frontend and bundles it with the Express server into a single image. Multi-arch support (amd64 / arm64) is included out of the box. Both local Redis and cloud Redis (Upstash, Redis Cloud, Railway) configurations are provided.


Tech Stack

Layer Technology
Frontend React, Vite
Backend Node.js, Express
Real-time Server-Sent Events (SSE)
Scheduling Custom Redis-backed scheduler
Persistence Redis
Auth Spotify OAuth 2.0
Infrastructure Docker, Docker Compose

Note on Demo Access

Spotify restricts apps in Development Mode to a manually approved whitelist of users. Reaching Production Status requires 250,000 verified users — not applicable for an independent project of this scope.

The application can be run locally in minutes using the Docker setup in the repository.


MIT License · Marceli Racis