music-assistant-server

Branch:dev-lidarr-plugin

Commit Details

Fix the Apple TV progress bar disappearing after a track change (#6067)

# What does this implement/fix?

On an Apple TV the Now Playing progress bar could disappear after a
track change (until the tv app was exited and re-entered) and stay
frozen after a cold start. The AirPlay metadata pushes alternated
between two descriptions of the same track — the plain session media
text and the composed player-state text (title with version, album
fallbacks) — so the dedupe checksum flipped on every track change and
seek, and each flip sent the Apple TV a full now-playing rewrite. This
PR makes every push use the state-composed media whenever it describes
the playing queue item, and bundles cover art into the connect-time push
so a cold start rewrites the screen once instead of twice.

The companion binary fix (playback-rate publish at start, plus skipping
redundant metadata re-sends) is music-assistant/airplay-cli#73.

**Related issue (if applicable):**

- related issue https://github.com/music-assistant/support/issues/5279

## Types of changes

<!--
Tick exactly one box. CI (.github/workflows/pr-labels.yaml) derives
the label from the ticked box and applies it automatically; the
release-notes generator uses that same label to slot this change
into the next release notes.
-->

- [x] Bugfix (non-breaking change which fixes an issue) — `bugfix`
- [ ] New feature (non-breaking change which adds functionality) —
`new-feature`
- [ ] Enhancement to an existing feature — `enhancement`
- [ ] New music/player/metadata/plugin provider — `new-provider`
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected) — `breaking-change`
- [ ] Refactor (no behaviour change) — `refactor`
- [ ] Documentation only — `documentation`
- [ ] Maintenance / chore — `maintenance`
- [ ] CI / workflow change — `ci`
- [ ] Dependencies bump — `dependencies`

## Checklist

- [x] The code change is tested and works locally.
- [x] `pre-commit run --all-files` passes.
- [x] `pytest` passes, and tests have been added/updated under `tests/`
where applicable.
- [ ] For changes to shared models, the companion PR in
`music-assistant/models` is linked.
- [ ] For changes affecting the UI, the companion PR in
`music-assistant/frontend` is linked.
- [x] I have read and complied with the project's [AI
Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md)
for any AI-assisted contributions.
- [ ] I have [raised a PR against the documentation
repository](https://github.com/music-assistant/music-assistant.io/blob/main/CONTRIBUTING.md)
targeting the main or beta branch as appropriate.
Forgejo

Author

Marcel van der Veldt<[email protected]>
August 27, 2026 at 10:03 PM UTC

Committer

Marcel van der Veldt<[email protected]>
August 29, 2026 at 12:28 AM UTC
162additions
9deletions
2files changed

Parent commits

Changes

2 files
+162-9

Changed Files (2)

music_assistant/providers/airplay/
tests/providers/airplay/
music_assistant/providers/airplay/stream.py
+57-7
tests/providers/airplay/test_stream.py
+105-2