Versie 0.60 van Navidrome is uitgekomen. Navidrome is wat ze zelf noemen een personal streaming service, en is een opensource mediaserver die je persoonlijke muziekcollectie van overal benaderbaar kan maken. Het is snel, gebruikt weinig resources, heeft geen moeite met hele grote collecties en elke gebruiker kan zijn eigen playlists en favorieten aanmaken. Navidrome is compatibel met Subsonic, dus je hebt een grote keuze uit mediaspelers om naar de muziek te luisteren. Downloads en installatie-instructies zijn beschikbaar voor Docker, Windows, Linux, macOS en FreeBSD. In deze uitgave zijn de volgende veranderingen en verbeteringen aangebracht:
PluginsThis release introduces a major rewrite of the experimental Plugin System, now with multi-language PDK support, enabling developers to extend Navidrome's functionality using WebAssembly-based plugins written in Go, Rust, Python or JavaScript. Plugins run in a secure sandbox and can provide additional metadata sources, custom integrations, and server-side enhancements. Users can now easily configure plugins directly from the UI through a new JSONForms-based configuration interface. A couple of working plugins are already available:
For more plugins, keep an eye on the tag navidrome-plugins in GitHub. More details and instructions on how to use and manage plugins can be found in our documentation. New documentation will soon be added with details on how to create new plugins.
Metadata ExtractionAdditionally, this version includes a pure-Go metadata extractor built on top of the new
Instant Mixgo-tagliblibrary. This is a significant step toward removing the C++ TagLib dependency, which will simplify cross-platform builds and packaging in future releases. The new extractor is activated by default, but in case of any issues you can revert to the previous implementation by settingScanner.Extractor="legacy-taglib"configuration option.The Instant Mix feature generates a playlist of similar songs based on a selected track. By default, it retrieves similar songs from Last.fm (if configured with an API key) or falls back to Deezer. It can also be configured to use external plugins, like AudioMuse-AI for sonic analysis-based similarity recommendations.
New and Changed Configuration OptionsPlugin System Options
Option Default Description Plugins.EnabledtrueEnable/disable the plugin system Plugins.Folder""Path to the plugins directory. Default: $DataFolder/PluginsPlugins.CacheSize"200MB"Maximum cache size for storing compiled plugin WASM modules Plugins.AutoReloadfalseAutomatically detect new/changed/removed plugins Plugins.LogLevel""Override log level for plugin-related messages Subsonic API Options
Option Default Description Subsonic.MinimalClients""Comma-separated list of clients that receive reduced API responses (useful for resource-constrained devices like smartwatches) Subsonic.EnableAverageRatingtrueInclude average rating in API responses Metadata & Matching Options
Option Default Description SimilarSongsMatchThreshold85Minimum similarity score (0-100) for matching similar songs from external sources to local library LastFM.Language"en"Now supports comma-separated list of languages (e.g., "de,fr,en") for metadata fallbackDeezer.Language"en"Now supports comma-separated list of languages for metadata fallback Renamed Options (Deprecation Notice)
The following options have been renamed. The old names still work but will be removed in a future release:
Security
Old Name New Name HTTPSecurityHeaders.CustomFrameOptionsValueHTTPHeaders.FrameOptionsAdded
- Fix potential XSS vulnerability by sanitizing user-supplied data before rendering (GHSA-rh3r-8pxm-hg4w). (d7ec735)
- Fix potential DoS vulnerability in cover art upscaling by clamping requested square size to original dimensions (GHSA-hrr4-3wgr-68x3). (77367548)
Changed
- Plugins:
- Server:
- Add pure-Go metadata extractor (
go-taglib) as alternative to FFmpeg-based extraction. (#4902)- Add support for reading embedded images using the new taglib extractor by default. (66474fc)
- Add Instant Mix (song-based Similar Songs) functionality with MBID, ISRC and Title/Artist fuzzy matching. (#4919, #4946)
- Add support for multiple languages when fetching metadata from Last.fm and Deezer. (#4952)
- Add
Subsonic.MinimalClientsconfiguration option for improved compatibility with minimal Subsonic clients. Default list is"SubMusic"(#4850)- Add support for public/private playlists in NSP import. (c5447a6)
- Add RISCV64 builds. (#4949)
- UI Features:
- Subsonic API:
- Add
avgRatingfield from Subsonic spec. (#4900)- Insights:
Fixed
- Optimize cross-library move detection for single-library setups. (#4888)
- Improve Deezer artist search ranking. (a081569)
- Rename
HTTPSecurityHeaders.CustomFrameOptionsValuetoHTTPHeaders.FrameOptions. (7ccf44b)- Update translations: Bulgarian, Catalan, German, Greek, Spanish, Finnish, French, Galician, Indonesian, Dutch, Polish, Russian, Slovenian, Swedish, Thai by POEditor contributors.
- Update Spanish translations. (#4904)
- Update Basque translation. (#4815)
- Playlists:
- UI:
- Scanner:
- Fix
FullScanInProgressnot reflecting current scan request during interrupted scans. (8c80be5)- Fix "Expression tree is too large" error by executing GetFolderUpdateInfo in batches. (cde5992)
- Fix stale role associations when artist role changes. (2d7b716)
- Fix infinite recursion in PID configuration. (1c4a7e8)
- Fix default PIDs not being set for Album and Track. In some circumstances it could lead to empty PIDs (71f549a)
- Fix error when watcher detected too many folder changes, causing the scan to fail. (9ed309a)
- Show scan errors in the UI more consistently. (ebbc31f)
- Subsonic API:
- Server:
- Fix JWT-related errors being exposed on share page. (#4892)
- Fix user context not preserved in async NowPlaying dispatch. (396eee4)
- Fix environment variable configuration loading not being logged when no config file is found. (51ca2de)
- Fix items with no annotation not being included for
starred=falsefilter, handlehas_rating=false. (#4921)- Last.fm's
scrobbleandupdateNowPlayingmethods should send parameters in request body. (51026de)
