mStream logo

mStream

Self-hosted music streaming server for syncing and playing your library across devices

Open Source Alternative to
Repository activity
  • Stars2.3k
  • Forks204
  • Open Issues101
irosthebeggar-mstream health score - Linux Foundation Insights
License

GPL-3.0

Languages
  • JavaScript
  • HTML
  • CSS
mStream screenshot

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