Turn any gathering into an unforgettable music trivia experience. Guests scan, songs play, everyone competes. It's that simple.
Get Started โข Supported Speakers โข See It In Action
Beatify is an open-source music quiz game for Home Assistant โ a multiplayer music trivia party game that turns your smart speakers into a game show.
A song plays through your Sonos, Alexa, or Music Assistant speakers. Everyone races to guess the release year. Points fly. Streaks build. Champions emerge.
No apps to download. No accounts to create. Just scan a QR code and play.
Zero Friction Entry โ Guests scan a QR code. That's it. No apps. No accounts. No WiFi password drama. 10 seconds from scan to playing.
Uses Your Existing Smart Speakers โ Works with Music Assistant, Sonos, and Alexa speakers you already have. See Supported Speakers for details.
Your Music, Your Vibe โ Spotify, Apple Music, YouTube Music, Tidal, or Deezer playlists. Curated song packs included. Create your own.
Runs Locally โ No cloud, no Beatify account, no data leaves your network. Free and open-source. (You bring your own music-streaming subscription โ see Requirements.)
Everyone Competes โ Points, streaks, power-ups, and a dramatic finale with podium and stats. Real competition, real laughs.
Via HACS (Recommended) โ One click to add the repository, then install:
Or manually:
HACS โ โฎ Menu โ Custom Repositories
โ URL: https://github.com/mholzi/beatify
โ Category: Integration
โ Install "Beatify"
โ Restart Home Assistant
Manual
cd /config/custom_components
git clone https://github.com/mholzi/beatify.git beatify
# Restart Home AssistantOr manually:
Settings โ Devices & Services โ Add Integration โ "Beatify"
That's it. Beatify is now installed.
After installation, access Beatify to start a game:
Beatify automatically adds itself to your Home Assistant sidebar.
- Open Home Assistant
- Look for Beatify in the left sidebar
- Click to open the launcher
- Hit "Open Beatify" โ the game opens in a fullscreen new tab (no HA chrome)
Tip: If you don't see Beatify in the sidebar, restart Home Assistant.
http://YOUR-HA-IP:8123/beatify/admin
- Open the HA Companion app
- Tap the menu (โฐ) or swipe from left
- Select Beatify from the sidebar
First time? Beatify drops you into a 5-step first-run wizard that walks you through the whole setup:
- Speakers โ Only supported speakers appear
- Music service โ Spotify, Apple Music, YouTube Music, Tidal, or Deezer (filtered by speaker)
- Playlist โ Pick one or more curated packs
- Game mode โ Difficulty, round timer, announcement language, Artist Challenge / Intro Mode / Closest Wins toggles
- Lights & Voice (optional) โ Party Lights mode + WLED presets, TTS announcements (only shown if Home Assistant has the entities)
After finishing, you land on the "Ready to host" screen: big Beatify wordmark, glowing QR hero card, and a Start game CTA. Share the QR code with guests โ they appear as colored tiles as they scan. Hit Start game when everyone's in.
Returning host? You skip the wizard and land directly on "Ready to host" with your previous picks preselected. Tap Edit setup any time to change speaker, service, playlists, or game mode.
Learn the Game in 20 Seconds Players who scan the QR code drop into a swipeable 4-card tour that teaches the core mechanics in order: guess the year, triple-or-nothing bet, steal an answer, guess the artist. Skip/Next always visible, auto-advances after 4 seconds per card. By the time the host hits Start, everyone knows what to do.
The Rush A song starts playing. The clock is ticking. You know this song... but was it '85 or '87?
The Strategy Answer fast for bonus points. Hit a streak for multipliers. Feeling confident? Bet triple-or-nothing.
The Reveal The year drops. The room erupts. Someone nailed it. Someone was way off. Everyone's laughing.
Gold confetti bursts for exact guesses. Chart positions and fun facts appear. You just learned that song spent 22 weeks at #1.
Full Control Skip tracks. Adjust volume. Pause the game. End early if needed. All from your phone.
Customize the Challenge Set round timers (15s/30s/45s) and difficulty levels (Easy/Normal/Hard) to match your group.
Print the QR Physical QR code printout for the coffee table. Guests join themselves.
Play Along Join as a player with admin controls. Compete and manage simultaneously.
Choose your difficultyโeach changes how points are awarded:
| Difficulty | Exact | Close | Near | The Vibe |
|---|---|---|---|---|
| ๐ Easy | 10 pts | ยฑ7 yrs = 5 pts | ยฑ10 yrs = 1 pt | Forgiving |
| ๐ฏ Normal | 10 pts | ยฑ3 yrs = 5 pts | ยฑ5 yrs = 1 pt | Balanced |
| ๐ฅ Hard | 10 pts | ยฑ2 yrs = 3 pts | โ | Punishing |
Submit instantly: 2x multiplier Submit at deadline: 1x multiplier Linear scale in between. Hesitation costs points.
- 3 in a row: +20 bonus points
- 5 in a row: +50 bonus points
- 10 in a row: +100 bonus points
- 15 in a row: +150 bonus points
- 20 in a row: +250 bonus points
- 25 in a row: +400 bonus points
Miss one? Streak resets. The pressure is real.
Feeling confident? Toggle the bet before submitting. Nail the exact year: triple your points. Miss it โ even by a year: score nothing that round.
Know your artists? Enable this mode in game setup. After the song, it's a race โ the first player to guess the artist correctly earns +5 bonus points. Alternate names acceptedโ"Prince" or "The Artist" both count.
For soundtrack songs. Guess the movie a song is from for tiered bonus points: 5 / 3 / 1 by submission speed. Enable in game setup; only triggers on songs with movie metadata.
Build a 3-answer streak to unlock Steal. Once unlocked, tap a rival mid-round to copy their answer when they submit. One steal per game โ spend it wisely.
Fireworks explode for the winner. Full podium with medals. Personal stats. Best streaks. Bets won.
See how your game compared to all-time averages. Set a new record? Rainbow confetti and a "NEW RECORD!" badge.
Everything you need to demand a rematch.
Playlists are displayed on the main Beatify admin screen:
- Open Beatify (see above)
- Scroll to the Playlists section
- Check the boxes next to playlists you want to use in your game
- Selected playlists show their song count
Beatify comes with 3,566 songs across 32 curated playlists:
- ๐ฌ 100 Greatest Movie Themes โ 162 iconic film soundtracks
- ๐ช๐ธ 100% en Espaรฑol โ 127 Latin & Spanish classics
- โ๏ธ 100 Summer Anthems โ 112 feel-good tracks from 1957-2020
- ๐ต 2000s Pop Anthems โ 182 essential pop hits from the 2000s
- ๐ต 2010s & 2020s Hits โ 71 chart hits closing the modern-decade gap
- ๐ธ 60s Classics โ 64 tracks from the golden age of rock & roll
- ๐น 80s Hits โ 239 classic hits from the decade of synths and MTV
- ๐ค 90s & 2000s Hip-Hop Bangers โ 40 tracks from 2Pac, Eminem, JAY-Z, Nas, Dr. Dre and more
- ๐ต 90s Hits โ 115 essential tracks from the decade
- ๐ Anime Openings โ 101 opening themes from Cowboy Bebop to Chainsaw Man
- ๐บ Ballermann Party Hits โ 189 Mallorca and Schlager party tracks
- ๐ฆ Best of Giraffenaffen โ 26 German children's songs
- ๐ฌ๐ง British Invasion & Britpop โ 100 tracks from The Beatles to Blur
- ๐ญ Cologne Carnival โ 290 German carnival favorites
- ๐ฉ๐ช Deutschpop Klassiker โ 106 German pop classics, incl. the 90s / NDW canon
- ๐บ Disco & Funk Classics โ 76 essential disco and funk tracks from the 70s and 80s
- ๐ธ Divorced Dad Rock โ 107 post-grunge, nu-metal and 2000s radio-rock tracks
- ๐ง EDM Anthems โ 126 festival and mainstream EDM tracks (2009โ2024)
- ๐ฅ Eurodance 90s โ 100 party songs from the eurodance era
- ๐ Eurovision Winners (1956-2025) โ 72 winning songs
- ๐ Fiesta Latina 90s โ 50 Latin party anthems from Shakira, Ricky Martin, Manรก
- ๐ง Gen Z Anthems โ 30 tracks from TikTok to Good Luck, Babe! spanning 2009โ2024
- ๐ฏ Greatest Hits of All Time โ 182 chart-toppers across four decades
- ๐ค Greatest Metal Songs โ 52 legendary tracks across all major metal subgenres
- ๐ Harder Styles โ 190 hardstyle, hardcore and raw tracks
- ๐ต Motown & Soul Classics โ 100 iconic soul tracks from Diana Ross, Marvin Gaye, The Temptations
- ๐ค One-Hit Wonders โ 98 flash-in-the-pan classics
- ๐ Power Ballads โ 99 epic rock ballads from the 80s and 90s
- ๐ธ Pure Pop Punk โ 100 essential pop-punk tracks from the 2000s
- ๐ฉ๐ช Schlager Classics โ 60 German schlager classics
- ๐ณ๐ฑ Top 100 Dutch Classics โ 100 Nederlandstalig tracks
- โต Yacht Rock โ 100 smooth West Coast classics from the 70s and 80s
Custom playlists are stored in: config/beatify/playlists/
See Creating Playlists for the JSON format.
Beatify uses simple JSON playlists stored in config/beatify/playlists/.
{
"name": "80s Classics",
"songs": [
{
"year": 1983,
"uri": "spotify:track:4cOdK2wGLETKBW3PvgPWqT",
"fun_fact": "Spent 8 weeks at #1"
},
{
"year": 1985,
"uri": "spotify:track:2374M0fQpWi3dLnB54qaLX",
"fun_fact": "Written in just 10 minutes"
}
]
}Playlist Tips:
- Mix decades for variety
- Include recognizable songs (obscure = frustrating)
- Add fun facts for the reveal screen
- 10-20 songs per playlist works great
Sample playlists are included to get you started immediately.
Beatify speaks your guests' language.
- English โ Full support
- Deutsch โ Vollstรคndige Unterstรผtzung
- Espaรฑol โ Soporte completo
- Franรงais โ Support complet
- Nederlands โ Volledige ondersteuning
Select during game setup. All players see the chosen language. Fun facts and awards are also translated!
Beatify works with specific Home Assistant integrations that support music playback:
| Integration | Supported | Spotify | Apple Music | YouTube Music | Tidal | Deezer | How It Works |
|---|---|---|---|---|---|---|---|
| Music Assistant | โ Yes | โ | โ | โ | โ | โ | Direct URI playback to any connected speaker |
| Sonos | โ Yes | โ | โ | โ | โ | โ | Direct Spotify playback via Sonos integration |
| Alexa Media Player | โ Yes | โ | โ | โ | โ | โ | Voice search playback ("Play [song] on Spotify") |
| Cast (Chromecast/Nest/Google TV) | โ No | โ | โ | โ | โ | โ | Use Music Assistant instead |
| HomePod | โ No | โ | โ | โ | โ | โ | Use Music Assistant instead |
Cast devices (Chromecast, Nest Audio, Nest Hub, Google TV) and HomePod don't support direct music playback from Home Assistant. They require a streaming source.
The solution: Install Music Assistant and add your Cast/HomePod devices there. Music Assistant acts as the streaming source and works perfectly with Beatify.
In Beatify's admin screen:
- โ Supported players show with a platform badge (Music Assistant, Sonos, Alexa)
- โ Unsupported players (Cast, etc.) are hidden with a hint to use Music Assistant
Beatify runs entirely within Home Assistant's HTTP server โ no extra ports or services needed.
| Protocol | Port | Purpose |
|---|---|---|
| HTTP/HTTPS | 8123 (default) | Game UI, API, static assets |
| WebSocket | 8123 (same port) | Real-time game communication |
If guests are on a separate WiFi/VLAN, add a single firewall rule:
Guest VLAN โ HA IP : TCP 8123
That's it. No mDNS, no broadcast, no additional ports.
Tips:
- The QR code uses the HA URL as seen by the admin's browser โ make sure that URL is reachable from the guest network
- If using a reverse proxy (nginx/Caddy), ensure WebSocket upgrades are allowed for
/beatify/ws(standard HA proxy configs already handle this) - If using HTTPS with a self-signed cert, guests may need to accept it once
โ ๏ธ Fritzbox users: The Fritzbox guest WiFi fully isolates clients from your home network โ this cannot be overridden with firewall rules. Players must join the main WiFi, or use a separate VLAN-capable router/access point to create a guest network with selective LAN access.
- Home Assistant 2024.1+
- Supported media player (see Supported Speakers above)
- A music service โ Spotify, Apple Music, Tidal or Deezer need a paid plan (on-demand single-track playback; free/ad-supported tiers like Spotify Free don't allow it). YouTube Music is the exception โ it works with a free Google account (with ads).
- HACS (recommended) or manual installation
- Native Home Assistant integration
- WebSocket-based real-time sync
- Local processingโno cloud required
- Session persistence for reconnection
- Up to 20+ concurrent players
Home Assistant
โโโ Beatify Integration
โโโ Game State Manager
โโโ WebSocket Handler
โโโ Media Player Service
โโโ Web UI (Admin + Player)
Beatify is built with substantial help from AI coding tools (Claude Code). That's not a confession โ it's a feature. Here's what that looks like in practice:
- Test coverage: 19 Python test files, JS tests via Vitest, integration tests for the WebSocket protocol โ every regression gets a test before the fix lands.
- Architecture is documented in code: see
custom_components/beatify/services/media_player.pylines 111โ128 โ the comment block walks through why the provider-URI dispatch was rewritten, names the specific user (Levtos) whose bug report drove the change, and references the original GitHub issues (#768, #805, #808). - 800+ closed issues with traceable root causes, not just "fixed". URI-validation, playback-recovery, and import-flow security got dedicated sweeps in v3.3.x.
- Real users, not vanity metrics: 174 stars, 7 forks (forks = devs reading the code), 289 active HACS installs, top 14% HACS rank, MIT-licensed.
The AI is the typist. The decisions, the architecture, the bug triage, and the "ship it" call are all human. If something looks off in the code, open an issue โ that's how the documented bug-fix sweeps started in the first place.
How many players can join?
Tested with 20+ players. Your WiFi is the only real constraint.
Can someone join mid-game?
Yes! Late joiners inherit the average score so they can compete fairly.
What if the host disconnects?
Game pauses automatically. Reconnect and continue exactly where you left off.
What music services work?
Spotify, Apple Music, YouTube Music, Tidal, and Deezer. Support depends on your speaker platformโsee the Supported Speakers table for details.
Do I need a paid music subscription? Does Beatify work with free Spotify?
For most services, yes. Beatify plays a specific song on demand each round, and on Spotify, Apple Music, Tidal and Deezer that requires a paid planโSpotify Free does not work (its free tier blocks on-demand single-track playback via Music Assistant / Spotify Connect). This is a streaming-service limitation, not a Beatify one. The exception is YouTube Music, which works with a free Google account (you'll just hear the occasional ad). So if you don't want a paid subscription, pick YouTube Music in the setup wizard. The curated playlists carry URIs for all five services.
Why don't my Chromecast/Nest speakers appear?
Cast devices (Chromecast, Nest Audio, Nest Hub, Google TV) don't support direct music playback from Home Assistant. Install Music Assistant and add your Cast devices thereโthey'll then appear in Beatify and work perfectly.
Do players need to be on the same network?
Yes, players need to access your Home Assistant instance. Works great on home WiFi.
Can I customize the theme?
The neon dark theme is built-in and looks stunning. Custom theming is on the roadmap.
- The voice roadmap is complete โ TTS Phases 3 & 4 add the last ten announcements (bets, joins, podium, rematch, intro, steals); the per-round reveal is now narrated as one flowing sentence instead of a stutter of clips. 23 spoken moments in total
- Verbosity presets โ pick Minimal, Standard or Full and all 23 toggles are set for you; fine-tune any of them and it switches to Custom. Available in both the admin TTS panel and the setup wizard
- Party-night reliability pass โ self-healing stuck rounds (a client watchdog and heartbeat recover frozen rounds and half-open connections), reload-proof host controls, an actionable banner when playback can't start, album art for remote QR-code players, and a TV dashboard that scales to any viewport
- Two new playlists โ Divorced Dad Rock (107 tracks) and EDM Anthems (126 tracks)
- Library-wide year audit โ every song checked against MusicBrainz first-release dates; 274 wrong release years corrected
- 32 playlists, 3,566 songs, 5 music platforms, 5 languages
- TTS Player Achievements (Phase 2) โ six voice announcements driven by player results: exact-year guess, Closest-Wins winner, streak milestone, streak broken, new leader, and a tie at the top. Each an independent toggle
- Five new playlists โ Anime Openings (101), Ballermann Party Hits (189), Harder Styles (150), Best of Giraffenaffen (26) and 2010s & 2020s Hits (128), closing the decade gap to today
- 98 songs backfilled into the existing decade and greatest-hits playlists
- Admin Stop button always responds โ visible feedback if the connection drops mid-tap; the fix hardens every admin button. Plus: a reconnect race that could briefly leak a fun fact on the admin dashboard is closed
- 30 playlists, 3,273 songs, 5 music platforms, 5 languages
- Round-show audio (TTS Phase 1) โ Five new voice announcements wired into the round flow: round start, optional 3-2-1 countdown, time's up, correct-answer reveal, and a "nobody got it" line. Each is a separate toggle, works with any HA TTS engine
- Album cover blurs during PLAYING, crisp at REVEAL โ Cover artwork sometimes carries readable titles, years or artist names โ now blurred during the round so it can't leak the answer, crisp the moment REVEAL hits
- Year ยฑ5 buttons next to ยฑ1, and both finally count properly on iOS โ Decade-jump buttons added next to the existing ยฑ1, and the mobile quirk where each tap stepped 2/4/by-the-round-number is gone โ now exactly 1 per tap, every time. Long-press repeat still works after 500ms
- German launcher, lobby and error toasts โ fully translated โ Launcher subtitle, wizard summary labels (Speaker โ Lautsprecher etc.) and the "End current game first" alert all leaked through in English. Plugged. ES/FR/NL got the same treatment
- 247 broken music URIs repaired โ Yacht-rock playlist (190 across all three providers โ Apple Music, Spotify, YouTube Music) plus Pure-Pop-Punk (52 cyclically scrambled), plus 5 maintenance fixes across one-hit-wonders, greatest-metal-songs, top-songs-der-60er
- Quality-of-life polish โ Playlist detail-sheet Add button respects iPhone home-indicator safe-area, admin lobby no longer drags freely on iOS, reveal cover falls back to no-artwork placeholder when MA artwork URL fails, points breakdown finally sums to total when a Double-or-Nothing bet is won
- 24 playlists, 2,481 songs, 5 music platforms, 5 languages
- First-Run Wizard โ Five-step guided setup for new admins: Speakers โ Music service โ Playlist โ Game mode โ Lights/Voice. After finishing, every chip on the admin dashboard is pre-selected โ first thing you see is the Start Game button
- Admin Home View โ Branded "Ready to host" landing screen with Beatify wordmark, glowing QR hero card, and Jackbox-style player tiles that appear as guests join (host in pink with ๐, guests cycling cyan โ green โ orange in join order)
- Player Onboarding Tour โ Players who scan the QR drop into a swipeable 4-card tour that teaches year guess โ bet โ steal โ artist challenge before the lobby. Host sees LEARNING players as dashed tiles with a cyan TOUR badge plus a confirm modal before starting
- Gameplay Redesigned Arcade-Style โ 128px year number as the hero, neon timer circle that flips red and pulses at โค10s, 3D tile buttons for artist/movie challenges, Submit morphs into a "Waiting for others" ghost state after lock-in
- Round Reveal as a Duel โ Your guess ร gap-count ร correct year side-by-side. Full points breakdown and round analytics moved into tappable bottom-sheet popups
- Vinyl Share Card โ End-of-game share card rebuilt as a vinyl-record design (navy base, pink/cyan radial glows, pinkโcyan gradient label with your score, optional ๐ WINNER badge), previewed inline on the end screen
- Browser cache overhaul (no-cache HTML + conditional GETs), 90+ broken streaming URIs fixed, 14 game-logic fixes, Spotify playlist import removed (Nov 2024 API deprecation), admin session handoff rewrite
- 24 playlists, 2,481 songs, 5 music platforms, 5 languages
- Admin Dashboard Overhaul โ Rebuilt spectator view mirrors the player layout: large album cover, countdown timer, player-dot tracker with bet/steal badges, leaderboard with streaks and rank changes, and podium end screen
- Admin Joins as Player โ Full Experience โ Host redirect to the player page with all 18 game features plus a fixed admin control bar. No more degraded mini-UI
- Wake Lock โ Screen stays awake during gameplay on mobile devices
- WebSocket Reconnect on Tab Return โ Auto-reconnects when switching apps or returning from lock screen, with clear error messaging on connection loss
- Intro Round for Non-Playing Admin โ Admins who don't join as player can now confirm intro rounds
- 16 bug fixes, 6 security hardening fixes, 12 performance fixes, 15 broken streaming URIs replaced
- 24 playlists, 2,482 songs, 5 music platforms, 5 languages
- Dynamic Light Effects & WLED Support โ Lights pulse during playback and react to game events (gold flash for exact matches, green for off-by-one, orange for streaks). Three modes: Static, Dynamic (new default), and WLED with configurable presets
- Balanced Playlist Selection โ Multiple playlists now get equal weight instead of larger playlists dominating. Cross-playlist duplicates auto-deduplicated
- +10s Seek Forward โ New admin button to skip past silent intros
- Admin Spectator Mode โ Watch and control the game without being a player
- Closest Wins Mode โ Only the player with the closest guess scores each round
- HA Sensor Entities โ Live game state exposed as Home Assistant entities for automations and dashboards
- TTS Announcements โ Voice feedback for game start and winner reveal via any HA TTS entity
- Gen Z Anthems playlist โ 30 songs from TikTok to Good Luck, Babe! (2009โ2024)
- Security hardening, 20+ bug fixes, 268 broken streaming URIs replaced
- 24 playlists, 2,482 songs, 5 music platforms, 5 languages
- Party Lights โ Automated light control during games with intensity presets (Subtle/Medium/Party), admin light picker, and preview button. Subtle mode scales relative to your pre-game brightness: +0% lobby, +20% playing, +40% reveal and end
- Dutch language support โ Fifth language joins EN, DE, FR, ES. Full UI translations and Dutch fun facts and awards across all playlists
- 12 bugs fixed โ 5 high-severity and 7 medium-severity findings from systematic code review, including admin claim guard, null song scoring, intro timer restart, MA playback timeout, and Dutch game state serialization
- 38% smaller assets โ All CSS/JS minified and bundled via esbuild, 590KB โ 364KB
- 5 architecture refactors โ ChallengeManager, PowerUpManager, PlayerRegistry, shared state serializer, WebSocket public API
- 39 dead streaming URIs replaced across greatest-hits-of-all-time and motown-soul-classics
- 23 playlists, 2,453 songs, 5 music platforms, 5 languages
- Deezer Support โ Fifth streaming service joins Spotify, YouTube Music, Apple Music and Tidal. 2,000+ Deezer URIs across 19 playlists
- Smarter Intro Mode โ Intro rounds delayed until round 4, admin-confirmed splash screen explains rules before music plays, duration increased to 15 seconds
- Music Assistant + YouTube Music Fix โ Non-blocking playback with state polling for reliable MA+YTMusic support. By @Scribblerman
- 90s & 2000s Hip Hop Bangers โ 40 tracks (1990โ2008) from 2Pac, Eminem, JAY-Z, Nas, Missy Elliott, Dr. Dre and more
- Refactored player.js into ES modules, split scoring god functions, added unit tests, rate limiting, XSS protection, 276 broken URIs fixed
- 23 playlists, 2,453 songs, 5 music platforms, 4 languages
- PWA: Add to Homescreen โ Beatify installs as a Progressive Web App via an install prompt on the admin screen or the explicit install button in the header
- Share Your Results โ End screen includes a Wordle-style emoji grid of your round results. Native share sheet on mobile, card download on desktop
- Revanche (Rematch) โ Players can challenge for a rematch directly from the end screen โ no QR re-scan needed
- Greatest Metal Songs playlist โ 52 legendary tracks across all major metal subgenres (1970โ2020), fully enriched with certifications, awards and streaming links
- Dutch Top 100 enriched โ Top 100 Allertijden Nederlandstalig now has fun facts in 4 languages and alternative artist suggestions for every track
- 22 playlists, 2,415 songs, 4 music platforms, 4 languages
- Game Highlights Reel โ After every game, Beatify auto-generates a highlight reel of the Top 8 moments: exact year matches, best streaks, speed records, comebacks, bet wins, heartbreakers, and photo finishes
- 21 playlists, 2,363 songs, 4 music platforms, 4 languages
- Intro Mode โ Random rounds play only 10 seconds of the song, then silence. Fullscreen โก splash overlay, guaranteed every 4 rounds
- Quick Rematch โ Hit Rematch on the scoreboard to restart with the same settings and players
- Fullscreen Launcher โ Sidebar opens a launcher that pops the game into a clean new tab (no HA chrome)
- Comeback King superlative โ Awarded to the player who improves the most during a game
- Film Buff superlative โ Awarded for the most movie quiz bonus points
- Faster round transitions โ Preflight caching + timeout-bounded playback cuts dead time between rounds
- Apple Music & Tidal fix โ URIs correctly converted for Music Assistant playback
- HA 2026.2 compatible โ Eliminated blocking I/O warnings
- 3 new/expanded playlists โ 100% en Espaรฑol (127 songs), 80s Hits expanded (208 songs), Top 100 Dutch Classics (100 songs)
- All playlist names standardized to English โ Consistent naming across all 21 playlists
- 21 playlists, 2,363 songs, 4 music platforms, 4 languages
- Tidal support โ Fourth streaming provider (Spotify, Apple Music, YouTube Music, Tidal)
- Movie Quiz Bonus โ Guess the movie a soundtrack is from for tiered bonus points (5/3/1)
- French language โ Fourth UI language (EN, DE, ES, FR)
- Film Buff superlative โ New end-game award for movie quiz performance
- 2 new playlists โ British Invasion & Britpop (100 songs), Summer Party Anthems (112 songs)
- All playlists enriched with Tidal URIs
- 3 new playlists โ Motown & Soul Classics (100 songs), Disco & Funk Classics (76 songs), Fiesta Latina 90s (50 songs)
- Data quality pass โ Added artist/title to Movies & Schlager (222 tracks), normalized Karneval chart data
- Streaming URI enrichment โ 82 new Apple Music and YouTube Music URIs across Movies and Power Ballads
- Enrichment tooling โ New
enrich_playlists.pyscript for automated cross-platform URI lookup
- Tag-based filtering โ Filter playlists by decade, genre, region, and mood in the Admin UI
- Pure Pop Punk playlist โ 100 essential pop-punk tracks from the 2000s
- Yacht Rock playlist โ 100 smooth West Coast classics
- Expanded 80er Hits โ Grew from 100 to 125 tracks
- New 90er Hits โ 32 essential tracks from the decade
- YouTube Music support โ Use YouTube Music as your music provider alongside Spotify and Apple Music
- Custom playlist requests โ Users can request Spotify playlists directly from the Beatify interface
- 80er Hits playlist โ 100 classic hits from Michael Jackson, Prince, Madonna, A-ha, and more
- Multi-platform speaker support โ Automatic detection for Music Assistant, Sonos, and Alexa
- Dynamic music service selector โ Shows only compatible services for your selected speaker
- Cast device guidance โ Helpful hints for Chromecast/Nest users to install Music Assistant
- Live emoji reactions โ Send ๐ฅ ๐ ๐ฎ ๐ ๐ reactions during reveals that float across all screens
- Artist Challenge mode โ Guess the artist for +5 bonus points, with alternate name support
- Early reveal โ Round ends instantly when all players have guessed
- Complete UI redesign โ Collapsible admin sections, unified lobbies, compact reveal view
- One-Hit Wonders playlist โ 98 songs celebrating flash-in-the-pan hits
- Kรถlner Karneval playlist โ 291 songs of Cologne carnival tradition
- Admin analytics dashboard โ Track games played, popular playlists, player stats, and error rates
- Mobile performance boost โ 53% smaller bundles, lazy loading, adaptive animations
- Music Assistant support โ Native playback service for reliable MA integration
- Styled confirmation dialogs โ No more ugly browser popups
- Game settings display โ See rounds and difficulty in the player lobby
- Spanish language support โ Full UI and playlist content in Spanish
- German playlist content โ Fun facts and awards translated for all 370 songs
- TV Dashboard improvements โ Easier to find, shows round stats and fun facts
- Invite late joiners โ QR popup during gameplay for latecomers
- Admin lobby makeover โ Dark theme, player list, real-time updates
- Alexa fix โ Spotify playback now works on Alexa devices
- Steal power-up โ Build a 3-streak, then copy another player's answer
- End-game superlatives โ Awards for Speed Demon, Hot Streak, Risk Taker, Clutch Player, and Close Calls
- Song difficulty rating โ 1-4 star ratings based on historical player accuracy
- Reliability improvements โ Pre-flight speaker checks, smart retry logic, graceful error handling
- Rich song information โ Chart history, certifications, awards, and fun facts on every reveal
- Game statistics โ Track performance across games with all-time averages and "NEW RECORD!" moments
- Confetti celebrations โ Gold bursts for exact guesses, fireworks for winners, epic shows for perfect games
- Mystery mode โ Album covers blur during guessing (no more peeking!)
- New playlist โ Eurovision Winners (1956-2025) with 72 winning songs
- Difficulty presets โ Easy, Normal, or Hard scoring modes
- Customizable round timer โ Quick (15s), Normal (30s), or Relaxed (45s)
- Round analytics โ See guess distribution, accuracy stats, and speed champions
No speakers appearing in Beatify?
- Only Music Assistant, Sonos, and Alexa Media Player speakers are supported
- Cast devices (Chromecast, Nest, Google TV) require Music Assistant
- HomePod requires Music Assistant
- See Supported Speakers for the full compatibility table
Players can't connect?
- Verify Home Assistant is accessible on your network
- Try IP address instead of hostname
- Ensure port 8123 is reachable
- Guests on a separate WiFi/VLAN? See Guest WiFi / Network Setup โ just open TCP 8123
Music won't play?
- Check media player is online in Home Assistant
- Verify playlist URIs are valid for your music service
- For Sonos: Only Spotify is supported (not Apple Music)
- For Alexa: Ensure your music service is linked in the Alexa app
- Check Home Assistant logs for errors
QR code won't scan?
- Improve lighting on the display
- Try the "Print QR" feature for a physical copy
- Use a dedicated QR scanner app
Have a question? Check our Discussions Q&A for answers to common questions about installation, music services, gameplay, and troubleshooting.
๐ก Got an idea? Share it in Ideas ๐ Found a bug? Open an Issue ๐ต Want a playlist? Submit a request through the Admin UI
Contributions welcome! Whether it's a new playlist, a bug fix, or a translation โ check our CONTRIBUTING.md for the full guide.
Quick start: Fork โ Branch โ PR. See good first issues for easy starting points.
MIT License. See LICENSE for details.
The next great party moment is one QR scan away.
The open-source music quiz for Home Assistant. Built for fun.
Report Bug ยท Request Feature ยท Discussions
Made with โค๏ธ for the Home Assistant community




