Optional · Opt-in · You’re in control
The deepest Last.fm integration of any Subsonic client.
Listener counts on Now Playing. Year-in-Review you actually own, with the same totals on every Apple device. Time Machine playlists from any year you scrobbled. Discover Mix every Monday. Loved tracks synced both ways. NaviBeat never scrobbles directly to Last.fm, that always goes through your Navidrome server. Last.fm is only for reading your data back into the player.
Last.fm with NaviBeat: four guardrails
Read-only by design
NaviBeat reads your Last.fm history to surface insights inside the player. It never writes scrobbles directly: those always go through your Navidrome server, which you already control.
Fully optional
Don’t want Last.fm? Don’t connect it. NaviBeat works completely without it: same player, same library, zero external requests. Connecting Last.fm is one tap in Settings.
Sign in once, sync everywhere
Connect Last.fm on iPhone, and iPad, Mac, Apple TV, and Apple Watch all pick up the session via iCloud Keychain. One sign-in covers your whole Apple ecosystem.
Same numbers on every device
Year in Review, Discover Mix, Replay, Time Machine: all derived from your Last.fm history, not from each device’s local play count. iPhone, iPad, Mac and Apple TV show identical totals. As of Build 51, no local fallback: if Last.fm isn’t connected the Made for You shelf simply doesn’t appear.
What syncs · What doesn’t
Last.fm sync coverage, in plain terms.
Last.fm only models one kind of favourite: Loved tracks. There’s no Last.fm concept of a loved album, loved artist, or loved playlist, and no concept of star ratings. NaviBeat’s favouriting surface is therefore deliberately scoped to per-song hearts and per-song ratings, the only signals that round-trip cleanly. Album-, artist-, and playlist-level favouriting isn’t a NaviBeat feature: if you want it, the Navidrome web UI already handles it on the server.
Per-song, in NaviBeat
- Track hearts: bidirectional sync since Build 41. Heart a song in NaviBeat, it shows as Loved on Last.fm instantly, the request goes through your Navidrome server, never direct from the app. Love a track on Last.fm, it’s starred in your Navidrome library on the next playback or manual sync.
-
5-star ratings: per-song, stored on your Navidrome server via the Subsonic
setRatingendpoint. Last.fm has no rating concept, so this stays server-only by design.
Not a NaviBeat feature
- Album favouriting: not surfaced in NaviBeat. Last.fm has no album-Loved concept, and no per-song signal can stand in for one. Use Navidrome’s web UI if you want album favourites.
- Artist favouriting: not surfaced in NaviBeat. Last.fm has no artist-Loved concept. Navidrome web UI handles this on the server.
- Playlist favouriting: not surfaced in NaviBeat. Last.fm doesn’t track playlist favourites either. Manage these in Navidrome’s web UI.
Heart and star icons in NaviBeat appear at the per-song level only: on track rows, in Now Playing, and in the queue. Album, artist, and playlist headers don’t carry a heart in NaviBeat, because there’s no Last.fm signal to round-trip and we’d rather draw a clean scope line than ship a half-feature. Every platform (iPhone, iPad, Mac, Apple TV, Apple Watch) follows the same rule. As of Build 51, 2026-05-07.
The taste-intelligence gap
What no other Subsonic client surfaces today.
Most clients in this space stop at scrobbling: sending plays to Last.fm and not reading anything back. NaviBeat reads your Last.fm history into the player so the data you’ve been generating for years finally pays off as features.
| Feature | NaviBeat | Other Subsonic clients |
|---|---|---|
| Server-side scrobbling via Navidrome | ✓ | ✓ common |
| Listener counts on Now Playing | ✓ | × |
| Top tags on Artist header | ✓ | rare / partial |
| Bidirectional Loved ↔ Starred sync (incl. instant push + pending-intent persistence) | ✓ | desktop-only / one-way |
| Similar Tracks & Similar Artists rails | ✓ | rare / via API only |
| AutoMix · Last.fm continuation when Up Next runs dry | ✓ | × |
| Discover Mix: Last.fm-seeded weekly playlist | ✓ | × |
Replay 2026: user.getTopTracks(12month) | ✓ | × |
Time Machine: date-range playlist from user.getRecentTracks | ✓ | × |
| Year-in-Review (Wrapped) with permanent archive + share cards | ✓ | × |
| “Because You Listened” Home rail | ✓ | × |
| “On This Day” rail | ✓ | × |
| Cross-device-consistent stats (same totals on iPhone / iPad / Mac / TV) | ✓ | × |
| Made for You shelf on Apple TV | ✓ | × |
Based on a survey of notable Subsonic / Navidrome / OpenSubsonic clients across iOS, macOS, tvOS, Android, and the web (May 2026). Some clients in the space have one or two of these features in isolation; none ship the full layer in the player itself.
Live roadmap
Shipping order, transparently.
Every Last.fm feature, in the order we’re building them. Updated as work lands. White means done and shipped; orange means actively in development; gray means planned and queued. No vapor.
-
Done · Build 28 · May 2026
Server-side scrobbling via Navidrome
Every play in NaviBeat hits your Navidrome server’s
/scrobbleendpoint. If you’ve configured Navidrome to forward to Last.fm, plays land in your Last.fm history. NaviBeat itself never scrobbles directly: this is the architecture for every feature below. -
Done · Build 41 · May 2026
Connect Last.fm Account
Settings → Connect Last.fm. One tap, web auth flow, session token saved to iCloud Keychain so iPhone, iPad, Mac, Apple TV, and Apple Watch all share the connection. Apple TV scans a QR code with any phone’s camera if iCloud Keychain isn’t propagating. Without this no other Last.fm feature can run.
-
Done · Build 41 · May 2026
Listener counts & top tags
Now Playing detail picks up a small pill: “1.2M listeners on Last.fm.” Artist header gets three top-tag chips: “post-rock · shoegaze · 2000s”. macOS Mini Player and the bottom transport pill render a tighter HI-RES-style LAST.FM badge inline next to the quality chip. Couch-readable typography on Apple TV. One direct read call per track change, with per-feature opt-out toggles in Settings.
-
Done · Build 41 · May 2026
Bidirectional Loved ↔ Starred sync
Heart a track in NaviBeat → loved on Last.fm instantly (no batching, no “next sync”). Loved on Last.fm → starred in your Navidrome library on the next playback or manual “Sync now.” Tracks not yet in your library are remembered: if you wipe your Navidrome music and rebuild it from a fresh download, the moment a matching file appears the star is auto-applied. One-time opt-in import on first connect imports every Loved track at once. Continuous push wired across iOS, iPad, macOS, Apple TV, and CarPlay; auto 24h pull on cold launch keeps everything fresh.
-
Done · Build 44 + 46 · May 2026
Similar Albums & Similar Tracks rails
Album Detail ends with a “Similar Albums · Last.fm” horizontal rail derived from
track.getSimilargrouped by parent album, resolved against your library. Apple TV gets the same rail with focus-card visuals. The deeper Similar Tracks rail data path is reserved for a future Now Playing surface. -
Done · Build 44 · May 2026
Similar Artists rail
Artist Detail ends with a “Similar Artists · Last.fm” rail. Tap an in-library artist tile → opens that artist. Out-of-library artists dim and offer Show on Last.fm. Apple TV-friendly focus visuals across iPhone, iPad, Mac, Apple TV.
-
Done · Build 44 + 46 · May 2026
Show on Last.fm context menu
Long-press any track / album / artist anywhere (Library, Now Playing, Search, the rails) for an instant link out to the page on Last.fm. Apple TV has no browser, so it shows a QR code you scan with your phone. Three new toggles in Settings → Last.fm let you hide each Last.fm surface independently.
-
Done · Build 46 · May 2026
AutoMix · Last.fm
When the Up Next queue runs dry and AutoMix is on, NaviBeat fetches Last.fm-similar tracks for the current song, resolves them against your library, and queues them up. If your library doesn’t have enough matches, AutoMix transparently falls back to your Navidrome server’s recommendations, never breaks. The Up Next panel shows an “AutoMix · Last.fm” pill when Last.fm is connected so the source is unmistakable.
-
Done · Build 49 → 51 · May 2026
Replay 2026: your top tracks of the year
Per-period replays on Home: “Replay 2026”, your top-played tracks from the last 12 months, sourced directly from
user.getTopTracks(period: 12month)on Last.fm and resolved against your library. As of Build 51 this is strictly Last.fm-driven: no silent local fallback, so the same Replay shows the same songs in the same order on every device. iPhone, iPad, Mac, Apple TV. -
Done · Build 49 → 51 · May 2026
Year in Review
Year-in-review done right. Wrapped-style 5-slide vertical scroll: top tracks, top artists, top albums, total plays / minutes, top genres. Top Artist and Top Track slides paint their cover art as a blurred full-bleed background. PNG share via SwiftUI
ShareLinkon macOS, native share sheet on iOS. Hero banner card on Home during December–February, Settings entry the rest of the year. Permanent archive: every prior calendar year stays accessible, scrolling back to 2003 if you’ve scrobbled that long. Spotify Wrapped expires every January; this one stays forever. Build 51 fix: totals and top picks now come fromuser.getTopTracks(12month)overlay, so iPhone, iPad, Mac, and Apple TV all show identical numbers. iPhone, iPad, Mac, Apple TV (no Share on Apple TV); watchOS surface in v1.1. -
Done · Build 49 → 51 · May 2026
Discover Mix: weekly Monday rotation
A fresh playlist every Monday, built from your Last.fm top-tracks seeds →
track.getSimilar→ resolved through your library. The “new music you’d actually like, hidden in your own collection” surface. Build 51 makes this strictly Last.fm-only: no local seed fallback, no “not enough plays” dead-ends on freshly-installed devices. iPhone, iPad, Mac, Apple TV. -
Done · Build 49 → 51 · May 2026
Time Machine playlists
Pick a date range (“May 2024”, “Five years ago this week”, “the month I moved to Belgrade”) and NaviBeat pulls your scrobbles in that window via the new
user.getRecentTracks(from:to:)path, dedupes, and resolves them against your library. Save as a real playlist on your server. Apple TV gets a focus-friendly preset sheet (30 days / 3 months / 6 months / 12 months) since it has no keyboard for free-form date pickers. iPhone, iPad, Mac, Apple TV. -
Done · Build 49 · May 2026
“On This Day” rail
Home tab rail: the songs you played on this calendar day across past years. “Three years ago today: a heavy Sigur Rós afternoon.” Pure scrobble-history magic. iPhone, iPad, Mac.
-
Done · Build 49 · May 2026
“Because You Listened” rail
Home tab rail seeded from your last 5–10 plays. Artist-anchored similar-track lookups, deduped, resolved against your library. The “you might also like, but it’s already in your collection” surface. iPhone, iPad, Mac.
-
Planned · v1.1
Library → Stats sub-section (Listening Clock + Heatmap)
Library tab gets a dedicated Stats entry. Listening Clock (24-hour radial), Weekday Heatmap, Top 10 Artists / Albums / Tracks per period (week / month / year / all-time). The Top Tracks aggregator shipped in Build 49 and was extended in Build 51; the visual Stats surfaces (Clock, Heatmap, period switcher) come in v1.1.
-
Planned · v1.1
Made for You on Apple Watch
Year in Review, Discover Mix, Time Machine, On This Day, Because You Listened landed on iPhone, iPad, Mac in Build 49 and on Apple TV in Build 51. The watchOS five-card vertical scroll ships in v1.1 once the watch player’s glanceable design language is finalised.
-
Planned · v1.1
ListenBrainz dual integration
For listeners who scrobble to ListenBrainz instead of (or alongside) Last.fm. Same surfaces (Discover Mix, Time Machine, Year in Review) backed by the MetaBrainz open dataset. Read-only, opt-in, never written from the app directly.
-
Planned · v1.1
Songkick concerts feed
Library → Concerts: upcoming shows for artists you actually listen to, pulled from Songkick. Filtered to your home metro and the next six months. The “your scrobbles tell us who’s touring near you” surface.
-
Planned · v1.1
Friends activity sidebar
A sidebar (Mac) / sheet (iOS) that shows what your Last.fm friends are listening to right now, with one-tap “play this for me too” from your library. The original Last.fm social signal, brought into the player.
-
Planned
Mood & Context mixes
Auto-built mixes from scrobble timestamp patterns: “Sunday Morning” (tracks you historically played Sundays before 11 AM), “Late Night” (after 11 PM weekdays), “Commute” (8–9 AM weekdays). Your taste, your context.
Ready to listen smarter?
NaviBeat is on the App Store for every Apple device. Last.fm features land progressively in ongoing updates.