Privacy Policy

Last updated 19 August 2026

mStream is software you run on your own computer. The project does not collect usage data, does not run analytics, and has no accounts. But “nothing ever leaves your machine” would not be true — some features talk to other computers to do their job, and this page lists them so you can decide what to turn on.

This website

mstream.io is a static site served from a content delivery network (Bunny.net). Like any web server, the CDN keeps ordinary access logs (IP address, requested page, browser user agent) for a limited time for operation and abuse prevention. The site sets no cookies and runs no analytics or advertising scripts. The Download button reads your browser’s platform locally to pick a file; nothing is sent anywhere to do that. Downloads themselves come from GitHub Releases, subject to GitHub’s privacy statement.

The mStream server

Your music, your library database, your listening history and your settings live on the machine running mStream. The server never reports any of it to the project. The following features do make network connections; each is described with what is sent and to whom.

Quick Connect (remote access) — on by default in the standalone bundles. Lets the mobile apps (and the coming desktop app) reach your server from anywhere. It uses Iroh to connect devices directly when it can; when a direct connection isn’t possible the encrypted traffic is relayed through Iroh’s public relay servers. The relay sees connection metadata (IP addresses, endpoint identifiers) but the audio and API traffic inside is end-to-end encrypted and your mStream login still applies. Turn Quick Connect off in the admin panel if you only use mStream on your own network.

Album art lookup — to fill in missing covers, the server sends artist and album names (no audio, no personal data) to public music-metadata services: MusicBrainz / Cover Art Archive, iTunes Search, and Deezer.

Lyrics lookup — when lyrics are fetched, the server sends artist, track title and duration to LRCLib (the default) and, when configured, to other lyric providers.

Discovery network (opt-in, off by default) — if you enable P2P discovery, your server shares fingerprints of your catalog — numeric descriptions of how tracks sound, plus artist and title — with other mStream servers in the network, and fetches theirs, bootstrapping through community seed nodes. It never shares the audio itself, and your similarity searches run locally on the fetched data: other servers can see that you fetched, not what you searched for. The discovery identity is separate from your Quick Connect identity. The first time it runs it also downloads the audio model from the project’s GitHub releases.

Federation (opt-in) — pairing with another server you choose gives that server read-only access to exactly the libraries you grant, and lets you stream theirs. Nothing is shared with anyone you didn’t pair with.

Local network discovery — the server advertises itself on your local network (mDNS) so apps on the same Wi-Fi can find it.

Optional integrations you configure yourself — Last.fm scrobbling (sends what you play to Last.fm under your account), the torrent client and YouTube download features (connect to the sources you point them at). None are active until you set them up.

First-run downloads — on first start the server fetches an ffmpeg build from its public download mirrors and verifies its checksum; the standalone bundles otherwise contain everything they need.

The mobile apps

The official mStream Music apps for Android and iOS connect only to the mStream server you add (directly or through Quick Connect). They have no accounts and no analytics of their own. Casting uses your device’s Chromecast / platform services. The apps are distributed through Google Play and the App Store, which apply their own policies. The mStream Player apps by Niera Tech are published by Niera Tech under their own privacy terms.

Questions

Open an issue at github.com/IrosTheBeggar/mStream/issues or ask on Discord. This page will be updated whenever a feature starts or stops talking to the network.