📦 Beta Release
Changes since 2.11.0b5
🚀 New Providers
- AudioMuse-AI provider (by @NeptuneHub in #4576)
🚀 Features and enhancements
- Update Yandex Music Connect to v4.3.13 with linked accounts, AudioSource lifecycle, and queue controls (by @trudenboy in #5589)
- Add statistics API for play history (by @dmoo500 in #5700)
- Require the impersonated user to hold the command's scope (by @fmunkes in #6801)
- Playlist tracks and podcast episodes sort, search and page on the server (by @marcelveldt in #6932)
- Artist and track listings sort, search and page on the server (by @marcelveldt in #6935)
- Version, genre and browse listings sort, search and page on the server (by @marcelveldt in #6937)
- Add folder rule to smart playlists (by @DerGary in #6945)
- Keep untouched AI Radio preset hosts in sync with the bundled wording (by @MarvinSchenkel in #6966)
- Add a setting to choose which source plays (by @marcelveldt in #6978)
- Merge library artists that MusicBrainz shows are the same (by @OzGav in #6988)
- Control playback started outside Music Assistant on Raumfeld players (by @Simanias in #6989)
- Play albums from your own streaming account instead of the household's (by @marcelveldt in #6993)
- Add a setting to play a better copy of tracks below a chosen quality (by @marcelveldt in #6996)
- Skip unchanged Apple Music library syncs (by @MarvinSchenkel in #6998)
- Refetch Apple Music playlist tracks only when the playlist changed (by @MarvinSchenkel in #6999)
- Pick up Apple Music favourites on days the library sync is skipped (by @MarvinSchenkel in #7002)
- Play albums and playlists in the order their listing shows (by @marcelveldt in #7004)
- Alexa: fast two-way volume for Echo devices (by @szsolt in #7011)
- Add filters and paging for remaining listings (by @dmoo500 in #7014)
- Fix Sendspin display Play routing to static groups (by @teancom in #7015)
- Link genres right away when adding an item to the library (by @OzGav in #7017)
- Show Apple Music stations under Radio (by @MarvinSchenkel in #7021)
- Find the Raumfeld host on the network during setup (by @Simanias in #7024)
- Add a command to move a track within a playlist (by @pcc0x in #7031)
- Unpack only the analysis arrays a bulk reader asks for (by @chrisuthe in #7039)
- Allow including videos in YouTube Music searches (by @jetersen in #7045)
- Use Qobuz artist links when identifying artists on MusicBrainz (by @OzGav in #7046)
- Add counts for artist listings (by @dmoo500 in #7050)
- Show the playlist cover on AI Radio shows in the Radio library (by @MarvinSchenkel in #7051)
- Identify artists on MusicBrainz by their top track titles instead of streaming searches (by @OzGav in #7055)
- List Sendspin line-ins on their own player (by @maximmaxim345 in #7059)
- Send Thumbs up/down to Pandora stations when clicking favorite/dislike on a track (by @drawsmcgraw in #7068)
- Handle Audiobookshelf author socket events (by @fmunkes in #7069)
- Keep seeded random listing order stable across pages (by @dmoo500 in #7078)
- Follow Raumfeld zone changes and speed up regrouping (by @Simanias in #7079)
- Similar tracks from a similarity plugin take precedence over the music provider (by @MarvinSchenkel in #7113)
- Support Plex in the AudioMuse-AI provider (by @MarvinSchenkel in #7119)
- Read Kodi artist NFO tags case-insensitively and import type, style, mood and life span (by @OzGav in #7130)
- Offer the station buttons of a Raumfeld speaker as sources (by @Simanias in #7141)
- Offer shuffle and repeat for Raumfeld playback started outside Music Assistant (by @Simanias in #7151)
🐛 Bugfixes
- Drop dead Local files folder links and images of albums and artists once (by @MarvinSchenkel in #6506)
- Reconnect Home Assistant after an unexpected listener error (by @ryanmac8 in #6767)
- Let announcements and providers skip TLS verification for ffmpeg inputs (by @MarvinSchenkel in #6769)
- Drop the old artist when a local file is moved and retagged (by @OzGav in #6790)
- Update Yandex Music provider to v3.8.28 (by @trudenboy in #6791)
- Fix audiobook playback position when repeating flow streams (by @teancom in #6810)
- Skipping a track on the speaker itself no longer stalls on music services with one stream (by @marcelveldt in #6873)
- Show the full episode description for podcast feeds (by @OzGav in #6908)
- Fix AirPlay drifting out of sync with Sendspin players (by @maximmaxim345 in #6974)
- Soundcloud: play tracks only served as AAC (HLS) (by @BeeSouul in #6975)
- Skip album covers Tidal gives as artist pictures (by @OzGav in #6985)
- Sync the Apple Music library daily instead of every 12 hours (by @MarvinSchenkel in #6986)
- Cache the Apple Music song check of catalog-less library albums (by @MarvinSchenkel in #6987)
- Get Apple Music track sync relations from the library listing and count API requests (by @MarvinSchenkel in #6990)
- Fix YouTube Music podcast tasks failing on a podcast YouTube no longer serves (by @MarvinSchenkel in #6991)
- Reduce Apple Music rate limiting by sharing the catalog edge cache (by @MarvinSchenkel in #6992)
- Fail fast on low priority Apple Music requests during a throttle (by @MarvinSchenkel in #6994)
- Fix Apple Music asking to sign in again when the app token is rejected (by @MarvinSchenkel in #6995)
- Keep excluded genres off an item when the library syncs (by @OzGav in #7000)
- Bump
aiosxmto 0.3.1 to fix SiriusXM channels that 404 on every segment (by @MizterB in #7001) - Don't blame the address when a self-hosted speech server is slow to start (by @marcelveldt in #7005)
- Release sync group members when an idle group dissolves (by @smellybellyy in #7008)
- Let a universal player follow the name of its device (by @chrisuthe in #7010)
- Update MSX Bridge provider to v1.6.5: fix native volume, Search and dynamic playlist playback (by @trudenboy in #7019)
- Fix remote access retrying the signaling server every 10s when registration is refused (by @MarvinSchenkel in #7020)
- Keep the queue position when a stopped player reports a new position (by @MarvinSchenkel in #7022)
- Name Sendspin inputs after their player (by @maximmaxim345 in #7023)
- Keep Sonos playing when it gives up on a slow track (by @marcelveldt in #7026)
- Fix Sendspin pairing option missing after unpair (by @maximmaxim345 in #7027)
- Keep the AI DJ going when the song before a break fails or is skipped (by @marcelveldt in #7028)
- Allow Sendspin sources to be used without pairing (by @maximmaxim345 in #7029)
- Keep the paused position in the Sendspin metadata (by @maximmaxim345 in #7030)
- Fix Sendspin progress jumping back to the track start (by @maximmaxim345 in #7033)
- Bump
aiosendspinto 10.1.0 to fix Sendspin players disappearing with multiple servers (by @maximmaxim345 in #7034) - Fix QueueEmpty error when ungrouping a group leader with DSP enabled (by @MarvinSchenkel in #7035)
- Fail Sendspin over Cast at once when the receiver refuses the app (by @Simanias in #7037)
- Keep the Sonic Similarity index builds off the provider load path (by @chrisuthe in #7038)
- Fix DSD in WavPack failing analysis due to wrong PCM size (by @MarvinSchenkel in #7041)
- Update Yandex Station provider to v1.5.23 (by @trudenboy in #7043)
- Stop a library reset from mixing up artist details (by @OzGav in #7052)
- Fix Tidal mixes missing beyond the first page of a module (by @jozefKruszynski in #7053)
- Resume Sendspin sources more reliably after a short network drop (by @maximmaxim345 in #7054)
- Fix Sendspin progress running ahead after pause and resume (by @maximmaxim345 in #7056)
- Allow playing a Sendspin input held by another server (by @maximmaxim345 in #7057)
- Fix a player showing the group's position after leaving it (by @maximmaxim345 in #7058)
- Allow setting up Sendspin devices with other servers on the network (by @maximmaxim345 in #7060)
- Fix similar tracks for originals when remastered versions are kept apart (by @marcelveldt in #7061)
- Ignore Qobuz artist links without an artist id (by @OzGav in #7066)
- Fix YouTube Music album parsing when artists is null (by @jlapenna in #7070)
- Fix Plex track artist library lookup (by @NasaGeek in #7072)
- Launch the Sendspin Cast app before the stream starts (by @Simanias in #7074)
- Keep the YouTube Music session alive instead of letting the cookie expire (by @bbauti in #7075)
- Pin async-upnp-client 0.49.0 for Raumfeld too (by @Simanias in #7080)
- Limit Tidal to one concurrent stream per account (by @jozefKruszynski in #7082)
- Only count album artists of albums in the library (by @OzGav in #7088)
- Join albums that share a barcode but list different album artists (by @OzGav in #7089)
- Fix track numbers on multi-disc Tidal albums (by @OzGav in #7090)
- Fix Genius returning lyrics of the wrong song (by @MarvinSchenkel in #7094)
- Fix featured artists showing as album artists for Emby (by @MarvinSchenkel in #7095)
- Fix autoplay queueing the same tracks repeatedly (by @MarvinSchenkel in #7096)
- Fix Spotify playlist search failing while the shared Spotify client is rate limited (by @MarvinSchenkel in #7097)
- Keep the Spotify account when reconfiguring during a rate limit (by @MarvinSchenkel in #7098)
- Report playlist items that could not be added (by @MarvinSchenkel in #7099)
- Keep AirPlay receivers that share one IP on their own Universal Player (by @MarvinSchenkel in #7100)
- Fix local files album artist fallback for album folders in the share root (by @MarvinSchenkel in #7102)
- Show Aux In as the active source on WiiM devices (by @MarvinSchenkel in #7103)
- Bump
aiosendspinto 10.2.1 to fix Opus stutter on ESP32 ESPHome speakers (by @maximmaxim345 in #7105) - Keep a provider's progress sync on its own account (by @fmunkes in #7106)
- Fix Raumfeld rooms without a power state failing to play (by @MarvinSchenkel in #7112)
- Pausing Spotify on the Soloist engine from the Spotify app no longer skips the track (by @MarvinSchenkel in #7117)
- Fix ARD Audiothek account login (by @MarvinSchenkel in #7118)
- Fix newer Google Cast speakers stopping after about 24 MiB (by @MarvinSchenkel in #7120)
- Hide plugin and metadata results on music sources a user may not see (by @MarvinSchenkel in #7121)
- Sonos: allow 24-bit playback on Play:3 (by @mnestrud in #7122)
- Start a transferred queue at the source's position (by @mnestrud in #7123)
- Fix radio metadata updates in groups with protocol-backed leaders (by @teancom in #7129)
- Fix Home Assistant plugin not recovering after a setup timeout (by @MarvinSchenkel in #7131)
- Fix flow streams holding back FLAC audio on quiet passages (by @MarvinSchenkel in #7132)
- Keep Sonic Similarity's "Inspired by recently played" row separate per user (by @MarvinSchenkel in #7133)
- Fix Endless Mix not playing when seeded by a radio station (by @MarvinSchenkel in #7134)
- Use AirPlay 2 compatibility mode for a shairport-sync receiver on the MA host (by @MarvinSchenkel in #7135)
- Let the sample rates of each Raumfeld room be chosen, up to 96 kHz by default (by @Simanias in #7138)
- Report a play or stop the Raumfeld host rejects (by @Simanias in #7140)
- Fix web players showing up in Home Assistant while not exposed (by @MarvinSchenkel in #7145)
- Play a reassigned Raumfeld station button's new item (by @Simanias in #7146)
- Keep a WiiM seek from moving the queue to the end of the item (by @MarvinSchenkel in #7149)
- Keep the library when a migration runs out of disk space (by @MarvinSchenkel in #7153)
🎨 Frontend Changes
- Show larger album art over a softly blurred backdrop (by @stvncode in #2997)
- Make the detail page headers fit on phones (by @stvncode in #2996)
- Onboarding smaller UI/UX improvements (by @pierosavi in #2898)
- Link artists and albums in the playlist table, pin the toolbar on phones (by @stvncode in #2992)
- Sign in with Home Assistant on the remote app without an External URL (by @marcelveldt in #2967)
- Refactor ItemsListing and finish library sorting follow-ups (by @dmoo500 in #2985)
- Centre the empty state on listing pages (by @stvncode in #2988)
- Load the first page of library listings while sort options are still loading (by @fmunkes in #2984)
- Let admins pause and resume the setup wizard (by @pierosavi in #2980)
- Show a retry button when a listing fails to load (by @stvncode in #2989)
- Show only one spinner in the Command Center search (by @stvncode in #2990)
- Move the settings, players and providers lists to shadcn-vue (by @pierosavi in #2986)
- Bump actions/setup-node from 7.0.0 to 7.1.0 (by @dependabot[bot] in #2995)
- Bump release-drafter/release-drafter from 7.9.0 to 7.10.0 (by @dependabot[bot] in #2994)
- Stop the dev server reloading when a page uses a new Vuetify component (by @pierosavi in #2993)
- Add space above the featured artists on the playlist page (by @stvncode in #3005)
- Say Play on the player whenever the play button has room (by @stvncode in #3000)
- Show the artwork full width atop detail pages on phones (by @stvncode in #3001)
- Keep AI Radio preset tags on hosts saved from the editor (by @MarvinSchenkel in #2979)
- Show sign-in errors in the language of the app (by @marcelveldt in #3002)
- Add space above the featured artists on the playlist page (by @stvncode in #3005)
- Add server-side listings and typed playback sorting (by @dmoo500 in #2998)
- Add folder rule to the smart playlist editor (by @DerGary in #2970)
- Give collection pages the detail page hero (by @fmunkes in #3016)
🧰 Maintenance and dependency bumps
30 changes
- List all streams controller modules in its README (by @marcelveldt in #6893)
- Fix a misleading 'Failed to drain the pipes' warning when a process is killed while still being read (by @marcelveldt in #6957)
- Bump actions/download-artifact from 8.0.1 to 8.0.2 (by @dependabot[bot] in #6979)
- Clean up redundant code in the MSX Bridge player provider (by @marcelveldt in #6997)
- Remove unused jump-to-index path from the MSX Bridge provider (by @marcelveldt in #7003)
- Show sign-in errors in the language of the app (by @marcelveldt in #7006)
- Update aioslimproto to 3.3.0 (by @MarvinSchenkel in #7007)
- Log the user that requested playback at INFO level (by @teancom in #7018)
- Bump actions/create-github-app-token from 3.2.0 to 3.3.0 (by @dependabot[bot] in #7042)
- Skip the metadata update of an item removed from the library (by @OzGav in #7048)
- Log why the MusicBrainz link run is skipped (by @OzGav in #7049)
- Base album loudness and same-album crossfade on where a track was played from (by @marcelveldt in #7062)
- Reuse Audiobookshelf device ids across playback sessions (by @fmunkes in #7065)
- Bump async-upnp-client to 0.49.0 (by @Reznov6896 in #7067)
- Base album play counts on where a track was played from (by @marcelveldt in #7073)
- Harden MusicCast rediscovery, zone grouping and player updates (by @fmunkes in #7077)
- Move more non-classical aliases out of the classical genre (by @OzGav in #7083)
- Bump hass-client from 1.4.0 to 1.4.1 in the music-assistant-libs group (by @dependabot[bot] in #7084)
- Bump numkong from 7.8.3 to 7.8.5 (by @dependabot[bot] in #7085)
- Bump audible from 0.10.0 to 0.13.0 (by @dependabot[bot] in #7086)
- Bump wiim from 0.1.9 to 0.3.1 (by @dependabot[bot] in #7087)
- Link the listing contract from development docs (by @dmoo500 in #7093)
- Fix the queue position tests failing on dev (by @MarvinSchenkel in #7104)
- Share UPnP AVTransport requests between MusicCast and Bose SoundTouch (by @fmunkes in #7107)
- Bump CodSpeedHQ/action from 5.4.2 to 5.5.0 (by @dependabot[bot] in #7108)
- Bump aiohttp from 3.14.3 to 3.14.4 (by @dependabot[bot] in #7110)
- Bump certifi from 2025.11.12 to 2026.10.19 (by @dependabot[bot] in #7127)
- Bump pillow from 12.3.0 to 13.0.0 (by @dependabot[bot] in #7128)
- Update airplay-cli to v0.5.9 (by @musicassistant-bot[bot] in #7137)
- Let the Raumfeld provider's unload wait for its tasks (by @Simanias in #7150)
🙇 Thanks to our contributors
Special thanks to the following contributors who helped with this release:
@BeeSouul, @DerGary, @MarvinSchenkel, @MizterB, @NasaGeek, @NeptuneHub, @OzGav, @Reznov6896, @Simanias, @bbauti, @chrisuthe, @dmoo500, @drawsmcgraw, @fmunkes, @jetersen, @jlapenna, @jozefKruszynski, @marcelveldt, @maximmaxim345, @mnestrud, @pcc0x, @pierosavi, @ryanmac8, @smellybellyy, @stvncode, @szsolt, @teancom, @trudenboy