Beatify — Turn Your Home Assistant Into a Music Game Show

Hey everyone!

I want to share Beatify, a multiplayer music guessing game that runs entirely inside Home Assistant. A song plays on your speakers, everyone guesses the release year on their phone, and the closest guess wins. Think HITSTER — but digital, free, and powered by your own smart home.

The host sets up the game from the HA admin panel, players join by scanning a QR code, and the TV dashboard shows scores, streaks, and highlights in real time. No app installs needed — it’s all browser-based. Install via HACS as a custom repository.

Beatify just hit v2.8.0 and has grown a lot since the first release, so here’s a rundown of what it can do today.


5 Streaming Services

Beatify works with Spotify, Apple Music, YouTube Music, Tidal, and Deezer. Pick whatever your household already uses — no extra subscriptions needed. Playback goes through your existing media players (Sonos, Chromecast, Music Assistant, etc.), so setup is minimal.


Game Modes That Keep It Interesting

Steal Power-Up
Build a streak of 3 correct guesses and you unlock the ability to steal another player’s answer. You don’t know what they guessed — just that they submitted. High risk, high reward.

Intro Mode
Random rounds only play a short 15-second intro snippet, then the music stops and you guess in silence. A splash screen warns everyone before it kicks in, and the host confirms with a button press. The first three rounds are always normal so everyone can settle in.

Movie Quiz Bonus
Playing the movie soundtracks playlist? After your year guess, pick the correct film from three options for bonus points. Fast answers score more — up to +30 points if you nail it within 3 seconds.

Betting System
Feeling confident? Double down on your guess for bonus points — or lose them if you’re wrong.


The Party Experience

Highlights Reel
Every game ends with an auto-generated Top 8 moments — exact year matches, killer streaks, bold bets, speed records, near-misses, comebacks. All captured, all celebrated.

End-Game Superlatives
Awards like Speed Demon, Hot Streak, Risk Taker, Comeback King, Clutch Player, Film Buff, and Intro Master mean everyone gets a moment, not just the winner.

Song Difficulty Rating
Each song gets a star rating based on how players have historically performed. Finally know whether that obscure 1967 B-side was actually guessable.

Share Your Results
A Wordle-style emoji grid of your round results. On mobile the native share sheet opens, on desktop it downloads as a card image.

Quick Rematch
One tap from the end screen and everyone’s back in the lobby with the same settings. No more re-scanning QR codes.


23 Playlists, 2,453 Songs

The library spans decades and genres: 80s Hits, 90s Hits, 2000s Pop Anthems, 60s Classics, Eurodance 90s, Disco & Funk Classics, Motown & Soul Classics, Greatest Metal Songs, 90s & 2000s Hip Hop Bangers, British Invasion & Britpop, Pure Pop Punk, Yacht Rock, Power Ballads, Summer Party Anthems, Eurovision Winners, One-Hit Wonders, 100 Greatest Movie Themes, Schlager Classics, Cologne Carnival, 100% en Español, Fiesta Latina 90s, Top 100 Dutch Classics, and Greatest Hits of All Time.

Every track includes chart positions, certifications, alternative artist suggestions, and fun facts in 4 languages. A tag-based filter in the Admin UI lets you narrow playlists by decade, genre, region, or mood.


PWA & Fullscreen Launcher

Beatify installs as a Progressive Web App — tap the install prompt and it lives on your homescreen like a native app. The HA sidebar button opens it in a clean fullscreen tab, no iframe or sidebar distractions.


4 Languages

The full UI, all playlist descriptions, fun facts, and superlatives are available in English, German, Spanish, and French.


I’d love to hear what you think! Feature requests and bug reports welcome on GitHub.

Your speakers, your music service, your party!

I'm following your project with great interest since some time. Love it!

Now that you have added AI Playlist creation help, could you elaborate on how to use it better? When I try to use the prompts in Claude, it can not see more than 32 songs per Playlist, and chatgpt won't work at all and gives some weird error reason. What extra steps can I take to make the Ai-creation work better?

Hi @mauritsivs — sorry for the long silence, that one is on me.

Your 32-song wall is not a Beatify limit and not a Claude bug: it is the assistant’s maximum reply length. The prompt asks for 15 fields per song, and two of them are expensive — seven regional Apple Music IDs and the fun fact in five languages. One finished song is about 260 tokens, so 32 songs is roughly 8,400 tokens, and many assistants cap a single reply right around 8,000. That is why the wall sits at 30–32 and not somewhere random.

ChatGPT’s “weird error” is almost always the same thing wearing a different hat. It tends to abort with a message that says nothing about length.

What actually works: split the playlist into batches of about 30 songs and run the prompt once per batch. Then merge the songs arrays into one file, keeping the top-level fields (name, version, tags, language, …) from the first batch only. If your assistant offers a “continue” button, restart with a clean batch instead — continuations tend to re-emit or skip a song at the seam, and a duplicate or a hole is harder to spot later than a clean batch boundary.

Two more things that trip people up: assistants like to wrap the JSON in ```json fences, and some chat renderers turn URLs into <https://…>. Beatify strips both, so hit Validate first before assuming the output is broken.

There is a full FAQ with all of this: beatify/docs/llm-playlist-generator.md at 8c3fe998eddc2d2ea081dc88ed87a7bcd419010e · mholzi/beatify · GitHub

And a caveat worth knowing: the Apple Music IDs are the weakest part of the output. A model that cannot query the store will produce well-formed IDs that point at the wrong recording. If you cannot verify them, leave them and add (LLM-generated identifiers — verify with the Beatify URI resolver) to the playlist description — the Tidal and Deezer backfills fill in the gaps later anyway.