Shipped in v1.0.2 · build 68
One app, every Navidrome library you run.
NaviBeat is the first native Apple-ecosystem player to fully support Navidrome's multi-library feature. Pick All Libraries, a single library, or any subset, and switch in one tap from iPhone, iPad, Mac, Apple TV, or Apple Watch. The picker only appears when your server actually has more than one library, so single-library setups stay uncluttered.
Server-side filter
NaviBeat passes the selected library IDs to Navidrome and the server returns only matching rows. No client merge, no double pagination, no broken rankings.
Permission-aware
The picker shows only the libraries your Navidrome user can actually access. Admins keep control; clients stay honest.
Per-device persistence
Your iPhone can show one library while the family-room Apple TV shows them all. Selection is keyed per server + username + device.
Hidden on single libraries
If your server has one folder, the picker never appears. No extra chrome to learn for users who don't need it.
Why multi-library matters
Self-hosted libraries grow into more than one shape over time. A clean main collection, an archival rip set, a 2,500 song migration playlist from a previous service, a shared family folder. In a single-library world, those all merge into one artist tree and one search index, dragging stray tags into your tidy library and disorganizing the artist directory. Multi-library on the server side fixes that. Multi-library in the client is what makes it actually usable on the couch.
"My issue with a single library was a ~2500 song playlist with about 1000 different artist tags that were not in my library, adding it to my existing library would disorganize my artist directory. I tried using .ndignore configs and keeping a single library but that made the playlist pointing to the files not populate with the songs."
NaviBeat TestFlight beta tester, May 2026That exact use case is what put multi-library in NaviBeat 1.0.2. The pattern shows up everywhere: live-set bootlegs you do not want in your scrobble history, the family's shared Christmas folder, a collection of audiobooks tagged in a way that would otherwise pollute Artists. Each gets its own library on Navidrome and NaviBeat respects the boundary.
Same feature, every Apple device
Picker wording is identical across platforms: "All Libraries", a single library name, or "N of M libraries". The control adapts to the device's native shape, never feels bolted on.
iPhone
Top of the Library tab. Compact picker that expands into a sheet with toggles per library + an "All Libraries" reset row.
iPad
Top of the sidebar. Same picker as the Mac, hit-targets sized for touch. Persistent while you browse.
Mac
Top of the sidebar. Standard macOS popup with checkmark per library. Matches the Navidrome web UI dropdown semantics.
Apple TV
Pill row above the Library tab strip. Focus-driven, remote-friendly. Switches the shelves in place without leaving the screen.
Apple Watch
Inherits the iPhone selection. The Watch is a remote for what the phone is set to, so the subset stays consistent on the wrist.
getMusicFolders on pair
When you pair a server, NaviBeat calls getMusicFolders and caches the result keyed on server + username. The response is permission-scoped, so users on a restricted account see only their libraries.
Show or hide the picker
If the response contains more than one library, the picker appears. One library? The picker stays hidden and NaviBeat runs in single-library mode with no UI difference from before.
Repeated musicFolderId on every read
Every shelf-level call (getAlbumList2, getArtists, search3, getStarred2, getRandomSongs, the per-artist endpoint, the per-playlist endpoint) repeats musicFolderId=... for each selected library. Navidrome's SQL layer compiles this into an IN-filter; ranking and pagination happen server-side.
Selection stays where it lives
Selected IDs are persisted in UserDefaults keyed by server + username. Re-pair clears the selection on purpose, so a new account starts from "All Libraries". The Now Playing queue is its own scope: the queue keeps its source library identity, so a deselect mid-song never cuts your music.
FAQ
Does this work on Subsonic, Airsonic, Gonic, or only Navidrome?
Any OpenSubsonic-compatible server that implements getMusicFolders with permission scoping and accepts a repeated musicFolderId on browse calls works the same way. Navidrome 0.55+ is the primary target; Airsonic-Advanced and Gonic also work. Servers that only ever return a single folder degrade cleanly: NaviBeat hides the picker and runs as a single-library client.
Why is the selection per-device and not synced via iCloud?
Two reasons. First, a typical use case is "phone shows my private library, Apple TV shows the shared family library", and forcing iCloud sync would defeat that. Second, NaviBeat stores nothing in iCloud or any backend: the only services NaviBeat talks to are the ones you signed in to. Per-device selection respects that boundary.
Can I scrobble only from one library and ignore another?
Scrobbling is per-track, not per-library, today. If you want to skip scrobbling for a specific library (a podcast archive, an audiobook folder), the cleanest split is to scope that library to a Navidrome user who has Last.fm sync disabled at the server level. We are watching whether per-library scrobble settings show up as a real feature request before adding the surface.
Does playback get cut when I deselect a library mid-song?
No. The Now Playing queue is its own scope. A track already playing keeps playing, AutoMix continues, and Up Next stays intact. The selection only affects browse and search going forward. This is the same behavior the Navidrome web UI ships.
Does the Last.fm integration respect the library selection?
Listener counts and similar-tracks lookups are driven by individual track metadata, so they always work regardless of library scope. The Last.fm features on shelves use whatever you have in front of you: pick All Libraries and the shelf samples from everything; pick one and the shelf draws from that subset.
What if a server admin adds a new library after I paired?
The picker re-fetches on every cold start. If a new library appears, it shows up in the picker on next launch and defaults to deselected so your existing scope does not silently widen. You opt in to the new library on your own.
Is this a paid add-on?
No. Multi-library is part of NaviBeat 1.0.2 at no extra cost. NaviBeat is a one-time $5.99 Universal Purchase that covers iPhone, iPad, Mac, Apple TV, and Apple Watch.
Run more than one library? Stop pretending you only have one.
NaviBeat 1.0.2 is the first native Apple-ecosystem player to honor Navidrome's multi-library shape end to end. Buy once, play across all your devices, keep your collections cleanly separated.
Get NaviBeat on the App Store