Skip to content

v3.3.2 — Region-Aware Apple Music & Playback Recovery

Choose a tag to compare

@mholzi mholzi released this 28 Apr 15:02

v3.3.2 — Region-Aware Apple Music & Playback Recovery

Apple Music tracks no longer silently fail for users on non-US storefronts. When playback breaks, you get a clear path forward instead of a frozen screen.

✨ What's New

Storefront-Aware Apple Music
Beatify's playlists historically stored a single Apple Music URI per song — typically a US-storefront track ID. For users on DE, GB, FR, ES, NL, IT storefronts, some subset of those tracks simply isn't in their catalog. This release ships a per-region URI map for 2,204 ISRC-resolved songs across all 22 playlists, and a runtime resolver that picks the right track ID based on hass.config.country. Region-locked songs get filtered out at playlist load — they never even reach MA. Closes #808.

Playback Recovery That Actually Recovers
When 3 songs in a row genuinely fail to play, the game now pauses with a recovery banner naming your provider and pointing at the exact fix — "Settings → Music Assistant → [Apple Music] → Reconnect, then click Resume." The Resume button restores the prior phase. The round-flow itself also got tougher: the timer reliably advances to REVEAL even when individual scoring throws (#816), the title-match fast-path returns within ~1s instead of timing out at 15s (#813), and Round 1 no longer freezes on cold MA start (#803). Worst-case round-advance lag dropped from ~20s to ~3s; typical case is under 1 second.

🔧 Under the Hood

Apple Music wizard selection honored end-to-end (#808 root cause) · TTS announcements actually play on Gemini/Cloud/etc. (#793) · Deezer routing fixed (#797) · stale-title detection rejects "speaker stuck on prior track" (#795) · speaker is media_stop'd on stale-title detect (#801) · MA URI cascade respects user's provider choice instead of walking all five (#805) · admin can reclaim their role from any phase (#790) · End game works from PAUSED phase · WS reconnect budget 5s → 20s for fresh-server starts (#814) · floating mini-timer always visible during round (#817) · Playlist Hub layout tighter, cards 17% bigger (#821) · wizard "Game language" defaults to browser language (#815, #822) · 3 untranslated home-view strings now in en/de/es/fr/nl · playlist-health-check skill enriched with a Mode 2 to refresh per-region URIs on demand · 442 unit tests · 18 release candidates over 4 days.

🙏 Contributors

@Levtos — Almost every fix in this release traces back to his patient stress-testing on AirPlay + Apple Music + MA. Surfaced #795, #801, #805, #808, #814, #815, #816, #817, #821, #822 with detailed logs, fast retest cycles, and clear repro steps every time.

@Ziigmund84 — Reported #797 (Deezer) and #803 (Round 1 cold-start lag) with logs pinpointing the exact failure modes.

@szszl0 — Reported #793 (Gemini TTS not playing) — the bug that affected every modern TTS entity.


22 playlists · 2,481 songs · 5 music platforms · 5 languages

Full Changelog · Report a Bug · Discussions