Navidrome

A Navidrome client for iPhone, iPad, Mac, Android, Windows and Linux.

JellyBox connects to Navidrome over the Subsonic API (with OpenSubsonic extensions), or over the Jellyfin API on Navidrome 0.64 and newer.

JellyBox on a Mac and a phone, both on the Home screen: Recently added albums, Made for you genre mixes and Recently played, with a FLAC track playing
Home screen on macOS and iPhone

Details

Servers
Navidrome, gonic and LMS (Lightweight Music Server). Other Subsonic servers may work, untested.
API
Subsonic + OpenSubsonic extensions, or Jellyfin (Navidrome 0.64+)
Streaming
Original file, or MP3 from 320 down to 64 kbps
In the car
CarPlay and Android Auto
Casting
AirPlay, Chromecast (beta) and DLNA

Supported features

  • Favourites on songs, albums and artists, sortable by date starred
  • Song and album ratings (1-5 stars), albums sortable by rating
  • Lyrics from Navidrome, synced if the file has them. LRCLIB as an opt-in fallback
  • Album notes and artist bios
  • Disc titles for box sets, play a single disc
  • Playlists: create, add, remove
  • Instant mix (getSimilarSongs) and daily genre mixes
  • Recently added, Recently played and Most played on home
  • Multiple libraries

Jellyfin API

Navidrome 0.64 has an experimental Jellyfin API. Enable it with ND_JELLYFIN_ENABLED=true and add the server in JellyBox as https://your-server/jellyfin.

gonic and LMS

Same as above, minus whatever OpenSubsonic extensions the server is missing. No songLyrics: lyrics only from LRCLIB, if enabled. No playbackReport: JellyBox falls back to plain scrobble, now playing on start and the scrobble on stop.

Play counts and now playing

Reported through the playbackReport extension. A play counts after half the track or 4 minutes. If Navidrome has Last.fm or ListenBrainz connected, it scrobbles from there.

Paused for 5 minutes or more clears now playing. Quitting the desktop app clears it immediately.

Transcoding

Direct play when the device supports the format (format=raw). Anything else is transcoded to MP3 at your quality setting, 320 kbps by default. ALAC on Android comes as FLAC, since ExoPlayer can't decode ALAC.

Player transcoding profiles in Navidrome are ignored: JellyBox sets format on every request.

Known limitations

  • No favourite button on playlists. Navidrome doesn't expose starred playlists over the Subsonic API.
  • No similar albums
  • No LAN server discovery, enter the address manually
  • AudioMuse-AI "Sounds like" search is Jellyfin only

Anything missing?

Tell me on Discord or open an issue on GitHub.

Get JellyBox

JellyBox is free and open source under AGPL-3.0, and works with Jellyfin, Emby and Navidrome servers. Grab it from the download page, or read the source.

← Back to JellyBox