Self-hosted music streaming server for syncing and playing your library across devices
GPL-3.0
- JavaScript
- HTML
- CSS

About mStream
mStream is a self-hosted music streaming server for syncing and playing your music library across devices. It is built for people who want to browse, play, and manage their collection from a server instead of keeping files on one machine.
Its filesystem-based API mirrors your folder structure, so you can browse and play before a database is built, upload files, and create directories. It transcodes on the fly with ffmpeg, plays audio on headless boxes, fetches album art, downloads from YouTube via yt-dlp, and manages Transmission, Deluge, and qBittorrent torrents. The Subsonic API and DLNA/UPnP are also supported.
A multi-threaded Rust scanner keeps it light on memory and CPU even with multi-terabyte libraries. It runs publicly by default and becomes password-protected once you add a user, with web and mobile clients and SQLite storage.
Key features
- Filesystem-based browsing and playback before the database is built
- Upload files, create directories, and download from YouTube via yt-dlp
- On-the-fly transcoding with ffmpeg and server-side playback for headless boxes
- Built-in torrent management for Transmission, Deluge, and qBittorrent
- Subsonic API and DLNA/UPnP support
Details
- On GitHub since
- 2015
- Database
- SQLite
- Scanner
- Multi-threaded Rust
- APIs
- REST and Subsonic
- Audio formats
- flac, mp3, wav, ogg, opus, aac, m4a, m4b
