unsubbed.co

Music Assistant

Music Assistant is a Python-based application that provides media library manager connecting streaming services to a wide range of connected speakers.

Self-hosted media management, honestly reviewed. No marketing fluff — just what you get when you run it yourself.

TL;DR

  • What it is: Free, open-source (Apache-2.0) music library manager that connects Spotify, TIDAL, Deezer, Apple Music, local files, and more — then streams them to almost any speaker in your house [official website][1].
  • Who it’s for: Home Assistant users who want their music life automated and unified. Also anyone tired of switching between apps for different sources, or trapped in a proprietary smart speaker ecosystem.
  • Cost: Free software. You still pay your streaming subscriptions. The server itself runs on hardware you probably already own — a Raspberry Pi, a NAS, a spare PC [README].
  • Key strength: Genuinely deep Home Assistant integration — voice control, automations, multi-room sync, playback transfer between rooms. Nothing else in the self-hosted space does this combination cleanly.
  • Key weakness: Strong dependency on Home Assistant for the best experience. Technically standalone Docker is possible, but the project is built around HAOS. If you’re not already in the Home Assistant world, the setup friction multiplies fast.

What is Music Assistant

Music Assistant is a music library manager that aggregates your streaming services and local music collection into a single interface, then plays them through whatever speakers you have — Chromecast, Sonos, Squeezebox, Home Assistant media players, AirPlay, and more [official website].

The architecture has four moving parts: a server (the always-running core), a Home Assistant integration (bridges MA to your HA instance), music providers (Spotify, TIDAL, Deezer, Apple Music, BBC Sounds, Audible, local files, and Subsonic-compatible sources), and player providers (the speaker/device targets). The server must live on always-on hardware — a Raspberry Pi 4, a NAS, an Intel NUC, or anything similar that doesn’t sleep [README].

The elevator pitch from their own repo: “Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers.” [README]. That’s accurate and unusually honest for a project README. No hype about AI-powered curation or social features — it manages your music and plays it where you want.

The project is under the Open Home Foundation umbrella alongside Home Assistant, ESPHome, and related projects. That lineage matters: the open-source commitment is backed by an organization with infrastructure and governance, not just a solo developer’s weekend project [README][1].

As of this review: 1,419 GitHub stars [merged profile]. Modest compared to Jellyfin (30K+) or Navidrome (12K+), which reflects that this is a more focused, niche tool rather than a general-purpose media server.


Why people choose it

Independent reviews of Music Assistant specifically are sparse compared to more mainstream self-hosted tools. The AlternativeTo listing [1] surfaces its core appeal clearly: it’s categorized as having no tracking, no ads, privacy-focused, with Chromecast support and a Subsonic API — a combination that matters to self-hosters who want streaming service access without giving Spotify’s app permission to watch their listening patterns at the OS level.

The release history tells its own story. Version 2.0 (May 2024) added Spotify, TIDAL, and Deezer integration — the big three commercial streaming services. Version 2.1 (July 2024) added Apple Music. Version 2.4 (early 2025) added Spotify Connect and podcast support [1]. This is a project that’s actively shipping things people actually want, not spinning its wheels on internal refactors.

Music Assistant gets mentioned by XDA Developers [5] as the visual reference point for what a polished self-hosted music dashboard looks like — “a Spotify or Music Assistant-style dashboard” — which suggests it’s become a known quantity in the self-hosting community for having a genuinely good UI rather than the typical “it works if you squint” aesthetic.

The use case that keeps appearing in community discussions: a Home Assistant user who already controls lights, thermostats, and presence detection, and wants music to be part of the same automation fabric — “when I get home, start my playlist in the kitchen, and move it to the living room when presence detects I’ve moved” — is exactly what this enables.


Features

Music sources (providers):

  • Streaming services: Spotify, TIDAL, Deezer, Apple Music, BBC Sounds, Audible [1][website]
  • Local files and network shares
  • Audiobookshelf integration
  • Subsonic-compatible servers
  • Provider track linking: if the same album exists in Spotify and TIDAL, MA matches them as one item in your library [official website]
  • Metadata fetching for extended artist info [official website]

Playback engine:

  • Gapless playback across all supported players [official website]
  • Crossfade between tracks [official website]
  • Volume normalization [official website]
  • Playback synchronization across multiple rooms/players [official website]
  • Announcements during playback (e.g., doorbell sounds, HA notifications, then music resumes) [official website]
  • Transfer of playback between players — move a stream from kitchen speaker to bedroom without stopping [official website]

Player targets:

  • Chromecast and Google Cast devices [1]
  • Home Assistant media players (anything HA controls becomes a MA target) [official website]
  • Snapcast, Squeezebox/LMS
  • AirPlay-compatible speakers
  • Any media player exposed through the Home Assistant Plugin [official website]

Interface:

  • Progressive Web App (PWA) built with VueJS 3 — works in browser, installable on mobile [official website]
  • No native mobile app (browser-based only)

