Skip to content

Radio

The Radio view manages internet radio stations on your Navidrome server. Stations are HTTP streams (Icecast/Shoutcast) that play directly — not through the queue.

For navigation, search, and multi-select, see Library Basics. Radio has no expansion, no ratings, and no Add-to-Queue / Add-to-Playlist actions.

Stations only sort by Name (Page Up toggles direction). Search matches both station name and stream URL.

All radio CRUD lives in Nokkvi — you don’t need to touch Navidrome’s web UI.

  • Add Station button (header, top-right) opens a dialog for name and stream URL.
  • Right-click → Edit Station re-opens that dialog pre-populated.
  • Right-click → Copy Stream URL copies the URL to your clipboard.
  • Right-click → Refresh Artwork clears the station’s cached art so it re-captures — see Artwork.
  • Right-click → Delete Station removes the station after confirmation.

Behind the scenes, Nokkvi calls Navidrome’s createInternetRadioStation, updateInternetRadioStation, and deleteInternetRadioStation endpoints.

When a station is streaming, the metadata strip shows:

  • The station name (with a radio-tower icon)
  • The current track’s artist and title, parsed from the stream’s ICY metadata in real time
  • The stream URL as a fallback if no ICY metadata has been received yet

Most public Icecast/Shoutcast streams advertise ICY metadata; if a station you’ve added shows only the URL with no track info, it likely doesn’t.

While a radio is playing, next / prev (and the player-bar arrows) cycle through your stations in order, wrapping around at the ends — they don’t act on the queue.

Stations show cover art in the list rows, the large now-playing panel, and the mini-player. It comes from one of three places:

  • An uploaded station logo (set on the server) — used as the station’s identity everywhere in Nokkvi.
  • Now-playing stream art parsed from the playing station’s ICY metadata — drives the large panel.
  • Remembered art — for a station with no logo, the last track’s stream art is cached and reused as the row thumbnail in later sessions.

A station with no logo and no art yet falls back to a radio-tower glyph. Remembered art is cached on disk per server (a bounded cache — the oldest art is evicted as it fills), so it survives restarts even though playback itself doesn’t.

Right-click → Refresh Artwork clears a station’s cached art. A station with an uploaded logo re-fetches it right away; a logo-less station drops back to the tower glyph and re-captures the next time it plays.

While a station streams, the over-cover visualizer animates over the artwork — or over the tower glyph when there’s none — and freezes on pause, just like the Queue’s now-playing cover.

Radio plays can scrobble directly to ListenBrainz and/or Last.fm — straight from Nokkvi, not through Navidrome. Library scrobbling rides Navidrome’s Subsonic relay (see Navidrome → Scrobbling), but a radio track has no library id for the server to forward, so Nokkvi submits it itself using credentials you connect on the client.

This is off by default. Turn it on under Settings → Playback → Radio Scrobbling.

Nokkvi reads the Artist - Title from the stream’s ICY metadata — the same text the metadata strip shows. Once a track has actually played for your listen threshold, it’s submitted once; while it plays, an optional now-playing update is sent too.

  • ThresholdRadio Listen Threshold (config: radio_scrobble_threshold_secs, default 60 s, range 20–240). Radio streams don’t report a duration, so this is a flat seconds count, not the percentage that library tracks use. Paused time doesn’t count.
  • Now-playingSend Radio Now-Playing (config: radio_now_playing_enabled, on by default) pushes a live “now playing” to each connected service whenever the track changes, refreshed every 30 seconds.

Credentials live in Settings → Playback → Radio Scrobbling, and each service’s row shows whether it’s connected. Set up either or both — scrobbling fires for whichever you’ve connected.

  • ListenBrainz — open ListenBrainz Token, then paste a user token from your ListenBrainz profile. Verify ListenBrainz checks it works; clearing the field disconnects.
  • Last.fm — open Last.fm API Credentials and paste an API key + secret from last.fm/api, then run Connect Last.fm to authorize Nokkvi in your browser. Disconnect Last.fm clears the stored session.

These credentials are separate from any Last.fm/ListenBrainz keys configured on Navidrome for library scrobbling — radio uses your own client-side credentials, not the server’s.

  • No queue integration — radio streams aren’t queued. Merely navigating to the Queue view leaves the radio playing; playing anything from the queue (or any library view) stops the stream and switches back to queue playback.
  • No server-side play counts — radio plays don’t go through Navidrome, so they never bump play counts on your server. They can scrobble straight to ListenBrainz/Last.fm instead — see Scrobbling above.
  • No favorites or playlists — you can’t star a station or add it to a playlist.
  • No expansion — radio rows are flat; there’s no expand-to-tracklisting. (Rows do show artwork now — see Artwork.)
  • Session-only playback — the stream stops when you close Nokkvi and doesn’t auto-resume.