Navidrome 0.64 opens its API to Jellyfin clients and migrates IDs to 128 bits
Navidrome 0.64, released September 12, 2026, adds an experimental Jellyfin Music API that lets clients like Finamp and Jellify connect, and re-encodes all internal IDs to a canonical 128-bit format. Back up the database before upgrading and re-sync clients that cache IDs.
September 12, 2026. Navidrome ships version 0.64.0. December 2018. Jellyfin is born from a fork of Emby, and its music API becomes a de facto standard for self-hosted playback. 2019. Navidrome emerges as a music server built on the Subsonic API. Why it matters: the two dominant self-hosted music ecosystems are starting to talk to each other, but the ID overhaul demands a backup before migrating.
Navidrome is one of the most-installed self-hosted music servers today, alongside Jellyfin and Plex. Its historical signature: it speaks the Subsonic API, an open protocol inherited from the 2000s, which gives it access to a broad family of clients, from DSub to Symfonium and assorted mobile apps and web players.
An experimental Jellyfin API
The headline feature of 0.64.0 is an experimental Jellyfin Music API. In practice, Jellyfin-compatible music clients — Finamp, Jellify, and others — can now connect directly to a Navidrome server.
The benefit is practical first. A user who standardized their clients on Finamp no longer needs to run a separate Jellyfin server for music: they can point their existing clients at Navidrome and enjoy its light footprint. Conversely, a setup already running Navidrome widens its client choice without changing the server.
The experimental label deserves emphasis. The implementation is fresh, and the maintainers are not yet promising full compatibility. For daily use, test on a small library before moving your whole listening over.
An ID migration that touches every table
The second announcement is a deliberate technical break. All of Navidrome’s internal IDs are re-encoded to a canonical 128-bit base62 format. The migration touches every table in the database.
The maintainers’ instruction is unambiguous: back up your database before upgrading. A migration that rewrites every ID cannot be recovered by hand if it fails halfway. The release notes add that clients which cache IDs — offline downloads, for example — will need to re-sync.
The underlying rationale is sound. A uniform 128-bit ID simplifies cross-table references, avoids encoding collisions, and lays groundwork for future changes. It is the kind of debt best paid once, cleanly, rather than accumulated silently at every release.
The rest of the release
0.64.0 is not just interoperability. The artwork pipeline gains background processing with blurred low-quality placeholders and a diagnostic CLI. Genre and artist filtering is now index-backed, and playlist import on large libraries is dramatically faster.
Also included: natural sort order, playlist favorites, Refresh Metadata actions, new Catppuccin themes, and a run of fixes across scanning, transcoding, and scrobbling. Two breaking changes ship alongside: the Extism built-in HTTP is disabled for plugins, which must use the host HTTP service, and plugin connections to private or loopback addresses are now blocked unless explicitly declared in the manifest. Finally, shares are always owned by their creator, and an admin can no longer create a share on behalf of another user.
Why the Subsonic API held on for so long
Navidrome was built on the Subsonic API, an open protocol born in the mid-2000s with the Subsonic server and carried on by forks like Airsonic. Its strength is interoperability: once the protocol is implemented server-side, dozens of clients — mobile apps, web players, home-automation integrations — work without bespoke development. That installed base is what carried Navidrome from launch.
But the Subsonic API shows its age. Its handling of metadata, artwork, and playlists is cruder than modern servers, and clients wanting a rich experience must compensate on their side. That is exactly the space the Jellyfin API claimed, with a richer data model and music clients like Finamp and Symfonium that exploit it.
Subsonic versus Jellyfin: two philosophies
The Jellyfin and Subsonic APIs do not solve the same problem. Subsonic favors simplicity and broad compatibility: a minimal contract, easy to implement, at the cost of limited features. Jellyfin favors richness: full metadata, fine-grained library management, advanced playback resume, at the cost of a heavier implementation.
By offering both, Navidrome makes a smart bet. It keeps its Subsonic client base while attracting the Jellyfin ecosystem without forcing a server switch. The convergence happens not by replacing one protocol with the other but by serving them side by side — a strategy few open-source projects can afford to run cleanly, because it doubles the API surface to maintain.
Navidrome, Jellyfin, and Plex
The self-hosted music landscape boils down to three poles. Plex offers the most polished experience but rests on a proprietary core and nudges you toward its own services. Jellyfin is fully free and covers music, video, and more, at the cost of a heavier footprint. Navidrome focuses on music alone, with a lightness that makes it the favorite of small servers and containers.
The choice depends on use: a music-only server holding hundreds of thousands of tracks gains from Navidrome, while a household that also wants video prefers Jellyfin. Navidrome opening the Jellyfin API blurs that line, which is good news for the user, who no longer has to sacrifice their music clients to pick a server.
What the migration changes in practice
For the user, the visible impact is small. The database moves to a more uniform ID format, and the tables are rewritten in a single pass on first startup after the upgrade. The risk sits with clients that keep local references: offline downloads, queues, or cached favorites may point at old IDs and will need to re-sync.
The sound practice is simple: stop the server, dump the database, upgrade, restart, and let the migration finish before relaunching clients. On a large library the rewrite can take a few minutes, and it must not be interrupted. Once through, the improvement is invisible but durable: cross-table references are safer and future changes easier to land.
A practical upgrade path
For a standard Docker deployment, the upgrade is a container swap, but the sequence matters. Pull the new image, stop the running container, back up the volume that holds the database, then start the new version and watch the logs until the migration completes. Most users will spend more time waiting for the dump than running the migration itself.
The one trap to avoid is upgrading straight into production without a rollback plan. Because the ID migration is one-way — there is no downgrade script that converts 128-bit IDs back to the old format — a failed upgrade means restoring from the backup you took. That single dump is what turns a risky migration into a routine one, and it is the whole reason the maintainers put the backup warning at the top of the release notes.
Verdict
If you already self-host Navidrome, back up the database — a dump is enough — then upgrade: the ID migration is the only risky step, and it is documented and tested by the maintainers. If you standardize your music clients on Finamp or Jellify, this is the moment to consolidate onto a single Navidrome server instead of running two, while keeping the Subsonic API for the rest of your clients. If you have not chosen yet, the convergence of the two APIs lowers the cost of a wrong decision: starting with Navidrome no longer locks you in, since both client families now work against it.