music-assistant-server.git
10 months agoTyping fixes for the tracks controller (#2635)
OzGav [Tue, 25 Nov 2025 13:34:39 +0000 (23:34 +1000)]
Typing fixes for the tracks controller (#2635)

* Typing fixes for the tracks controller

* Fix logic change

* Fix _set_track_artist to handle ItemMappings without numeric IDs

* Remove db asserts

* Change base class

* Convert itemmapping to artist if needed

* convert itemmapping to artist if necessary #2

10 months agoChore(deps): Bump isort from 6.0.1 to 7.0.0 (#2517)
dependabot[bot] [Tue, 25 Nov 2025 13:32:23 +0000 (13:32 +0000)]
Chore(deps): Bump isort from 6.0.1 to 7.0.0 (#2517)

* Chore(deps): Bump isort from 6.0.1 to 7.0.0

Bumps [isort](https://github.com/PyCQA/isort) from 6.0.1 to 7.0.0.
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PyCQA/isort/compare/6.0.1...7.0.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
* Remove unused isort

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoTyping fixes for the playlists controller (#2628)
OzGav [Tue, 25 Nov 2025 10:46:10 +0000 (20:46 +1000)]
Typing fixes for the playlists controller (#2628)

* Typing fixes for the playlists controller

* Re-add comment

* Fix typos

* Restore comments

* Remove db asserts

* Resolve conflicts

* adjust comment

---------

Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoTyping fixes for the base media controller (#2633)
OzGav [Tue, 25 Nov 2025 10:42:29 +0000 (20:42 +1000)]
Typing fixes for the base media controller (#2633)

* Typing fixes for the base media controller

* Remove db asserts

* PR review comments

* remove unused function

---------

Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoTyping fixes for the podcasts controller (#2627)
OzGav [Tue, 25 Nov 2025 10:34:03 +0000 (20:34 +1000)]
Typing fixes for the podcasts controller (#2627)

* Typing fixes for the podcasts controller

* Fix overlooked typing issue

* Remove db asserts

* Remove ignore

10 months agoSubsonic: Give user control over pagination size (#2665)
Eric Munson [Tue, 25 Nov 2025 08:32:08 +0000 (03:32 -0500)]
Subsonic: Give user control over pagination size (#2665)

The selected value of 500 entries per invocation may not be ideal for
all users. Given that there isn't a single value that is ideal for all
users, let each configure their own. The default is shrinking to 200 as
a starting point.

Signed-off-by: Eric B Munson <eric@munsonfam.org>
10 months agoChore(deps): Bump alexapy from 1.29.9 to 1.29.10 (#2670)
dependabot[bot] [Tue, 25 Nov 2025 08:27:34 +0000 (08:27 +0000)]
Chore(deps): Bump alexapy from 1.29.9 to 1.29.10 (#2670)

* Chore(deps): Bump alexapy from 1.29.9 to 1.29.10

Bumps [alexapy](https://gitlab.com/keatontaylor/alexapy) from 1.29.9 to 1.29.10.
- [Release notes](https://gitlab.com/keatontaylor/alexapy/tags)
- [Changelog](https://gitlab.com/keatontaylor/alexapy/blob/dev/CHANGELOG.md)
- [Commits](https://gitlab.com/keatontaylor/alexapy/compare/v1.29.9...v1.29.10)

---
updated-dependencies:
- dependency-name: alexapy
  dependency-version: 1.29.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
* Bump alexapy in provider manifest

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoChore(deps): Bump certifi from 2025.10.5 to 2025.11.12 (#2671)
dependabot[bot] [Tue, 25 Nov 2025 08:24:28 +0000 (09:24 +0100)]
Chore(deps): Bump certifi from 2025.10.5 to 2025.11.12 (#2671)

Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.10.5 to 2025.11.12.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2025.11.12
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoChore(deps-dev): Bump ruff from 0.14.4 to 0.14.6 (#2672)
dependabot[bot] [Tue, 25 Nov 2025 08:23:50 +0000 (09:23 +0100)]
Chore(deps-dev): Bump ruff from 0.14.4 to 0.14.6 (#2672)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.4 to 0.14.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.4...0.14.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoChore(deps): Bump mashumaro from 3.16 to 3.17 (#2673)
dependabot[bot] [Tue, 25 Nov 2025 08:23:10 +0000 (09:23 +0100)]
Chore(deps): Bump mashumaro from 3.16 to 3.17 (#2673)

Bumps [mashumaro](https://github.com/Fatal1ty/mashumaro) from 3.16 to 3.17.
- [Release notes](https://github.com/Fatal1ty/mashumaro/releases)
- [Commits](https://github.com/Fatal1ty/mashumaro/compare/v3.16...v3.17)

---
updated-dependencies:
- dependency-name: mashumaro
  dependency-version: '3.17'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoPlex: added remote control feature (#2608)
anatosun [Tue, 25 Nov 2025 08:20:07 +0000 (09:20 +0100)]
Plex: added remote control feature (#2608)

* Plex: moved scrobbling and playback reporting logic to plugin

* Plex connect: introducing new plugin

* Plex Connect: implemented copilot's suggestions

* Plex connect: corrected link to documentation

Co-authored-by: OzGav <gavnosp@hotmail.com>
---------

Co-authored-by: OzGav <gavnosp@hotmail.com>
10 months agoFix handler type of register_api_command
Marvin Schenkel [Tue, 25 Nov 2025 08:10:18 +0000 (09:10 +0100)]
Fix handler type of register_api_command

10 months agoTyping fixes for the player queues controller (#2611)
OzGav [Tue, 25 Nov 2025 07:40:15 +0000 (17:40 +1000)]
Typing fixes for the player queues controller (#2611)

* Initial drafting

* Fix pyproject.toml

* Formatting

* Filter for track items

* Replace assert with error checks

* Fix grammar typo

* Lint

* Lint

* Revert assert

* Revert logic change

* Revert logic change

* add return type hints

* PR review fixes

* Fix play_media

* Remove some asserts

* Apply feedback

---------

Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months ago⬆️ Update music-assistant-frontend to 2.17.9 (#2674)
music-assistant-machine [Tue, 25 Nov 2025 02:49:29 +0000 (03:49 +0100)]
⬆️ Update music-assistant-frontend to 2.17.9 (#2674)

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
10 months agoSubsonic: Add ProviderFeature for Favorites (#2667)
Eric Munson [Mon, 24 Nov 2025 15:47:04 +0000 (10:47 -0500)]
Subsonic: Add ProviderFeature for Favorites (#2667)

These features were missing from
f2c30347988e5c31799a9ef9efa4f19e5eff1e60
Add the features we now provide.

Signed-off-by: Eric B Munson <eric@munsonfam.org>
10 months ago⬆️ Update music-assistant-models to 1.1.70 (#2666)
music-assistant-machine [Sun, 23 Nov 2025 22:01:04 +0000 (23:01 +0100)]
⬆️ Update music-assistant-models to 1.1.70 (#2666)

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
10 months agoDisallow malicious playlist updates (#2661)
Marvin Schenkel [Sun, 23 Nov 2025 18:58:30 +0000 (19:58 +0100)]
Disallow malicious playlist updates (#2661)

10 months agoChore(deps): Bump actions/checkout from 5 to 6 (#2659)
dependabot[bot] [Sun, 23 Nov 2025 17:07:49 +0000 (18:07 +0100)]
Chore(deps): Bump actions/checkout from 5 to 6 (#2659)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoSubsonic: Support syncing favorites to subsonic server (#2663)
Eric Munson [Sun, 23 Nov 2025 16:34:47 +0000 (11:34 -0500)]
Subsonic: Support syncing favorites to subsonic server (#2663)

10 months ago⬆️ Update music-assistant-models to 1.1.69 (#2664)
music-assistant-machine [Sat, 22 Nov 2025 21:11:27 +0000 (22:11 +0100)]
⬆️ Update music-assistant-models to 1.1.69 (#2664)

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
10 months agoTypes fixes for the Albums Controller (#2632)
OzGav [Fri, 21 Nov 2025 17:35:08 +0000 (03:35 +1000)]
Types fixes for the Albums Controller (#2632)

* Typing fixes for the albums controller

* Revert instance check

* Fix type annotations and mypy compliance

* Remove db asserts

* Switch uniquelist to list

* typo

10 months agoChore(deps): Bump pywidevine from 1.8.0 to 1.9.0 (#2590)
dependabot[bot] [Fri, 21 Nov 2025 15:43:20 +0000 (15:43 +0000)]
Chore(deps): Bump pywidevine from 1.8.0 to 1.9.0 (#2590)

* Chore(deps): Bump pywidevine from 1.8.0 to 1.9.0

Bumps [pywidevine](https://github.com/devine-dl/pywidevine) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/devine-dl/pywidevine/releases)
- [Changelog](https://github.com/devine-dl/pywidevine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/devine-dl/pywidevine/compare/v1.8.0...v1.9.0)

---
updated-dependencies:
- dependency-name: pywidevine
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
* Also bump deps in the provider

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoChore(deps): Bump liblistenbrainz from 0.6.0 to 0.6.1 (#2592)
dependabot[bot] [Fri, 21 Nov 2025 15:29:30 +0000 (15:29 +0000)]
Chore(deps): Bump liblistenbrainz from 0.6.0 to 0.6.1 (#2592)

* Chore(deps): Bump liblistenbrainz from 0.6.0 to 0.6.1

Bumps [liblistenbrainz](https://github.com/metabrainz/liblistenbrainz) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/metabrainz/liblistenbrainz/releases)
- [Commits](https://github.com/metabrainz/liblistenbrainz/compare/v0.6.0...v0.6.1)

---
updated-dependencies:
- dependency-name: liblistenbrainz
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
* Also bump deps in the provider

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoFix Chromecast volume rounding bug (#2656)
OzGav [Fri, 21 Nov 2025 15:26:29 +0000 (01:26 +1000)]
Fix Chromecast volume rounding bug (#2656)

* Fix Chromecast volume rounding bug for values 8% and below

Changed volume level conversion from int() to round() to fix floating-point
precision issues. Chromecast reports volume as float (0.0-1.0) which can have
slight imprecision (e.g., 4% = 0.03999999910593033). Using int() truncated
these values, causing displayed volume to be 1% less than actual for values
8% and below.

Fixes the issue where setting volume to 5% would display as 4%, etc.

* Fix Chromecast volume rounding bug for values 8% and below

Changed volume level conversion to use round() instead of int() in both
directions to fix floating-point precision issues:

1. When setting volume: round to 2 decimal places before sending to device
2. When reading volume: round to nearest integer when converting to percentage

This fixes the issue where Chromecast reports volume as float (0.0-1.0) with
slight imprecision (e.g., 4% = 0.03999999910593033). Using int() truncated
these values, causing displayed volume to be 1% less than actual for values
8% and below.

Fixes the issue where setting volume to 5% would display as 4%, etc.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoChore(deps): Bump aiohttp from 3.13.1 to 3.13.2 (#2620)
dependabot[bot] [Fri, 21 Nov 2025 14:40:08 +0000 (15:40 +0100)]
Chore(deps): Bump aiohttp from 3.13.1 to 3.13.2 (#2620)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoTyping fixes for the audiobooks controller (#2626)
OzGav [Fri, 21 Nov 2025 14:22:41 +0000 (00:22 +1000)]
Typing fixes for the audiobooks controller (#2626)

* Typing fixes for the audiobooks controller

* Remove duplicate code

* Remove db asserts

10 months agofix(tidal): auth refresh time diff (#2653)
Jozef Kruszynski [Fri, 21 Nov 2025 14:12:30 +0000 (15:12 +0100)]
fix(tidal): auth refresh time diff (#2653)

* fix(tidal): auth refresh time diff

Auth expiration check was using only 60 seconds rather than the intended
60 minutes. Using timedelta to show full intention

Closes #4425

* fix(tidal): invert current logic, and use constant for buffer

10 months agoDisable Zone Handling if needed for MusicCast players (#2650)
Fabian Munkes [Fri, 21 Nov 2025 14:10:51 +0000 (15:10 +0100)]
Disable Zone Handling if needed for MusicCast players (#2650)

* disable zone handling if desired

* bump lib

* wording

---------

Co-authored-by: OzGav <gavnosp@hotmail.com>
10 months agoTyping fixes for artists controller (#2625)
OzGav [Fri, 21 Nov 2025 14:05:56 +0000 (00:05 +1000)]
Typing fixes for artists controller (#2625)

* Typing fixes for artists controller

* Fix circular import

* Minor type change

* Switch tracks method return type to list

* Remove db asserts

* fix albums() return type

10 months agoAdd TLS options with fingerprint support to Fully Kiosk provider (#2649)
Miguel Angel Nubla [Fri, 21 Nov 2025 12:52:52 +0000 (13:52 +0100)]
Add TLS options with fingerprint support to Fully Kiosk provider (#2649)

* feat(fully-kiosk): add TLS options with fingerprint support

* fix(fully_kiosk): satisfy linters

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
10 months agoSome typing fixes for the music controller (#2629)
OzGav [Fri, 21 Nov 2025 10:38:20 +0000 (20:38 +1000)]
Some typing fixes for the music controller (#2629)

* Some typing fixes for the music controller

* Make self.database a property

* Restore comment

10 months agoUpdate alexapy requirement to version 1.29.9 (#2647)
Michael Ansel [Thu, 20 Nov 2025 18:24:05 +0000 (13:24 -0500)]
Update alexapy requirement to version 1.29.9 (#2647)

* Update alexapy requirement to version 1.29.9

Fix for login issues with Alexa Player Provider.

Changelog: https://gitlab.com/keatontaylor/alexapy/-/blob/dev/CHANGELOG.md#v1299-2025-11-08

Motivating discussion: https://github.com/orgs/music-assistant/discussions/431#discussioncomment-14954976

* Update requirements_all.txt for alexapy 1.29.9

Generated using scripts/gen_requirements_all.py

---------

Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
10 months agoAdd VBAN Receiver plugin provider (#2498)
sprocket-9 [Thu, 20 Nov 2025 13:06:19 +0000 (13:06 +0000)]
Add VBAN Receiver plugin provider (#2498)

10 months agoEnable disabled lint rules (#2658)
OzGav [Thu, 20 Nov 2025 13:04:47 +0000 (23:04 +1000)]
Enable disabled lint rules (#2658)

10 months agoUndo yield to event loop
Marvin Schenkel [Wed, 19 Nov 2025 08:27:01 +0000 (09:27 +0100)]
Undo yield to event loop

10 months ago⬆️ Update music-assistant-frontend to 2.17.8 (#2655)
music-assistant-machine [Wed, 19 Nov 2025 02:46:23 +0000 (03:46 +0100)]
⬆️ Update music-assistant-frontend to 2.17.8 (#2655)

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
10 months agoChore(deps-dev): Bump ruff from 0.14.3 to 0.14.4 (#2621)
dependabot[bot] [Tue, 18 Nov 2025 13:48:01 +0000 (14:48 +0100)]
Chore(deps-dev): Bump ruff from 0.14.3 to 0.14.4 (#2621)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.3 to 0.14.4.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.3...0.14.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
10 months agoYTM: Yield control to event loop during stream url resolution to prevent blocking...
Marvin Schenkel [Tue, 18 Nov 2025 13:43:31 +0000 (14:43 +0100)]
YTM: Yield control to event loop during stream url resolution to prevent blocking the main thread.

10 months agoRefactor streams controller + smart fades (#2613)
Marvin Schenkel [Tue, 18 Nov 2025 13:42:01 +0000 (14:42 +0100)]
Refactor streams controller + smart fades  (#2613)

* Refactor streamscontroller + smartfades

* Adjust log levels and add mixer property

* Define separate smart fades logger in the streamcontroller

* Define separate smart fades logger in the streamcontroller

* Remove leftover

* Rewrite loggers as instance attributes

10 months agoFix DLNA player showing external source instead of MA queue (#2648)
OzGav [Tue, 18 Nov 2025 11:54:47 +0000 (21:54 +1000)]
Fix DLNA player showing external source instead of MA queue (#2648)

10 months agoFix Spotify audiobook instance routing (#2502)
OzGav [Tue, 18 Nov 2025 11:27:42 +0000 (21:27 +1000)]
Fix Spotify audiobook instance routing (#2502)

10 months agoTyping fixes for snapcast (#2624)
OzGav [Tue, 18 Nov 2025 11:08:34 +0000 (21:08 +1000)]
Typing fixes for snapcast (#2624)

* Typing fix for SiriusXM

* Typing fixes for snapcast

* fix return types

* Remove erroneous commit

* Revert erroneous commit

* Fix minor errors

10 months agoTyping fixes for the stream controller (#2540)
OzGav [Tue, 18 Nov 2025 09:53:26 +0000 (19:53 +1000)]
Typing fixes for the stream controller (#2540)

* work in progress

* mypy fixes for streams.py

* Fix typos

* Another typo

* PR review changes

* Fixes after merge conflicts

* Revert unnecessary change

* Remove unnecessary comments

* More changes post conflict resolve

* Remove exclude

* organise imports

* Updates post other commits

* Catch possible no stream details

* Updates for new commits

* Fix type error post conflict merge

* Simplify

* Simplify with type hints to config controller

* Typing adjustments

* Fix missing return type

* improve code clarity

* switch to assert for none check

* Fix return type mypy error

* Revert unnecessary bracket

* Use default parameter

10 months agoImprove lyrics lookup failure visibility (#2651)
OzGav [Tue, 18 Nov 2025 08:58:48 +0000 (18:58 +1000)]
Improve lyrics lookup failure visibility (#2651)

10 months agoTyping fix for SiriusXM (#2623)
OzGav [Tue, 18 Nov 2025 08:52:28 +0000 (18:52 +1000)]
Typing fix for SiriusXM (#2623)

10 months agoTyping fixes for the Cache controller (#2569)
OzGav [Tue, 18 Nov 2025 07:37:55 +0000 (17:37 +1000)]
Typing fixes for the Cache controller (#2569)

* mypy fixes for cache.py

* Fix  __init__ signature to match CoreController

* Adjust checksum typing

* Guarantee checksum is a str

* Apply suggestion from @marcelveldt

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
10 months agoAdd default value argument to get_*_config_value
Marcel van der Veldt [Mon, 17 Nov 2025 22:25:55 +0000 (23:25 +0100)]
Add default value argument to get_*_config_value

10 months agoMinor AirPlay tweaks (#2646)
OzGav [Mon, 17 Nov 2025 14:05:38 +0000 (00:05 +1000)]
Minor AirPlay tweaks (#2646)

10 months agoAdd type hints to config controller functions (#2639)
Marcel van der Veldt [Mon, 17 Nov 2025 11:20:30 +0000 (12:20 +0100)]
Add type hints to config controller functions (#2639)

10 months agoAdd (initial) support for AirPlay 2 (#2571)
Brad Keifer [Sun, 16 Nov 2025 19:26:09 +0000 (06:26 +1100)]
Add (initial) support for AirPlay 2 (#2571)

10 months agoHandle non-UTF8 .lrc files gracefully to prevent playback blocking (#2640)
OzGav [Sun, 16 Nov 2025 19:15:09 +0000 (05:15 +1000)]
Handle non-UTF8 .lrc files gracefully to prevent playback blocking (#2640)

10 months agoFix squeezelite sync group source selection (#2642)
OzGav [Sun, 16 Nov 2025 19:13:40 +0000 (05:13 +1000)]
Fix squeezelite sync group source selection (#2642)

Fix squeezelite group playback

10 months agofix: tracks tab not being populated (#2637)
anatosun [Sun, 16 Nov 2025 09:16:15 +0000 (10:16 +0100)]
fix: tracks tab not being populated (#2637)

10 months agofix: abs progress (again!) (#2641)
Fabian Munkes [Sun, 16 Nov 2025 08:46:28 +0000 (09:46 +0100)]
fix: abs progress (again!) (#2641)

* fix: another progress fix

* fix: forgot a not

10 months agoUpdate Resonate provider with `MULTI_DEVICE_DSP` support and other improvements ...
Maxim Raznatovski [Fri, 14 Nov 2025 15:02:16 +0000 (16:02 +0100)]
Update Resonate provider with `MULTI_DEVICE_DSP` support and other improvements (#2616)

* Update `MediaStream` usage

* Support `MULTI_DEVICE_DSP` for resonate

* Rename `stream` to `channel` in `MediaStream`

* Initial working implementation for per player DSP support

* Refactors, fixes, and comments

* Rename `shared_buffer` to `chunk_buffer`

* Use `UUID` instead of `str`

* Use seconds in `multi_client_stream`

* Move attribute definitions to class level

* Remove dead code

* Refactor `_cleanup_old_chunks`

* Rename `MultiClientStream` to `TimedClientStream`

* Refactor `_read_chunk_from`

* Convert main channel to 16-bit PCM for aioresonate compatibility

* Use separate host and advertise_host

Pass bind_ip for socket binding and publish_ip for mDNS advertising to
correctly handle scenarios where the server binds to all interfaces
(0.0.0.0) but advertises a specific IP address to clients.

* Bump `aioresonate`

* Add safety check to `TimedClientStream` to avoid memory leaks

* Update `MIN_BUFFER_DURATION` comment with findings

* Update music_assistant/providers/resonate/timed_client_stream.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Clean up `timed_client_stream` reference after playback

* Bump `aioresonate`

* Update call to the now async friendly `set_media_art`

* Update `playback_state` when joining a new group

* Update `group_members` based on `aioresonate` events

Instead of optimistically setting them.

* Move `MusicAssistantMediaStream` outside a method

* Run audio cleanup immediately

* Remove redundant type annotation

* Use `anext()`

* Remove unused async from `_cleanup_old_chunks`

* Simplify method name and clarify lock requirement

* Move `_generate` to class-level method

* Refactor `MusicAssistantMediaStream` parameters

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
10 months agoDelete and ignore uv.lock file
Marvin Schenkel [Fri, 14 Nov 2025 14:04:30 +0000 (15:04 +0100)]
Delete and ignore uv.lock file

10 months agoFix CI by installing all provider's dependencies when linting (#2619)
Maxim Raznatovski [Fri, 14 Nov 2025 13:32:45 +0000 (14:32 +0100)]
Fix CI by installing all provider's dependencies when linting (#2619)

Fix CI lint job by installing all provider dependencies

10 months agoAdded deno for YTMusic Provider (#2636)
Dnny44 [Thu, 13 Nov 2025 17:35:14 +0000 (11:35 -0600)]
Added deno for YTMusic Provider (#2636)

* Added deno for YTMusic Provider

* Commiting uv lock

11 months agoFix UGP member detection in `get_stream` (#2617)
Maxim Raznatovski [Mon, 10 Nov 2025 13:39:59 +0000 (14:39 +0100)]
Fix UGP member detection in `get_stream` (#2617)

11 months agoUse `get_stream` helper in builtin player (#2618)
Maxim Raznatovski [Mon, 10 Nov 2025 13:38:57 +0000 (14:38 +0100)]
Use `get_stream` helper in builtin player (#2618)

11 months agoTyping fixes for the Qobuz provider (#2610)
OzGav [Mon, 10 Nov 2025 09:43:22 +0000 (19:43 +1000)]
Typing fixes for the Qobuz provider (#2610)

11 months agoUse secure connection to MusicBrainz API (#2615)
mtdcr [Sun, 9 Nov 2025 23:01:10 +0000 (00:01 +0100)]
Use secure connection to MusicBrainz API (#2615)

11 months agoUpdate base image versions to 1.4.8
Marcel van der Veldt [Sun, 9 Nov 2025 08:34:19 +0000 (09:34 +0100)]
Update base image versions to 1.4.8

11 months agoRemove explicit lvvmlite and numpy dependencies now that we are using debian.
Marvin Schenkel [Sat, 8 Nov 2025 15:59:59 +0000 (16:59 +0100)]
Remove explicit lvvmlite and numpy dependencies now that we are using debian.

11 months agoApple Music: Add remaining favourite parsing + custom music token config (#2609)
Marvin Schenkel [Sat, 8 Nov 2025 11:49:19 +0000 (12:49 +0100)]
Apple Music: Add remaining favourite parsing + custom music token config (#2609)

11 months agoAdd logging filter
Marcel van der Veldt [Sat, 8 Nov 2025 11:39:37 +0000 (12:39 +0100)]
Add logging filter

11 months agoFix bugs in webserver
Marcel van der Veldt [Fri, 7 Nov 2025 17:43:11 +0000 (18:43 +0100)]
Fix bugs in webserver

11 months agoTyping fixes for the config controller (#2570)
OzGav [Fri, 7 Nov 2025 16:18:39 +0000 (02:18 +1000)]
Typing fixes for the config controller (#2570)

11 months agoRefactor Smart fades (#2582)
Marvin Schenkel [Fri, 7 Nov 2025 16:16:53 +0000 (17:16 +0100)]
Refactor Smart fades (#2582)

11 months agoTyping fixes for the squeezelite provider (#2589)
OzGav [Fri, 7 Nov 2025 16:16:21 +0000 (02:16 +1000)]
Typing fixes for the squeezelite provider (#2589)

11 months agofix macos librespot binary
Marcel van der Veldt [Fri, 7 Nov 2025 16:12:35 +0000 (17:12 +0100)]
fix macos librespot binary

11 months agoApple music improvements (#2607)
Marvin Schenkel [Fri, 7 Nov 2025 15:51:42 +0000 (16:51 +0100)]
Apple music improvements (#2607)

11 months agoRemove sonos workaround
Marcel van der Veldt [Fri, 7 Nov 2025 14:47:30 +0000 (15:47 +0100)]
Remove sonos workaround

11 months agoMore crossfade tweaks
Marcel van der Veldt [Fri, 7 Nov 2025 14:47:18 +0000 (15:47 +0100)]
More crossfade tweaks

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Fri, 7 Nov 2025 11:48:43 +0000 (12:48 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoAdd more debugging of stopped streams
Marcel van der Veldt [Fri, 7 Nov 2025 11:48:38 +0000 (12:48 +0100)]
Add more debugging of stopped streams

11 months agofix: abs: another in progress fix (#2605)
Fabian Munkes [Fri, 7 Nov 2025 10:47:01 +0000 (11:47 +0100)]
fix: abs: another in progress fix (#2605)

11 months agofix: MusicCast - non-existing player in zone handling (#2606)
Fabian Munkes [Fri, 7 Nov 2025 10:46:01 +0000 (11:46 +0100)]
fix: MusicCast - non-existing player in zone handling (#2606)

11 months agoyield to loop tweaks
Marcel van der Veldt [Fri, 7 Nov 2025 10:38:49 +0000 (11:38 +0100)]
yield to loop tweaks

11 months agoTyping fixes for the Webserver controller (#2586)
OzGav [Fri, 7 Nov 2025 08:06:25 +0000 (18:06 +1000)]
Typing fixes for the Webserver controller (#2586)

* Fix merge conflicts

* more mypy fixes

* Drafting post upstream changes

* fix run_handler

* PR review comment

* Merge conflict fixes

* Fix WebserverController __init__ signature to match CoreController

11 months agoEnsure Spotify Connect is passive
Marcel van der Veldt [Fri, 7 Nov 2025 00:54:55 +0000 (01:54 +0100)]
Ensure Spotify Connect is passive

11 months agoAdd some temporary debug info to stream controller
Marcel van der Veldt [Fri, 7 Nov 2025 00:49:11 +0000 (01:49 +0100)]
Add some temporary debug info to stream controller

11 months agoAdd Airport Receiver Plugin provider (#2604)
Marcel van der Veldt [Fri, 7 Nov 2025 00:04:14 +0000 (01:04 +0100)]
Add Airport Receiver Plugin provider (#2604)

11 months agoAdd logging to Spotify streaming
Marcel van der Veldt [Thu, 6 Nov 2025 21:19:58 +0000 (22:19 +0100)]
Add logging to Spotify streaming

11 months agoFix Spotify streaming (#2603)
Marcel van der Veldt [Thu, 6 Nov 2025 20:33:51 +0000 (21:33 +0100)]
Fix Spotify streaming (#2603)

11 months agoFix deadlock when trying to join a paused Airplay player to a group (#2602)
Marvin Schenkel [Thu, 6 Nov 2025 20:25:56 +0000 (21:25 +0100)]
Fix deadlock when trying to join a paused Airplay player to a group (#2602)

11 months agoAdd more error handling and logging to (different sample rate) crossfade actions
Marcel van der Veldt [Thu, 6 Nov 2025 13:06:40 +0000 (14:06 +0100)]
Add more error handling and logging to (different sample rate) crossfade actions

11 months agoFix: start stream as fast as possible
Marcel van der Veldt [Thu, 6 Nov 2025 11:44:27 +0000 (12:44 +0100)]
Fix: start stream as fast as possible

Dont wait until the buffer has the crossfade duration if we just started playback

11 months agotry other values for readrate
Marcel van der Veldt [Thu, 6 Nov 2025 03:06:21 +0000 (04:06 +0100)]
try other values for readrate

11 months agoSmall fix for source switching
Marcel van der Veldt [Thu, 6 Nov 2025 00:22:17 +0000 (01:22 +0100)]
Small fix for source switching

11 months agodebug log check_binary returncode and output
Brad Keifer [Wed, 5 Nov 2025 04:57:49 +0000 (15:57 +1100)]
debug log check_binary returncode and output

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Wed, 5 Nov 2025 20:37:38 +0000 (21:37 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoFix AirPlay late join sync
Marcel van der Veldt [Wed, 5 Nov 2025 20:37:34 +0000 (21:37 +0100)]
Fix AirPlay late join sync

11 months agoFix typo in active source property
Marcel van der Veldt [Wed, 5 Nov 2025 20:36:56 +0000 (21:36 +0100)]
Fix typo in active source property

11 months agoAllow buffered named pipe writing
Marcel van der Veldt [Wed, 5 Nov 2025 20:36:35 +0000 (21:36 +0100)]
Allow buffered named pipe writing

11 months agoChore(deps-dev): Bump ruff from 0.13.2 to 0.14.3 (#2591)
dependabot[bot] [Wed, 5 Nov 2025 15:27:44 +0000 (16:27 +0100)]
Chore(deps-dev): Bump ruff from 0.13.2 to 0.14.3 (#2591)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.2 to 0.14.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.13.2...0.14.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
11 months agoFix CoreController init signature to match model (#2594)
OzGav [Wed, 5 Nov 2025 15:27:17 +0000 (01:27 +1000)]
Fix CoreController init signature to match model (#2594)

11 months agoSpotify: Refactor search method to reduce complexity (#2601)
OzGav [Wed, 5 Nov 2025 15:26:20 +0000 (01:26 +1000)]
Spotify: Refactor search method to reduce complexity (#2601)

Refactor search method to reduce complexity by extracting helper methods

11 months agoDon't stop the music improvements (#2597)
Marvin Schenkel [Wed, 5 Nov 2025 15:23:33 +0000 (16:23 +0100)]
Don't stop the music improvements (#2597)

11 months agoFixed various issues with (plugin)sources (#2600)
Marcel van der Veldt [Wed, 5 Nov 2025 01:52:45 +0000 (02:52 +0100)]
Fixed various issues with (plugin)sources (#2600)