Home Assistant integration depth:

  • Voice control via Assist [1]
  • Full automation access — trigger music changes on presence, time, sensors
  • Expose MA players back to HA as standard media player entities
  • Import HA media players into MA as playback targets

What’s not there:

  • No podcast library management (Spotify Connect’s podcast support is in 2.4, but it’s connector-level, not a full podcast client)
  • No social features, shared playlists, or collaborative queues
  • No built-in equalizer or DSP (though the docs reference DSP capabilities — parametric EQ and tone controls — as available [website links])

Pricing: SaaS vs self-hosted math

Music Assistant itself costs nothing. There is no SaaS tier, no freemium wall, no “community vs enterprise” split — Apache-2.0, run it yourself, full stop [merged profile].

The honest pricing picture is more nuanced:

What you still pay:

  • Your streaming subscriptions (Spotify, TIDAL, etc.) — MA connects to them, it doesn’t replace them. If you’re paying $10.99/mo for Spotify, you keep paying that.
  • Hardware if you don’t already own always-on equipment.

What you don’t pay:

  • Sonos subscription tiers or platform lock-in fees.
  • Plex Pass ($5.99–$11.99/mo, or $119.99 lifetime) for music features.
  • Google Home or Amazon Alexa ecosystem fragmentation.

The real savings math isn’t subscription replacement — it’s ecosystem escape. A household with a mix of Chromecast speakers, some AirPlay devices, and Home Assistant controlling the thermostat would normally need separate apps with no unified queue, no automation, no “pick up where I left off in a different room.” Commercial alternatives:

  • Sonos ecosystem to get multi-room audio with a decent app: $200–$500 per speaker, plus increasing platform restrictions as Sonos has repeatedly broken backward compatibility.
  • Plex with PlexAmp: $11.99/mo or $120 one-time for Plex Pass, primarily designed for local libraries, less mature for streaming service integration.
  • Roon: $14.99/mo or $829.99 lifetime, audiophile-focused, local files primarily, streaming integration limited compared to MA’s native provider approach.

If you own a Raspberry Pi 4 ($60 new, likely already sitting in a drawer) and a spare SD card, the ongoing cost of running Music Assistant is electricity. Compared to a $15/mo Roon subscription, that’s $180/year back in your pocket, with more streaming service support and deeper home automation integration [README][official website].


Deployment reality check

Easy path — Home Assistant OS Add-on: If you’re already running HAOS on a Raspberry Pi or similar, Music Assistant installs through the Add-on store in minutes. Add the MA repository URL to HAOS, install the add-on, install the integration, done. This is the intended path and the smoothest one [README][official website].

Harder path — standalone Docker: Possible, documented, but Music Assistant explicitly warns it cannot run as a plain Python package because it depends on OS-level components: ffmpeg, custom binaries, and similar [README]. The Docker container handles those dependencies, but you’ll still need to wire up networking to your Home Assistant instance separately to get the HA integration working. Manageable for anyone comfortable with Docker, but not a beginner-friendly Saturday afternoon project.

What you actually need for the standalone path:

  • Always-on Linux device with 2+ GB RAM
  • Docker installed
  • A reverse proxy (Caddy or nginx) for remote access
  • Ports configured for the MA web UI and API

What can go wrong:

  • Streaming service authentication is token-based and can expire or break when providers update their APIs. Spotify integration in particular has historically been sensitive to connection state.
  • The Home Assistant Plugin (importing HA media players into MA) adds setup steps that aren’t obvious to new users. The docs are solid [official website], but there’s no hand-holding wizard.
  • Local file indexing on large libraries can be slow on first run — Raspberry Pi 4 with a 50K-track NAS mount is not instant.

Realistic time estimate:

  • HAOS Add-on path: 15–30 minutes including music provider setup.
  • Standalone Docker: 1–3 hours including HA integration wiring.
  • No Home Assistant at all: technically possible, practically painful — half the features disappear and the setup guide assumes HA context.

Pros and cons

Pros

  • Apache-2.0 license. Commercial-friendly, fork-friendly, no usage restrictions. This is better than the GPL licenses some competitors use [merged profile].
  • Genuine streaming service breadth. Spotify, TIDAL, Deezer, Apple Music, BBC Sounds, Audible — all in one player. No other free self-hosted tool matches this combination [official website][1].
  • Deep Home Assistant integration. If you’re in the HA ecosystem, this unlocks music as a first-class automation citizen. Voice control, presence-based playback, room-aware streaming — all scriptable [official website][1].
  • Multi-room sync. Playback synchronization across supported players actually works, and transfer between rooms is a documented feature, not a hack [official website].
  • Open Home Foundation backing. This isn’t a solo maintainer’s hobby project at risk of abandonment. The governance structure provides some continuity guarantee [README].
  • Clean PWA UI. VueJS 3 frontend; recognizable enough that XDA uses it as a visual reference point for “polished self-hosted music” [5].
  • Active development. Three significant version releases in 2024 alone, each shipping substantial new streaming provider support [1].

