The first Open Playlist reference implementation

Your playlists should outlive your music service

Open Playlist Engine is a self-hosted hub for moving, creating, organizing, backing up, and exporting music-library metadata. Connect a source and a target; the engine handles provider differences while keeping every match visible.

See how the engine works Explore the Open Playlist standard

Metadata onlyNo audio is moved or streamed.

Review before writeUncertain matches wait for a person.

Local firstRun the complete stack on infrastructure you control.

One hub, every route

Provider-to-provider converters grow one integration for every pair. Open Playlist Engine instead maps each provider to the Open Playlist standard. A new provider becomes another spoke and can interoperate with every existing spoke.

01 · Import

Read a connected library, local playlist file, public URL, pasted list, snapshot, or approved generator draft into a provider-neutral model.

02 · Match

Resolve tracks and library entities using provider identifiers, ISRCs, text evidence, and prior accepted decisions.

03 · Review

Pause low-confidence results for approval, correction, or skipping. Nothing uncertain is silently written.

04 · Write

Queue durable, idempotent provider operations and stream item-level progress back to the browser.

Follow a request through the system →

Built for real music libraries

Move without starting over

Migrate playlists, liked tracks, saved albums, and followed or favorite artists where provider capabilities allow. Partial reruns and duplicate checks protect work already completed.

Migration architecture

Keep a portable copy

Export playlists as CSV, TXT, M3U8, XSPF, or versioned Open Playlist JSON. Create checksummed local snapshots and restore selected collections through the same review pipeline.

Exports · Snapshots

Build and maintain

Generate editable playlist drafts with an administrator-controlled model, synchronize proven routes on a schedule, and run capability-gated cleanup with preflight checks and durable retries.

Generator · Sync · Organizer

Self-host in one stack

Docker Compose starts PostgreSQL, Valkey, the FastAPI service, background worker, and React frontend:

cp .env.example .env
# Replace OPE_SECRET_KEY and add only the provider credentials you need.
docker compose build --no-cache
docker compose up

The application is available at http://localhost:8080. Start with configuration, then register the providers you want using the connection guide.

Capability-driven by design

The interface enables only operations declared by the selected provider. Unsupported library types or destructive actions stay unavailable instead of being approximated.

Read the project documentation

Engine here. Standard there.

This website documents the Open Playlist Engine implementation—its runtime, workflows, safety model, and operations. The canonical format and API reference remain on the Open Playlist standard website.

Open the standard website View the engine on GitHub