music-assistant-server

Branch:dev-lidarr-plugin

Commit Details

Updated Artwork handling on AriaCast Receiver (#3226)

* Add AriaCast Receiver plugin for Music Assistant

- Implemented AriaCast Receiver plugin to stream audio from Android devices to Music Assistant players.
- Added README.md with features, installation, configuration, and usage instructions.
- Created configuration classes for audio and server settings.
- Developed metadata handling for AriaCast streams.
- Implemented UDP discovery and WebSocket server for audio and metadata streaming.
- Added helper functions for local IP retrieval and artwork downloading.
- Included SVG icon for the plugin.
- Updated manifest.json with documentation link and requirements.

* Update README to simplify installation instructions

Removed installation instructions and updated configuration step for clarity.

* fixed mypy and pre-commit problems for my provider

* Delete music_assistant/providers/ariacast_receiver/README.md

* fixed pre-commit problems x2

* fixed icon

* Merge remote-tracking branch 'origin/dev' into dev

* Fixed Metadata and media controls after refactoring

* copilot notes addressing

* Addressing more copilot notes

* Apply suggestion from @Copilot

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Addressing last notes

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* fix: address code review feedback for ariacast_receiver

* fix(ariacast): add playback ready event for audio/player sync

- Add _playback_ready event to coordinate audio handler and player stream
- Audio handler waits up to 2s for player to become ready after starting playback
- get_audio_stream signals ready when it starts consuming frames
- Clear ready state on cleanup in _clear_active_player and stream end

This reduces audio frame loss during player setup by synchronizing
the audio receiver with the player's readiness to consume frames.

* Add multi-platform AriaCast receiver binaries (darwin/linux amd64/arm64/arm)

* renamed receiver name

* no redownload if same artwork

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/manifest.json

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* fix: use shared http_session for ariacast websocket connection

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* fix in previous copilot commit messing up the way pipe was read (no loop)

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* fixel last comments

* Change multi_instance setting to false

* Addressed latest comments after review

- Switched from pipe to stdout
- Dropped linux arm
- Moved _get_binary_path() to helpers.py

* Implemented stderr logging, robust WebSocket connection retries, improved artwork handling, and player switching control.

Updated Manifest

* Fix after PlayerController renamed all to all_players and players.get to get_player()

* Update music_assistant/providers/ariacast_receiver/__init__.py

Co-authored-by: Copilot <[email protected]>

* Update music_assistant/providers/ariacast_receiver/__init__.py

Added suggested track change comments

Co-authored-by: Copilot <[email protected]>

* Update documentation URL in manifest.json

* Added README for the binary of AriaCast Receiver

* updated receiver for artwork

* final fixes

* addressed copilot comment

---------

Co-authored-by: Copilot <[email protected]>
Forgejo

Author

Lorenzo Imbastari<[email protected]>
February 24, 2026 at 08:25 AM UTC

Committer

February 24, 2026 at 08:25 AM UTC
12additions
7deletions
5files changed

Parent commits

Changes

5 files
+12-7

Changed Files (5)

music_assistant/providers/ariacast_receiver/
music_assistant/providers/ariacast_receiver/bin/
music_assistant/providers/ariacast_receiver/__init__.py
+12-7
music_assistant/providers/ariacast_receiver/bin/ariacast_darwin_amd64
music_assistant/providers/ariacast_receiver/bin/ariacast_darwin_arm64
music_assistant/providers/ariacast_receiver/bin/ariacast_linux_amd64
music_assistant/providers/ariacast_receiver/bin/ariacast_linux_arm64