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, or Tidal playlists. Curated song packs included. Create your own.
Runs Locally โ No cloud. No subscription. No data leaves your network. Fast, private, reliable.
Everyone Competes โ Points, streaks, power-ups, and a dramatic finale with podium and stats. Real competition, real laughs.
Via HACS (Recommended) โ Install this HACS integration in seconds:
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 AssistantSettings โ 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
- Select a speaker โ Only supported speakers appear
- Choose your music service โ Spotify or Apple Music (depends on speaker)
- Pick playlists โ Select one or more
- Adjust settings โ Language, timer, difficulty
- Start Game โ Share the QR code with guests
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 double-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. Score points: Double them. Score zero: Lose it all.
Know your artists? Enable this mode in game setup. Guess the artist after the song: +5 bonus points. Alternate names acceptedโ"Prince" or "The Artist" both count.
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 2,363 songs across 21 curated playlists:
- ๐ธ 60s Classics โ 45 tracks from the golden age of rock & roll
- ๐น 80s Hits โ 208 classic hits from the decade of synths and MTV
- ๐ต 90s Hits โ 32 essential tracks from the decade
- ๐ต 2000s Pop Anthems โ 151 essential pop hits from the 2000s
- ๐ช๐ธ 100% en Espaรฑol โ 127 Latin & Spanish classics
- ๐ฌ 100 Greatest Movie Themes โ 162 iconic film soundtracks
- โ๏ธ 100 Summer Anthems โ 112 feel-good tracks from 1957-2020
- ๐ฌ๐ง British Invasion & Britpop โ 100 tracks from The Beatles to Blur
- ๐ญ Cologne Carnival โ 291 German carnival favorites
- ๐บ Disco & Funk Classics โ 76 essential disco and funk tracks from the 70s and 80s
- ๐ฅ 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รก
- ๐ฏ Greatest Hits of All Time โ 180 chart-toppers across four decades
- ๐ต 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
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 | 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
- Home Assistant 2024.1+
- Supported media player (see Supported Speakers above)
- 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)
See ARCHITECTURE.md for the full system overview and WEBSOCKET.md for the WebSocket API protocol.
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, and Tidal. Support depends on your speaker platformโsee the Supported Speakers table for details.
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.
- 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.
Developer docs: Architecture | WebSocket API | Changelog
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