Cons

  • Home Assistant dependency for the good path. Standalone mode exists but you give up automation, voice control, and the HA media player import feature. A significant portion of MA’s value proposition walks out the door.
  • Not beginner-friendly. Always-on hardware requirement, Docker or HAOS, streaming provider API configuration — there’s a meaningful setup barrier for non-technical users.
  • No native mobile app. PWA works fine but some users find browser-based mobile music players less reliable than native apps, especially for background playback.
  • Modest community size. 1,419 GitHub stars means a smaller community forum and fewer third-party tutorials compared to Jellyfin, Plex, or Navidrome. When things break, the support ecosystem is thinner [merged profile].
  • Streaming services still cost money. This isn’t a cost savings tool in the way Activepieces replaces Zapier — your Spotify bill doesn’t change. The value is control and integration, not subscription replacement.
  • Independent review coverage is sparse. At the time of writing, detailed third-party reviews of Music Assistant specifically are hard to find. That means less community-verified information about failure modes and edge cases.

Who should use this / who shouldn’t

Use Music Assistant if:

  • You’re already running Home Assistant and want music to be part of your automation system.
  • You have multiple different speaker types around the house (mix of Chromecast, AirPlay, Sonos) and you’re tired of switching apps.
  • You have both local files and streaming subscriptions and want a single unified queue.
  • You want voice control over your music through HA Assist without depending on Google or Amazon cloud services.
  • You’re comfortable with basic Docker or already on HAOS.

Skip it (stay with your current setup) if:

  • You don’t run Home Assistant and have no interest in starting. The standalone Docker path works, but you lose most of what makes MA special.
  • You’re a non-technical user who can’t troubleshoot a failed streaming service authentication token.
  • You only use one streaming service and your speakers all support it natively — Spotify Connect to Chromecast directly is simpler with nothing to maintain.
  • You need offline mobile playback — MA is network-dependent and streams from the server; it’s not a sync-for-offline tool.

Consider alternatives first if:

  • Your use case is primarily local music files with no streaming integration — Navidrome or Jellyfin Music are simpler and purpose-built for that.
  • You’re an audiophile who cares deeply about lossless playback metadata, DSP, and room correction — Roon is more mature for that use case despite the price.

Alternatives worth considering

  • Navidrome — the cleanest self-hosted alternative for local music libraries. Subsonic-compatible, lightweight enough to run on the cheapest VPS, zero streaming service integration. Pick this if all your music is local.
  • Jellyfin — broader media server (movies, TV, music together). Music playback works but it’s not Jellyfin’s primary focus. Worth considering if you want one server for everything.
  • Plex with PlexAmp — mature, polished, strong mobile apps, decent local + Tidal integration. Costs $11.99/mo or $120 lifetime for Plex Pass. Streaming service support is limited versus MA.
  • Roon — the audiophile option. Deep local library analysis, excellent DSP, some streaming integration. $14.99/mo or $829.99 lifetime. If you’re in this price range, you presumably know why.
  • LMS (Logitech Media Server) — old-school, extremely stable, great for Squeezebox hardware. UI hasn’t aged well. Worth knowing about if you have legacy Squeezebox equipment.
  • Mopidy — Python-based, plugin-driven, hackable. More of a building block than a finished product. Good if you want to script your own music system from components.

For a Home Assistant user, the realistic decision is Music Assistant vs Jellyfin for music: pick MA if streaming services matter, pick Jellyfin if you want one server for all media types.


Bottom line

Music Assistant fills a specific and underserved slot: unified streaming-plus-local playback inside the Home Assistant automation ecosystem. If that sentence describes you, there’s nothing else that does it as cleanly. Apache-2.0 licensed, actively developed under the Open Home Foundation, and genuinely capable of replacing the fragmented mess of speaker apps most smart home users end up with.

The honest limitations are just as specific: it’s not a general-purpose media server, it expects Home Assistant context to deliver its full value, and the setup has enough moving parts to lose a non-technical user. The review coverage community is thin enough that edge cases are less documented than you’d like when something breaks. But for the person who already has a Raspberry Pi running HA, a mix of Chromecast and AirPlay speakers, and subscriptions to two or three streaming services — Music Assistant is the tool that ties it all together, at zero software cost, on hardware they already own.


Sources

  1. AlternativeTo — Music Assistant (10 likes, version history, feature listing). https://alternativeto.net/software/music-assistant/about/
  2. Dhruv Bhutani, XDA Developers“This self-hosted Discord music bot looks like Spotify, and I’ll never use anything else” (Jun 6, 2025). https://www.xda-developers.com/self-hosted-discord-music-bot-looks-like-spotify/

Primary sources:

Features

Integrations & APIs

  • Plugin / Extension System