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
- Party Mode
- Sendspin & Acoustic Calibration
- Android Auto
- Recommendation Engine
- How It Works
- Requirements
- Installation
- Verifying a download
- Configuration
- Permissions
- Tech Stack
- Documentation
- License
- Support
- Search: a Library chip searches only your own library until you turn it off.
- Android Automotive: the car settings have an About section with the app version and the privacy policy.
- Search shows matches from your library first while the streaming services are still being searched. (#76)
- Items without artwork show a placeholder instead of an empty square, on the phone and on Android TV.
- The home screen widget uses less battery when the music changes quickly.
- Search is more reliable with slower streaming services such as Spotify: a slow answer gets one more try before No results shows. (#76)
- Scrolling the queue back to the top no longer closes it.
- Android Automotive: the car shows a Sign in button when no account is signed in, and signing out clears the car's lists and the playing track at once.
- 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.
- Party Mode : With Music Assistant's Party plugin, a Party screen in the player options shows the QR code guests scan to add songs to the queue, with the party player and a disco ball background. The queue marks guest and boosted songs.
- 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: the same Discover Home as the phone with Smart Mix and Genre Radio, library browsing, control of any player from a mini player always at hand, and the TV as a synced speaker
- Diagnostics : A settings screen with the app and server versions, the logs the app keeps on disk, and the battery setting that decides whether it may work in the background, which is what a problem report needs. A separate connection view shows a live latency graph with roundtrip stats.
- mTLS Support : Client certificate authentication for secure remote access
- MiniPlayer : Persistent mini player bar across all screens
- NFC Tags : Write an album, a playlist or a speaker onto an NFC tag and leave it where you listen. Tapping the phone on it starts that music on that speaker, moves what is already playing into that room, or resumes what the speaker holds, and can set the volume first. The whole instruction lives on the tag, so a tag written on one phone works on any other phone that has the app.
- 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.
See the Party screen in Screenshots.
Party mode lets your guests add songs to the queue from their own phones. To set it up:
- In Music Assistant, open Settings → Plugins → Add a plugin, add the Party plugin, and turn on Enable Guest Access via QR Code.
- If your guests are not on your Wi-Fi, for example passengers on mobile data in the car, turn on Remote Access in the Music Assistant settings. The QR code then opens through app.music-assistant.io and works from anywhere, as long as no External URL is set in Music Assistant (see the note below). Without Remote Access or a public External URL, guests must be on the same network as your Music Assistant server. Remote Access usually works without a Nabu Casa subscription, but Music Assistant notes that on some networks, such as some mobile carriers, a subscription with WebRTC Connections turned on helps.
- In MassDroid, open Now Playing, tap the three-dot Player options menu, and choose Party under More. Guests scan the QR code with their phone camera, and they need no app.
- Songs your guests add show a Guest badge in the queue, and boosted songs show Boosted.
If an External URL is set in Music Assistant, the QR code always uses it, even with Remote Access turned on. When that address sits behind a login page or a client certificate, guests from outside cannot open it. Clear the External URL to let the QR code use Remote Access instead.
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.
MassDroid is on F-Droid for the phone
(net.asksakis.massdroidv2) and for
Android TV (net.asksakis.massdroidv2.tv).
F-Droid publishes the same signed files as the release page, massdroid-vX.Y.Z_fdroid.apk and
massdroid-vX.Y.Z_tv_fdroid.apk, once its own build of the release matches them. These builds
have no in-app updater; F-Droid updates them. Outside F-Droid, install the regular
massdroid-vX.Y.Z.apk or massdroid-vX.Y.Z_tv.apk instead.
If your app stopped offering updates, you are probably on the F-Droid build: from v2.26.0 to v2.38.1 the in-app updater installed it by mistake. Install the regular APK over it once. Both builds have the same package and signing key, so your settings are kept, and the app updates itself again from then on.
MassDroid is in closed testing on Google Play for phones, Android TV and Android Automotive. To join:
- Join the massdroid-testers group with the Google account you use on the Play Store.
- Open the testing page on that account, accept the invite, and install MassDroid from the Play Store.
The same two steps cover all three apps on that account. On the phone and in the car, the Play version installs over the GitHub or F-Droid one and keeps your settings; going back from Play to a GitHub APK in the car needs an uninstall. On Android TV the Play version is a separate app, so remove the GitHub or F-Droid TV app after you install it from Play; its settings do not carry over. Google needs at least 12 testers for two weeks before the app can go public, so every tester helps.
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:












