Software-update: Navidrome 0.60.0
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:
AudioMuse-AI integrationListenBrainz Daily Playlist ImporterDiscord Rich Presence
AudioMuse-AI integrationListenBrainz Daily Playlist ImporterDiscord Rich PresenceFor 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 go-taglib library. 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 setting Scanner.Extractor="legacy-taglib" configuration option.
Instant MixThe 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 OptionsThe following options have been renamed. The old names still work but will be removed in a future release:
SecurityFix 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)
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)AddedPlugins:Add new WebAssembly-based plugin system with multi-language PDK support (Go, Rust, Python). (#4833)Add JSONForms-based plugin configuration UI. (#4911)Add similar songs retrieval functions to plugins API. (#4933)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.MinimalClients configuration 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:Add composer field to table views. (#4857)Add prompt before closing window if music is playing. (#4899)Add Nautiline-like theme. (#4909)Add multiline support and resizing for playlist comment input. (6fce30c)Subsonic API:Add avgRating field from Subsonic spec. (#4900)Insights:Add insights collection for Scanner.Extractor configuration to measure go-taglib usage. (63517e9)Add file suffix counting to insights. (0473c50)
Plugins:Add new WebAssembly-based plugin system with multi-language PDK support (Go, Rust, Python). (#4833)Add JSONForms-based plugin configuration UI. (#4911)Add similar songs retrieval functions to plugins API. (#4933)Add new WebAssembly-based plugin system with multi-language PDK support (Go, Rust, Python). (#4833)Add JSONForms-based plugin configuration UI. (#4911)Add similar songs retrieval functions to plugins API. (#4933)
Add new WebAssembly-based plugin system with multi-language PDK support (Go, Rust, Python). (#4833)Add JSONForms-based plugin configuration UI. (#4911)Add similar songs retrieval functions to plugins API. (#4933)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.MinimalClients configuration 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)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.MinimalClients configuration 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)
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.MinimalClients configuration 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:Add composer field to table views. (#4857)Add prompt before closing window if music is playing. (#4899)Add Nautiline-like theme. (#4909)Add multiline support and resizing for playlist comment input. (6fce30c)Add composer field to table views. (#4857)Add prompt before closing window if music is playing. (#4899)Add Nautiline-like theme. (#4909)Add multiline support and resizing for playlist comment input. (6fce30c)
Add composer field to table views. (#4857)Add prompt before closing window if music is playing. (#4899)Add Nautiline-like theme. (#4909)Add multiline support and resizing for playlist comment input. (6fce30c)Subsonic API:Add avgRating field from Subsonic spec. (#4900)Add avgRating field from Subsonic spec. (#4900)
Add avgRating field from Subsonic spec. (#4900)Insights:Add insights collection for Scanner.Extractor configuration to measure go-taglib usage. (63517e9)Add file suffix counting to insights. (0473c50)Add insights collection for Scanner.Extractor configuration to measure go-taglib usage. (63517e9)Add file suffix counting to insights. (0473c50)
Add insights collection for Scanner.Extractor configuration to measure go-taglib usage. (63517e9)Add file suffix counting to insights. (0473c50)ChangedOptimize cross-library move detection for single-library setups. (#4888)Improve Deezer artist search ranking. (a081569)Rename HTTPSecurityHeaders.CustomFrameOptionsValue to HTTPHeaders.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)
Optimize cross-library move detection for single-library setups. (#4888)Improve Deezer artist search ranking. (a081569)Rename HTTPSecurityHeaders.CustomFrameOptionsValue to HTTPHeaders.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)FixedPlaylists:Fix M3U playlist import failing for paths with different UTF/Unicode representations (NFC/NFD normalization). (#4890)Fix playlist name sorting to be case-insensitive. (#4845)UI:Fix various UI issues and improve styling coherence. (#4910)Fix AMusic theme player buttons and delete button color. (#4797)Fix export missing files showing only first 1000 results. (017676c)Scanner:Fix FullScanInProgress not 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:Fix username parameter validation for getUser endpoint. (6ed6524)Fix getNowPlaying endpoint to always be enabled regardless of configuration. (603cccd)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=false filter, handle has_rating=false. (#4921)Last.fm's scrobble and updateNowPlaying methods should send parameters in request body. (51026de)
Playlists:Fix M3U playlist import failing for paths with different UTF/Unicode representations (NFC/NFD normalization). (#4890)Fix playlist name sorting to be case-insensitive. (#4845)Fix M3U playlist import failing for paths with different UTF/Unicode representations (NFC/NFD normalization). (#4890)Fix playlist name sorting to be case-insensitive. (#4845)
Fix M3U playlist import failing for paths with different UTF/Unicode representations (NFC/NFD normalization). (#4890)Fix playlist name sorting to be case-insensitive. (#4845)UI:Fix various UI issues and improve styling coherence. (#4910)Fix AMusic theme player buttons and delete button color. (#4797)Fix export missing files showing only first 1000 results. (017676c)Fix various UI issues and improve styling coherence. (#4910)Fix AMusic theme player buttons and delete button color. (#4797)Fix export missing files showing only first 1000 results. (017676c)
Fix various UI issues and improve styling coherence. (#4910)Fix AMusic theme player buttons and delete button color. (#4797)Fix export missing files showing only first 1000 results. (017676c)Scanner:Fix FullScanInProgress not 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)Fix FullScanInProgress not 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)
Fix FullScanInProgress not 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:Fix username parameter validation for getUser endpoint. (6ed6524)Fix getNowPlaying endpoint to always be enabled regardless of configuration. (603cccd)Fix username parameter validation for getUser endpoint. (6ed6524)Fix getNowPlaying endpoint to always be enabled regardless of configuration. (603cccd)
Fix username parameter validation for getUser endpoint. (6ed6524)Fix getNowPlaying endpoint to always be enabled regardless of configuration. (603cccd)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=false filter, handle has_rating=false. (#4921)Last.fm's scrobble and updateNowPlaying methods should send parameters in request body. (51026de)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=false filter, handle has_rating=false. (#4921)Last.fm's scrobble and updateNowPlaying methods should send parameters in request body. (51026de)
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=false filter, handle has_rating=false. (#4921)Last.fm's scrobble and updateNowPlaying methods should send parameters in request body. (51026de)
Source:
Tweakers.net