KV-Music: Self-Hosted YouTube Music Streamer with Rust Axum, React 19 & Synced Lyrics
Commercial music streaming services lock your playlists into walled gardens, collect invasive listening habit metrics, and continuously hike subscription prices.
While Spotify and Apple Music dominate the mainstream, YouTube Music actually hosts the largest catalog of obscure remixes, live concerts, anime OSTs, and independent indie releases on the internet.
To create the ultimate private music portal, I built KV-Music: a high-performance web player and sync hub powered by a Rust Axum backend and a React 19 frontend.
🎧 What Makes KV-Music Special?
1. The Entire YouTube Music Catalog, Self-Hosted
Stream millions of songs, albums, and user playlists directly without ads or intrusive sponsored breaks.
2. Time-Synced Dynamic Lyrics
Enjoy real-time karaoke-style lyric scrolling synced down to the millisecond. It queries open lyric databases (LRCLIB) and embeds dynamic syllable highlights.
3. Multi-Device Pairing & Sync
Pair your mobile phone, laptop, and living room TV with a simple 6-digit sync code or QR code. Playlists, favorite tracks, and listening queue states stay updated everywhere in real-time over WebSockets.
4. High-Performance Rust (Axum) Backend
Audio caching, metadata parsing, and stream chunking are driven by Rust 1.88+ and Axum, achieving sub-10ms response times while using under 20 MB of RAM.
5. Native Android App (Kotlin)
In addition to the progressive web app (PWA), KV-Music includes a native Android companion app written in Kotlin, featuring system media notification integration, lockscreen scrubber, and Android Auto support.
🚀 Quick Start with Docker
Run KV-Music with Docker in seconds:
docker run -d \
--name kv-music \
-p 8080:8080 \
-v ./kv-music-data:/data \
vndangkhoa/kv-music:latest
Open http://localhost:8080 to start streaming your favorite tracks!
🔗 Check it Out on GitHub
KV-Music is open-source under the MIT license:
⭐ GitHub Repository: https://github.com/vndangkhoa/kv-music
🐳 Docker Hub: vndangkhoa/kv-music
Top comments (0)