Music Assistant

Music library manager that streams to many speaker types

Media Servers ★ 3.1k stars Medium setup Apache-2.0

Music Assistant is a music library manager that connects to your streaming services and local files and plays to a wide range of speakers and players. It integrates tightly with Home Assistant for whole-home audio.

Key features

  • Unifies streaming services
  • Multi-room playback
  • Home Assistant integration
  • Wide speaker support

Pros & cons

Strengths

  • Great smart-home integration
  • Many provider plugins

Trade-offs

  • Best with Home Assistant
  • Still maturing

Music Assistant replaces

Last reviewed Sep 13, 2026 · 971 words

Music Assistant does one thing nothing else in the self-hosted world does well: it takes your local FLAC collection, your Spotify or Tidal subscription, and internet radio, merges them into one searchable library, and plays any of it to Sonos, Chromecast, AirPlay, DLNA, Snapcast and Squeezelite players from one interface, with multi-room grouping. If you have ever wanted to queue an album from your NAS next to a streaming playlist and send both to the kitchen speaker, this is the tool. The catch is stated plainly in its own docs: it is built to live inside Home Assistant, and running it without one leaves you with roughly half the product.

It is a player broker, not a media server

The distinction matters because people arrive expecting another Navidrome or Jellyfin. Those serve files to their own apps. Music Assistant does not have a mobile app of its own; the point is to push audio to hardware you already own. Sources are pluggable providers: local folders and SMB shares for your files, Spotify (a Premium account is required), YouTube Music, Tidal, Qobuz, Deezer, Apple Music, Plex, Jellyfin, Subsonic-compatible servers including Navidrome, and radio via the Radio Browser directory and TuneIn. Players are equally pluggable, and the list covers the speakers most homes actually have.

That architecture is why it pairs so naturally with a media server rather than replacing one. My library lives in Navidrome for headphones on the train; Music Assistant reads it over Subsonic and handles the house.

Host networking is not optional

Nearly every player type is discovered by multicast: Chromecast and AirPlay use mDNS, Sonos uses SSDP, Squeezelite uses UDP broadcast. Docker's default bridge network swallows all of it, so the single most common support thread is "no players found" from someone who wrote a normal compose file. The fix is network_mode: host, full stop:

services:
  music-assistant:
    image: ghcr.io/music-assistant/server:latest
    network_mode: host
    volumes:
      - ./data:/data
      - /mnt/music:/media:ro
    restart: unless-stopped

The web UI then appears on port 8095. If the box runs several VLANs, the container needs to sit on the same segment as the speakers, or you need mDNS reflection between them, and at that point you are debugging your network rather than the software. The catalogue's 512 MB RAM figure is realistic for a few players; the process is Python, and it grows with library size and the number of simultaneous streams because transcoding to what each player accepts happens on this host.

The Home Assistant question, answered honestly

Installed as a Home Assistant add-on, every player becomes a media_player entity, which means automations can lower the volume when the doorbell rings, start a playlist when the morning routine fires, and put the whole system on a dashboard. The add-on route also handles updates and discovery for you. Standalone Docker gives you the web UI and the player control but none of that, and several providers that authenticate through Home Assistant are harder to configure. The project's "best with Home Assistant" reputation is deserved, and the Home Assistant first month piece covers what you are signing up for if you do not already run it.

If you have no interest in home automation, a fair question is whether you want this at all. For pure Sonos households, the Sonos app already does grouping and Spotify. Music Assistant's value there is the local library, the removal of Sonos's cloud dependency for playback control, and the ability to add a non-Sonos speaker to a group.

Multi-room sync is good within a brand and rough across brands

Grouping Sonos with Sonos, AirPlay with AirPlay, or Squeezelite with Squeezelite is tight, because each protocol handles its own clock. Grouping a Chromecast with a Sonos and an AirPlay speaker works, but sync is not sample-accurate and you will hear it if two of those speakers share a room. The reliable way to get perfectly synchronised audio across a house is to standardise the players: cheap boards running Squeezelite, or Snapcast clients fed by Music Assistant's Snapcast provider, both give you a single clock and sync that holds. Mixed-brand groups are a convenience, not a hi-fi feature, and I would not plan an installation around them.

Still maturing means what it says

The 2.x line has been stable for daily use for a while now, and 3,026 stars for an Apache-2.0 Python project in this niche is healthy. But provider integrations depend on services that do not want to be integrated. Spotify has broken third-party playback more than once, YouTube Music changes without notice, and a provider that worked last month can need an update this month. Expect to update Music Assistant more often than you update your media server, and expect that occasionally the fix is "wait for the next release". Local files and open protocols never break in this way, which is a quiet argument for owning your music.

What I'd do

Install it as the Home Assistant add-on if you run Home Assistant, and as a host-networked container on the same VLAN as your speakers if you do not. Point the local provider at the same folder your Navidrome or Jellyfin already serves so there is one copy of the library. Add one streaming provider, not four, because each is a maintenance liability. For multi-room, buy or build matching Squeezelite or Snapcast endpoints rather than expecting a Chromecast and a Sonos to stay in step. Done that way it is the best whole-home audio you can get without a Sonos-sized bill, and the only setup where a smart-home automation can DJ.

Compare Music Assistant

5 head-to-head comparisons.

Similar media servers apps