Native Android client for Music Assistant, the open-source music server that integrates all your music sources and players.
This app is an unofficial third-party client and is not affiliated with the Music Assistant project.
MassDroid is a full-featured Music Assistant companion app built around music exploration and discovery. It gives you complete remote control over all your MA players while also learning from your listening habits to surface personalized recommendations, generating Smart Mix playlists and genre radio stations entirely on-device, enriching your library with metadata from MusicBrainz, and helping you discover similar artists across all your music providers. Small footprint, with no ads, no trackers, and no cloud dependencies.
- What's New
- Screenshots
- Core Features
- Exploration & Discovery
- Follow Me
- Sendspin & Acoustic Calibration
- Android Auto
- Recommendation Engine
- How It Works
- Requirements
- Installation
- Verifying a download
- Configuration
- Permissions
- Tech Stack
- Documentation
- License
- Support
- Fixed a crash that killed the app whenever the home screen widget was updated, including the moment you place it.
- Search now remembers your recent searches and offers them when the field is empty, and it says so when nothing matched. (#72)
- Holding a volume key raises the volume smoothly on a group instead of in jumps.
- Home screen widget: album art, the track, the selected player and play, pause and skip buttons, as a 4x2 card or a 4x1 row. It works with the app closed and shows the last track as offline until the app reconnects.
- Stereo pairs: a speaker can now play only the left or only the right channel, so two speakers in a group cover a room properly. The player settings were tidied up around it.
- Play All on a big playlist starts in seconds instead of minutes. (#71, thanks @thanninger)
- The music no longer starts on its own, and a notification no longer leaves it paused for good.
- A phone playing in a group is no longer silent after the screen has been off for a while.
- Ad-hoc sync groups show up as a group again, with their members marked. (#74)
- Follow Me comes back on its own after a reboot or an app update, and is lighter on the battery while you drive.
- Now Playing opens cleanly: its title bar sits below the status bar and the elapsed time no longer starts from a huge number.
- Follow Me no longer crashes the app when Android restarts it in the background (the "MassDroid keeps stopping" message).
- Now Playing: the album art now colours the whole player screen.
- Various bug fixes.
- Discover Home : Dynamic recommendation sections with recently played, top picks, genre radio, and Smart Mix
- Library Browsing : Artists, Albums, Tracks, Playlists, Radio, Audiobooks, and Browse with search, sort, grid/list views, and provider filtering. Genre-based search finds artists, albums, and tracks by genre once your library has been enriched.
- Artist & Album Detail : Rich detail views with descriptions, genres, similar artists, and now-playing indicators
- Player Controls : Play, pause, skip, seek, volume, shuffle, repeat across all MA players
- Now Playing : Full-screen player with album art, seek bar, favorite toggle, synced/plain lyrics, tap-to-seek on synced lyric lines, timing adjustment, and artist blocking
- Audiobooks & Podcasts : Dedicated library sections with chapter and episode lists, chapter-aware transport, 30-second skip back/forward, and H:M:S timing
- Queue Management : View, drag-to-reorder, transfer between players, and manage the playback queue with action sheets
- Favorites : Mark artists, albums, tracks, and playlists as favorites, filter library by favorites
- Phone as Speaker : Sendspin protocol turns your phone into a Music Assistant player, solo or grouped with other MA players in tight sync. Audio streams as Opus, FLAC, or PCM over WebSocket, decoded and played through your phone speaker, headphones, or Bluetooth device. Smart mode picks the format from the network you are on. A built-in acoustic calibration measures real Bluetooth latency via microphone so grouped playback stays in sync even on wireless speakers. A streaming status sheet shows live sync graph, output latency, network mode, and a static delay control.
- Follow Me : Room detection with auto-transfer, per-room playlists, volume, and scheduling. Uses BLE fingerprinting by default, with optional Wi-Fi BSSID or SSID matching for distinct locations.
- Artist Blocking : Block any artist from all recommendations, radio stations, and Smart Mix results
- Media Session : Android media notification with playback controls
- Player Settings : Rename players, set icons, configure crossfade, volume normalization, streaming codec, and the output channels a speaker plays. Setting one speaker to left and another to right turns a group into a stereo pair, and a sync sheet lines every member of a group up by ear.
- Android TV : Full client for Shield and Google TV: browse the library, control any player, and use the TV as a synced speaker
- Connection Diagnostics : Live latency graph with roundtrip stats and server version info
- mTLS Support : Client certificate authentication for secure remote access
- MiniPlayer : Persistent mini player bar across all screens
- Home Screen Widget : Album art, track, selected player and transport buttons on the home screen, resizable from a 4x1 row to a 4x2 card. Buttons reconnect on their own when the app is closed.
MassDroid enriches your library with metadata from MusicBrainz, surfaces similar artists, builds Smart Mix queues, and generates genre radio stations from your local listening history.
See Recommendation Engine for details.
Walk between rooms and your music follows you. MassDroid uses BLE fingerprinting, optional Wi-Fi location hints, and motion-gated scans to detect where playback should move.
See Follow Me for setup guidance, room detection tips, tools, and troubleshooting.
Sendspin turns your phone into a Music Assistant player. Acoustic calibration measures real output-route latency, including Bluetooth latency, so grouped playback stays aligned.
See Sendspin & Acoustic Calibration for calibration steps, sync behavior, and privacy notes.
MassDroid supports Android Auto through a Media3 media library session with browse categories, queue playback, now-playing metadata, and player controls. Debug or sideloaded builds may require Android Auto's Unknown sources developer setting.
See Android Auto for setup notes, common quirks, and testing tips.
MassDroid learns from local listening history to power Smart Mix, genre radio, similar artists, and recommendation insights. Recommendation data stays on-device in a local Room database.
See Recommendation Engine for the scoring model and discovery features.
MassDroid communicates with your Music Assistant server over a persistent WebSocket connection. All player state, library data, queue changes, and favorites are synced in real time through server-pushed events. The app never polls; updates appear instantly as they happen on the server or from other clients.
When Sendspin is enabled, the phone registers as a Music Assistant player. Audio is streamed as Opus, FLAC, or PCM over a second WebSocket, decoded on-device, and played through the phone speaker, headphones, or a Bluetooth device. In Smart mode the app picks the format from the network you are on.
- Android 8.0+ (API 26)
- A running Music Assistant server (v2.x)
- Bluetooth support for Follow Me (room detection)
Download the latest signed APK from GitHub Releases, or use the Obtainium badge at the top of this page for automatic updates.
The most recent debug build is always available at the dev-latest release.
Debug and release builds can be installed side by side (different package IDs). Debug builds are not signed with the release key, so you cannot upgrade from debug to release or vice versa.
Every release APK is signed with the same key, whether you took it from the Releases page, from Obtainium, or the Android TV build. To check a file before you install it:
apksigner verify --print-certs massdroid-v2.33.0.apk
The certificate fingerprint must be:
SHA-256 DC:75:3B:B1:44:8A:83:7F:4F:C3:73:1A:47:7B:3E:2B:3F:1C:81:B6:11:EE:C7:84:DF:DC:95:0D:58:16:DD:F1
A different fingerprint means the file was not built by this project. The key has not changed since v2.31.0, so an APK that will not install over your current one because of a signature mismatch did not come from here.
See Configuration for server connection setup, mTLS notes, and how metadata enrichment works.
See Permissions for the runtime permission list and why each permission is used.
- Kotlin, Jetpack Compose, Material 3
- MVVM, Hilt, Coroutines/Flow
- OkHttp WebSocket, kotlinx.serialization
- Media3 / MediaSession
- Room (local recommendation database)
- Public docs index
- Follow Me
- Sendspin & Acoustic Calibration
- Android Auto
- Recommendation Engine
- Configuration
- Permissions
This project is licensed under the MIT License. See LICENSE for details.
If you find MassDroid useful, you can support its development:
















