Navidrome

Navidrome · Navidrome.Navidrome

Modern Music Server and Streamer compatible with Subsonic/Airsonic

winget install --id Navidrome.Navidrome --exact --source winget

Latest 0.62.0

Release Notes

This release introduces support for the OpenSubsonic sonicSimilarity extension, enabling audio-based similarity through the plugin system: when a plugin provides the capability, the new getSonicSimilarTracks and findSonicPath endpoints unlock smarter, sound-based recommendations and playlists. One plugin that implements it is AudioMuse-AI. It also brings a major overhaul to playback reporting and the Now Playing experience — the UI now uses the new OpenSubsonic playbackReport extension, replacing the old scrobble flow with a redesigned panel and configurable reporting interval. On the security front, it hardens the server with stronger ownership and authorization checks across shares, players, and transcoding endpoints, caps concurrent transcodes to prevent ffmpeg-based denial of service, and adds an option to refuse to run as root. Smart playlists gain ReplayGain fields and new isMissing/isPresent operators, and there are five new UI themes to choose from. Security This release fixes several reported vulnerabilities. We thank the security researchers who responsibly disclosed them.

  • Fix cross-account disclosure of other users' shares (incl. share tokens) by enforcing per-user ownership on share reads. (1e7996f5d, GHSA-3g4p-jhv2-xrxf, reported by @Wernerina)
  • Fix cross-tenant player takeover and share-update IDOR by enforcing ownership atomically on player and share updates. (#5563, GHSA-x65f-m8x9-pjxm reported by @tonghuaroot; GHSA-58gr-c777-g23p reported by @lighthousekeeper1212; GHSA-wx2c-q8g7-4q5p reported by @CE2Sec)
  • Fix unauthenticated Last.fm scrobble session hijack (IDOR) by requiring a signed state token on the link callback. (#5521, GHSA-8jrh-w926-8rvw, reported by @geo-chen)
  • Fix JWT expiration bypass on public share stream endpoints by validating token expiration and share existence. (#5426, GHSA-3rfj-qx9q-jghx, reported by @wooseokdotkim)
  • Fix disclosure of admin-only transcoding configuration to non-admin users by restricting transcoding config reads to admins. (#5564, GHSA-4p3r-6362-833w, reported by @DavidCarliez)
  • Fix missing admin authorization on internet radio station management endpoints by requiring admin access for Subsonic management endpoints. (#5510, GHSA-jw24-qqrj-633c, reported by @osageling)
  • Cap concurrent transcodes to prevent an ffmpeg-based denial of service, with new per-server and per-user limits. (#5522 by @deluan)
  • Add EnforceNonRootUser option to exit early if Navidrome is started as root. (#5373 by @kopf)
  • Split HTML sanitization from plaintext handling. (7e083e079 by @deluan)

Note: Several of the advisories linked above are still in draft/triage on GitHub at the time of writing. Their links will become publicly accessible once the advisories are published. The fixes themselves are already included in this release.

Configuration Changes ──────────┬─────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────┬─────── Status │Option │Description │Default ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── New │EnforceNonRootUser │Exit early on startup if Navidrome is running as root (ignored on Windows). (#5373) │false ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── New │Transcoding.MaxConcurrent │Maximum number of concurrent transcodes server-wide (0 = unlimited). (#5522) │0 ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── New │Transcoding.MaxConcurrentPerUser │Maximum number of concurrent transcodes per user (0 = unlimited). (#5522) │0 ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── New │Matcher.PreferStarred │Bias the fuzzy matcher toward starred/high-rated tracks. (#5387) │true ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── New │UIPlaybackReportInterval │How often the UI reports playback progress. (#5448) │5s ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── Deprecated│EnableTranscodingCancellation → │Renamed and moved under the new Transcoding section. (#5523) │false │Transcoding.EnableCancellation │ │ ──────────┼─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼─────── Deprecated│SimilarSongsMatchThreshold → Matcher.FuzzyThreshold │Renamed and moved under the new Matcher section. (#5387) │85 ──────────┴─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────┴─────── For a complete list of all configuration options, see the Configuration Options documentation.

UI

  • Replace UI scrobble with reportPlayback and redesign the Now Playing panel. (#5448 by @deluan)
  • Add Tokyo Night theme. (#5497 by @Metalhearf)
  • Add Catppuccin Latte theme. (#5250 by @lov3b)
  • Add Moonbase themes (Alpha light + Bravo dark). (#5243 by @craiglush)
  • Add a "Not Starred" filter option. (#5362 by @danielbanariba)
  • Add a Rescan button to the plugin list empty state. (#5471 by @deluan)
  • Suppress capitalization and autocorrection for login on mobile keyboards. (#3783 by @bdefore)
  • Show album tile actions on keyboard focus. (#5434 by @danielbanariba)
  • Start a new album from track 1 after closing the player. (#5441 by @deluan)
  • Prevent autoplay when clearing the play queue. (#5430 by @deluan)
  • Fix Gruvbox Dark colors. (#5553 by @Tal0na)
  • Update the AMusic theme to use the correct text color for primary confirmation buttons. (#5509 by @VirtualWolf)

Smart Playlists

  • Add ReplayGain fields to the criteria system. (d9dac4445 by @deluan)
  • Add isMissing and isPresent operators. (#5436 by @deluan)
  • Relax playlist visibility in inPlaylist/notInPlaylist rules. (#5411 by @deluan)
  • Optimize smart playlist performance for role and tag criteria. (#5515 by @deluan)
  • Coerce string booleans in smart playlist rules. (#5450 by @deluan)

Subsonic API

  • Implement the playbackReport OpenSubsonic extension. (#5442 by @deluan)
  • Add the sonicSimilarity extension as a plugin capability. (#5419 by @deluan)
  • Add a groupings field to the OpenSubsonic Child response. (f12e75aa1 by @deluan)
  • Use SQLite RANDOM() sorting in getRandomSongs for faster results. (cf1f190bb by @deluan)
  • Mark AlbumID3 songCount and created as required. (8897ec918 by @deluan)
  • Normalize non-NFKD Unicode letters (ø, æ, œ, ß) in search. (#5413 by @deluan)

Transcoding

  • Place -ss before -i for fast input seeking. (#5492 by @deluan)
  • Don't apply server-side override on getTranscodeDecision. (#5473 by @deluan)
  • Log a warning for invalid or stale transcode tokens. (9a2eb483e by @deluan)

Scanner

  • Respect tag-split config when multiple frames map to the same tag. (#5193 by @trek-e)
  • Fix error when importing playlists without an admin user. (5b85b2839 by @deluan)

Artwork

  • Fix stale cache and top-level album artwork for multi-disc albums. (#5457 by @deluan)
  • Prefer album-root images over disc-subfolder images for multi-disc albums. (#5451 by @deluan)
  • Return the correct timestamp when disc or album cover art changes. (#5378 by @bobo-xxx)

Server

  • Prevent artwork throttle token starvation on slow clients. (#5472 by @deluan)
  • Proxy NowPlaying even when ignoreScrobble is set. (#5559 by @deluan)
  • Make the /api/song path filter work and use startsWith. (#5566 by @deluan)
  • Preserve unchanged fields on partial REST playlist updates. (#5542 by @deluan)
  • Allow toggling playlist auto-import and avoid unnecessary artwork reloads. (#5421 by @deluan)

Matcher

  • Add Matcher.PreferStarred option to bias the fuzzy matcher toward starred/high-rated tracks. (#5387 by @deluan)

Plugins

  • Add PlaybackReport to the scrobbler capability. (#5452 by @deluan)
  • Add LibraryID to TrackInfo. (fd930eefd by @deluan)

CLI

  • Add pls export/import subcommands for bulk playlist management. (#5412 by @deluan)
  • Restore int cast for syscall.Stdin on Windows. (e75ab3b03 by @deluan)

Build & Dependencies

  • Improve Windows support: the Go test suite now runs on Windows CI, with previously-skipped Subsonic, artwork, watcher, and scheduler tests enabled and fixed. (#5380, #5427, #5416 by @deluan)
  • Upgrade Go to 1.26. (#5361 by @deluan)
  • Enable native libwebp encoding in the Docker image. (#5350 by @deluan)
  • Update TagLib to 2.3. (e55a35544 by @deluan)

Translations

  • Add Estonian translation. (725f6ab34 by @deluan)
  • Update Indonesian translations from POEditor. (#5575 by @deluan)
  • Update Spanish translations and add missing gain keys. (#5433 by @danielbanariba)
  • Update Basque localisation. (#5364 by @xabirequejo)

Installer type: wix

Architecture Scope Download SHA256
x86 Download 32120573A2A5AA49E68CDC40D80AAC183CB0CC94D7BA6F50C90E2D1377BE260E
x64 Download 70EE7FF006D946DC78D25264853F9CEBD953E05DEEF998B0003260034B1B7DC7

Details

Homepage
https://github.com/navidrome/navidrome
License
GPL-3.0
Publisher
Navidrome
Support
https://github.com/navidrome/navidrome/issues

Tags

airsonicmadsonicmedia-servermusicmusic-servernavidromeopensubsonicraspberry-piself-hostedstreamerstreaming-apistreaming-audiosubsonicsubsonic-server

Older versions (17)

0.61.2
Architecture Scope Download SHA256
x86 Download F592E806511D585DDC95832CC3087F9DB63D2CDBCBBB08EC2CAEB3DD16B35480
x64 Download 637B6D95465D4AEA523A75500AE05ECFD11A6AFF2C180F6042A865C9DD59766D
0.61.1
Architecture Scope Download SHA256
x86 Download 9283CAA45E25E74F451922DE25F95BCE22787FE778CB29AB67D576AE7394EA49
x64 Download 74A730AA8F9D85A6C1A72503855D7BA6A863348C0E8589081EF28B447B9FDD0A
0.61.0
Architecture Scope Download SHA256
x86 Download F645A0201D7E38A80D76E4805CAFA2783F238509F3C1CE5DB53A59754F1F97AD
x64 Download D7E0D9018EFFE4CC824816E280E0BA1328F4BBCA4970D983F672B215FA4106F9
0.60.3
Architecture Scope Download SHA256
x86 Download 63E15791C97CCF4186AEB1E5812441D49CD1ADB859FB87B135F41EE618E4B0F3
x64 Download AC9415FA621603F96CB38AAD487F555C794D0C62252D5492BF2B4288FD9B3919
0.60.2
Architecture Scope Download SHA256
x86 Download 7D99DB687F937687B5B8ADCD7ED8B5FFB1B8E5C05C24FE9183899301C80104BD
x64 Download 9CE5B3FA359B4E46D689697BB30AF12C8873FB6127790EE5633CC1AB9B691E3B
0.60.0
Architecture Scope Download SHA256
x86 Download 50DD0AAE926015B8F975804805354F4CAE9CBEFD874C24C7606B6AAE00A3AC7B
x64 Download DA43C6FA10BC7F3934ECC7DB36237DB455EF941A328AC6BA647B4BDFCC555EE9
0.59.0
Architecture Scope Download SHA256
x86 Download 2FFE530EB59691C93A6F753F8FF757A3924B696EF86E686D5FC37DBC5CCBCDD5
x64 Download 8E6283FEDBFEF05DC73F621C5E86B30C9881B19367148EA34DADDA2EA06F3EA5
0.58.5
Architecture Scope Download SHA256
x86 Download 51A7FDF7A9A7A39D842388AD53B4AEEF5B5386385B3F08D1E698C14B99065BBD
x64 Download 55BA580F62D0F78FEAC98E8B978142C2D28966837014AE61DAAA040CDB6B57BE
0.58.0
Architecture Scope Download SHA256
x86 Download C160717983E43A2F71CDDDCA0C6B088A358B8BC472F5E867CC86CE59EA69EFED
x64 Download 0391306082A34421F9D6082B604DA96E2686A0D513ECAE9858190ADE5DBA4B2F
0.57.0
Architecture Scope Download SHA256
x86 Download 4EC787B47EF74341DFA6BF15A1A6E43910EBEAE197BA1AE5EB8CA0F850E379E2
x64 Download 24306F69405A3B0CF525827D76C6D63C9A6EA71C7B8087FCD5B5EBCDC03005C6
0.56.1
Architecture Scope Download SHA256
x86 Download 07C1528FCEB71CC65A78AA42A194864FFFD0606DCAA5280C327216EE778F0822
x64 Download 19A7471E14F8BBD476D1A362BFE9CA0DFD1CACD8454CBF8DADE6D371EB17DF31
0.56.0
Architecture Scope Download SHA256
x86 Download 6A8ACB86D977E1BB672D08DBFAFD865087D2B34106B8F4A4534E9E0B5645CB00
x64 Download 2C66D3CFBF0B67520C6150E8355AF4FE052D59B63066D4D8D600F1C722E56178
0.55.2
Architecture Scope Download SHA256
x86 Download 9D2C4C06909D42CB396D68F26363F732F2E481375FD2A4B27E3B024CB2DBF43A
x64 Download 9B22AF70E077062B1F56686C02219637CE9E7CD6D340FFDCA443A46AE2DA2876
0.55.1
Architecture Scope Download SHA256
x86 Download FB20268B9AC8F339D1B593149171BA471A7A1C288D56C2BFC2BA93FB5692C372
x64 Download F7FE9BE5733E7F2D5C42E97729582A436F171CF590BC31647694B1ED48DD3FF3
0.54.4
Architecture Scope Download SHA256
x86 Download 10FE918F106810838FAF017B17FD67E0BE6ECA1F548F2ED57ACEF93AFCEA6CD2
x64 Download 6A8D0D2CEC06ED90372ED9D3744B54ED8C3EE820E319CB0366F3311A0EDF7546
0.54.2
Architecture Scope Download SHA256
x86 Download 8C2D93DF9589F2940F84B2E609F5A2FF4F8CE3A76D4DFE3C974432BEA20FEFD6
x64 Download E0D06CB660306040A82B32CB5ED886150C766D12EBFAA95BA7472E4834E31E3B
0.49.3
Architecture Scope Download SHA256
x64 Download A5759E0CE32FD10DCDE98EE2882C3A45C3283EE03FC56F3B5EC5C28321466AE3
x86 Download 45BD8AD8E4A027844A62D22E49C3037F9107E594AA11F239FE6E838EC8693B92