Skip to content

Releases: navidrome/navidrome

v0.58.0

28 Jul 18:59
9dbe0c1
Compare
Choose a tag to compare

Navidrome v0.58.0 Release Notes

Navidrome v0.58.0 introduces Multi-library Support, a major architectural enhancement that enables users to organize and manage multiple music collections with proper permission controls and complete UI integration. This long-requested feature allows you to create separate libraries for different music collections (e.g., personal music, family music, audiobooks) while maintaining proper access controls and data isolation.

For full documentation on how to use it, see the new Multi-library page in the documentation website.

⚠️ Important

Full Scan

Although this release does not force a full scan on upgrade, you should do it as soon as possible. This is because the multi-library changes affect the move/rename/retag detection and can potentially make you lose annotations (stars, playcounts, playlist references). During the full scan, it will duplicate all your albums, but that's expected. It will remove the duplicates at the end of the scan.

Database Migration Warning

This release includes database schema changes that are NOT reversible by simply downgrading to a previous version of Navidrome.

Before installing this version:

  1. BACKUP YOUR DATABASE - Create a complete backup of your navidrome.db file
  2. TEST ON A COPY FIRST - If possible, test this version on a copy of your data before upgrading your main installation

If you need to rollback:

  • Stop Navidrome
  • Restore your database backup
  • Reinstall the previous version

Added

Multi-Library Support

Create and manage multiple music libraries with separate music folders. (#4181 by @deluan)

  • Library-aware permission system: Users can be assigned access to specific libraries with proper data isolation.
  • Admin interface for library management: Complete CRUD operations for libraries including creation, editing, and deletion.
  • Library selector in UI: Users can switch between accessible libraries using the sidebar library selector.
  • Per-library statistics: Artist and tag statistics are now calculated per library with proper counting.
  • Cross-library playlist support: Playlists can contain songs from multiple libraries, filtered by user access.

UI Features

  • Hindi language translation: Complete Hindi language support for the user interface. (#4390 by @nerkoux)
  • Activity panel improvements: Reset activity panel error icon to normal state when clicked. (#4379 by @deluan)
  • Translation updates: Updated Polish translations. (#4384 by @deluan)
  • Translation updates: Updated Danish, German, Greek, Spanish, Finnish, French, Indonesian, Russian, Slovenian, Swedish, Turkish, Ukrainian translations. (#4326 by @deluan)
  • Translation updates: Updated Hungarian translations. (#4375 by @ChekeredList71 and #4291 by @ChekeredList71)
  • Translation updates: Updated Basque translation. (#4309 by @xabirequejo)

Plugin Features

  • Plugin scheduler enhancement: Add TimeNow function to SchedulerService for better plugin capabilities. (#4337 by @deluan)
  • Plugin insights: Add plugin and multi-library information to insights endpoint. (#4391 by @deluan)

API Features

  • Multi-library API support: All Subsonic endpoints now respect library permissions with proper filtering. (#4181 by @deluan)
  • Enhanced search capabilities: Search endpoints are library-aware and filter results by user access. (#4181 by @deluan)
  • Music folder endpoints: Return user-accessible libraries through music folder API. (#4181 by @deluan)

Changed

  • Agents logic streamlining: Remove unnecessary caching and streamline metadata agents logic. (#4298 by @deluan)
  • Dependency updates: Update Go dependencies to latest versions. (#6722af50e by @deluan)

Fixed

UI

  • Playlist menu interaction: Prevent disabled "Show in Playlist" menu item from triggering actions. (#4356 by @deluan)
  • Year display: Don't show year "0" in the interface. (#3c1e5603d by @deluan)
  • ReplayGain support: Fix replaygain for Artist Radio and Top Songs. (#4328 by @deluan)

Scanner

  • Apple Music playlists import: Fix playlist import for songs with accented characters. (#4385 by @deluan)
  • Foreign key constraint errors: Prevent errors in album participant insertion. (#4373 by @deluan)
  • Tag UpdateCounts errors: Prevent foreign key constraint errors in tag UpdateCounts. (#4370 by @deluan)
  • Custom tag configuration: Fix misleading custom tag split config log message. (#be83d6895 by @deluan)
  • Lyrics tag parsing: Properly handle both ID3 and aliased tags for lyrics. (#4310 by @kgarner7)
  • Cover art reading: Read cover art from DSF, WavPack files and fix WMA test. (#4296 by @kgarner7)

Server

  • URL path handling: Improve URL path handling in local storage for special characters. (#4378 by @deluan)
  • Dockerfile typo: Fix typo in Dockerfile. (#4363 by @emmmm)

Subsonic API

  • Genre search filtering: Only use genre tag when searching by genre. (#4361 by @kgarner7)

Plugins

  • Plugin warnings: Silence plugin warnings and folder creation when plugins disabled. (#4297 by @deluan)
  • Metrics reporting: Report metrics for all plugin types, not only MetadataAgents. (#4303 by @deluan)
  • Metrics improvements: Add metrics on callbacks and improve plugin method calling. (#4304 by @deluan)
  • Reverse proxy authentication: Don't log "no proxy IP found" when using Subsonic API in plugins with reverse proxy auth. (#4388 by @kgarner7)
  • Plugin initialization: Correct error handling in plugin initialization. (#4311 by @deluan)
  • Race condition prevention: Prevent race condition in plugin tests and manager registration. (#9fcc99633 and #adef0ea1e by @deluan)
  • Error handling enhancement: Enhance error handling in checkErr function. (#1166a0fab by @deluan)
  • Discord Rich Presence documentation: Fix README.md for Discord Rich Presence plugin. (#4387 by @Cristiandis)

Testing

  • MPV tests: Fix MPV tests on systems without /bin/bash installed. (#4302 by @tebriel)
  • Test cleanup: Suppress console.log output in eventStream test and general test cleanup. (#e8a3495c7 and #9f0059e13 by @deluan)

Code Quality

Read more

v0.57.0

01 Jul 16:47
4909232
Compare
Choose a tag to compare

A big thank you to all the contributors who made this release possible!

Added

  • UI Features:
    • Added "Artist Radio" and "Shuffle" options to the artist page. (#4186 by @deluan)
    • Added a "Play Artist's Top Songs" button. (#4204 by @deluan)
    • Added "Love" and "Rating" functionality to songs within a playlist view. (#4134 by @deluan)
    • New "Add to Playlist" dialog, with improved UX. (#4156 by @deluan)
    • Added a "Now Playing" panel for administrators to monitor active streams, with configurable EnableNowPlaying option (default true). (#4209, #4219 by @deluan)
    • Added a context menu option to "Show in Playlist". (#4139 by @deluan)
    • Added RecentlyAddedByModTime support for tracks. (#4046, #4279 by @deluan)
    • Added a configuration tab in the About dialog. (#4142 by @deluan)
  • Experimental Plugin Support: Added experimental support for plugins, allowing for greater extensibility and customization. See details in the PR description (#3998, #4260 by @deluan)
  • Scanner Accuracy: Implemented folder hashing for smarter and more accurate quick scans, significantly improving detection of library changes. (#4220 by @deluan)
  • MBID Search: Added functionality to search for albums, artists, and songs by their MusicBrainz ID (MBID). (#4286 by @deluan)
  • Smart Playlists:
    • Added support for sorting smart playlists by multiple fields. (#4214 by @deluan)
    • Added support for MBIDs in smart playlists. (4096760bd by @deluan)
  • Deezer Agent: Added a new agent to fetch artist images from the Deezer API. (#4180 by @bplaat)
  • API Features:
    • Added new endpoints to the native API for updating, clearing, and managing the play queue by index. (#4210, #4215 by @deluan)
    • Added main credit stat to reflect only album artist/artist credit. (#4268 by @kgarner7)
  • Monitoring: Added new Prometheus metrics to the Subsonic API and Plugins. (#4266 by @kgarner7)

Changed

  • Docker: Downgraded the Alpine base image in the Dockerfile to oldest supported version 3.19 for smaller images. (7928adb3d by @deluan)
  • Dependencies: Updated TagLib to version 2.1.1. (#4281 by @deluan)

Fixed

  • UI:
    • Fixed an issue where the playlist page was not resetting to page 1 when changing playlists. (#4154 by @strider-)
  • Scanner:
    • Ensured that full scans always update the database. (#4252 by @deluan)
    • Fixed an issue where artist statistics were not refreshing during quick scans. (#4269 by @deluan)
  • Server:
    • Fixed an issue to ensure a single play queue record is used per user. (f7e005a99 by @deluan)
    • Enhanced artist folder detection with directory traversal. (#4151 by @deluan)
  • Subsonic API:
    • Fixed an issue where clearing a playlist's comment and public status was not working. (#4258 by @deluan)
    • Fixed JukeboxRole logic in getUser to respect AdminOnly setting. (#4170 by @deluan)
    • Fixed loading lyrics from external files when the embedded lyrics was empty. (#4232 by @wilywyrm)
    • Fixed lyrics detection when the there are multiple instances of the same song. (#4237 by @kgarner7)
  • Database:
    • Fixed an issue where dangling music entries were not being cleared after upgrading to recent versions (0.55+). (#4262 by @deluan)
    • Allow for nullable ReplayGain values. (#4239 by @kgarner7)
    • Auto clean-up annotation table when removing user. (#4211 by @kgarner7)
  • Jukebox: Fixed issues with mpv command and template parsing, and ensured the MusicFolder is included. (#4162 by @deluan, #4067 by @patso23)

Note: For those waiting for the Multi-Library feature, it is still in progress and will be released in the next version. You can follow its development in the Multi-Library PR. It is a complex feature that requires significant changes to the codebase, so it's taking a bit longer than expected. Thank you for your patience and continuous support!

New Contributors

Full Changelog: v0.56.1...v0.57.0

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.56.1

29 May 19:09
Compare
Choose a tag to compare

Changelog

Quick fix for Artists not showing up in Subsonic clients, See #4140

Bug fixes

Full Changelog: v0.56.0...v0.56.1

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

Changelog

Bug fixes

Full Changelog: v0.56.0...v0.56.1

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.56.0

28 May 23:36
b19d5f0
Compare
Choose a tag to compare

We're excited to announce Navidrome v0.56.0, a major release packed with new features, important bug fixes, and significant improvements to the user experience. This release includes 81 commits with contributions from our amazing community!

πŸ”’ SECURITY UPDATES

  • SQL Injection Prevention: Fixed potential SQL injection vulnerability in artist role filtering. CVE will be published soon - @4rdr / @caiocotts (Advisory)
  • Transcoding Security: Transcoding configuration changes are now restricted to admin users only - @lujiefsi (#4096) (Advisory)

πŸŽ‰ Major New Features

Missing Files Management

  • Remove All Missing Files: New bulk action to clean up missing files from your library - @deluan (#4108)
  • Scanner.PurgeMissing Configuration: New config option to automatically purge missing files during scans - @deluan (#4107)
  • Missing Artists: Hide missing artists from the UI and Subsonic API, and add admin-only "missing" filters - @deluan (#4092)

Playlist Enhancements

  • M3U File Downloads & Unified Export Logic: Downloaded playlists now include M3U files for better compatibility with external players - @deluan
  • Playlist Cover Art: Playlists now display their cover art in the UI - @deluan
  • Save Queue to Playlist: Easily save your current playback queue as a new playlist - @deluan (#4110)

Enhanced User Interface

  • Smooth Image Transitions: Smooth transitions for album and artist artwork - @deluan (#4120)
  • Scan Progress & Status Improvements: Real-time scan progress, error reporting, and elapsed time - @deluan (#4094, #4115)
  • Sample Rate Display: View sample rate information in the song info dialog - @gqgs (#3960)
  • Genre and Mood Fields: Added genre and mood fields to the AlbumSongs component - @deluan
  • Internationalization Improvements: Updated translations for multiple languages

Scanner and Metadata Improvements

  • Filesystem Lyrics Support (only for Subsonic clients): Support for reading lyrics (.lrc) directly from filesystem files - @kgarner7 (#2897, #3997)
  • Symlink Support: New Scanner.FollowSymlinks option (default true)to allow disabling symbolic links following - @deluan (#4061)
  • ISRC Support: Added ISRC (International Standard Recording Code) support for OpenSubsonic - @deluan (#4088)
  • Artist/AlbumArtist Filtering: New filter options for media files - @kgarner7 (#4001)
  • Scanner Optimizations: Improved refresh performance and missing flag update logic - @deluan (#4059)

Other Notable Features

  • Default Share Expiration: New DefaultShareExpiration configuration option - @caiocotts (#4082)
  • Scrobble First Artist Only: New option Lastfm.ScrobbleFirstArtistOnly to send only the first artist when scrobbling - @deluan (#4131)

πŸ› Critical Bug Fixes

Performance and Memory

  • Memory Leak Fix: Resolved memory leak in cache warmer that could affect long-running instances - @deluan (#4095)

Database and Data Integrity

  • User Deletion Fix: Fixed issue preventing deletion of users who have shares - @kgarner7 (#4098)
  • Smart Playlist Fixes: Fixed numeric comparisons for float custom tags and albumtype handling - @deluan (#4116)

Media Handling

  • Multi-disc Artwork: Always select cover art from the first disc in multi-disc albums - @deluan (#3950)
  • AIFF/WMA Cover Art: Fixed cover art detection for AIFF and WMA files - @kgarner7 (#3996)
  • Track Ordering: Albums now always order tracks by disc and track number correctly - @deluan (#3975)

User Interface Fixes

  • Share Image Aspect: Fixed share image aspect ratios by forcing square dimensions - @kgarner7 (#4122)
  • UI Display Improvements: Enhanced external link display, artist link rendering, and button styles - @deluan
  • Page Titles: Updated titles for radios, shares and show pages - @deluan (#4128)

πŸ”§ Technical Improvements

Development and Build

  • Go 1.24.2: Updated to Go version 1.24.2 - @deluan
  • Dependency Updates: Updated both Go and JavaScript dependencies, including golangci-lint - @deluan (#3937)
  • Automated Dependency Updates: eslint-config-prettier and golangci-lint-action updates - @dependabot (#4077, #4035)
  • golangci-lint Integration: Added automatic installation and improved Makefile setup - @deluan
  • Demo URLs Update: Updated Makefile with new demo URLs - @caiocotts (#4080)

Code Quality

  • External Metadata Refactoring: Refactored external*metadata to external.Provider - *@deluan_ (#3903)
  • Documentation: Added code guidelines, copilot instructions, and scanner overview - @deluan
  • Cleanup: Removed unused files and improved code organization - @deluan

πŸ“š Documentation and Developer Experience

  • Documentation Updates: Added code guidelines, copilot instructions, and scanner overview - @deluan
  • Test Infrastructure: Enhanced test reliability and added new test coverage - @deluan

Full Changelog: v0.55.2...v0.56.0

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.55.2

05 Apr 12:07
a057a68
Compare
Choose a tag to compare

Bugfix release

A few more bug fixes and improvements.

Changelog

New Features

Bug fixes

Other work

Full Changelog: v0.55.1...v0.55.2

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.55.1

15 Mar 05:36
beb768c
Compare
Choose a tag to compare

Bugfix release

A bunch of bug fixes, and a couple of improvements.

Thanks you all for the feedback!

Changelog

New Features

Bug fixes

Documentation updates

  • 98808e4: docs(scanner): clarifies the purpose of the mappings.yaml file for regular users (@deluan)

Other work

Full Changelog: v0.55.0...v0.55.1

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.55.0

09 Mar 23:32
365df52
Compare
Choose a tag to compare

Navidrome 0.55.0 - Big Refactor (BFR) Release Notes

Overview

Navidrome 0.55.0 introduces the highly anticipated Big Refactor (BFR), significantly enhancing core functionalities,
and introducing robust new features. This release brings substantial improvements in handling file management and
metadata usage and customization.

New Features

  • Multiple Artists in Albums and Songs: Navidrome now supports albums and tracks with multiple artists, allowing
    users to group tracks with different artists under a single album. This feature enhances the organization of
    compilation albums and multi-artist collaborations.

  • Contributors and Performers: Composer, conductor, and other contributors can now be added to tracks, providing
    detailed information about the creators and performers involved in the music production process.

  • Album Versions: Support for ALBUMVERSION tag has been added, enabling users to differentiate between standard
    releases, deluxe editions, remasters, and other versions of the same album. This feature enhances album categorization
    and provides a more comprehensive music library experience.

  • Multi-valued Tags: Support for multi-valued tags has been improved, allowing users to store multiple values for
    any single tag. This feature enhances metadata flexibility and enables more detailed categorization.

  • Custom Tags: Support for user-defined custom tags has been added, allowing enhanced metadata flexibility and
    personalized categorization. Learn more.

  • Smart Playlists Enhancements: Smart Playlists supports all newly added tags, including multiple artists,
    contributors, performers, and album versions, as well as custom tags. It also behaves better with multi-valued tags.
    Learn more.

  • Persistent IDs: Tracks and albums now use persistent IDs (PIDs), ensuring stability in playlists, favorites,
    and external integrations, even if your files move or are renamed. PIDs can also be configured to change the way
    Navidrome disambiguates albums and tracks. It is now also possible to group albums by folder,
    bay setting PID.Album="folder". Learn more.

  • Scanner Improvements: Optimized file scanning, with improved handling of file moves and retagging, "watcher" mode
    for real-time updates, resumable scans and enhanced performance during library updates.

  • Improved Handling of Missing Files: Enhanced mechanisms for managing missing files ensure better accuracy and
    easier troubleshooting. Learn more.

  • Beginner-Friendly Tagging Guidelines: A comprehensive tagging guide has been introduced to assist new users in
    properly tagging their music collections. Learn more.

New configuration options

  • PID.Album
  • PID.Track
  • Scanner.Enabled
  • Scanner.Schedule
  • Scanner.WatcherWait
  • Scanner.ScanOnStartup
  • Subsonic.AppendSubtitle
  • Subsonic.ArtistParticipations
  • Subsonic.DefaultReportRealPath
  • Subsonic.LegacyClients
  • Tags

Check the Config Options documentation to learn more.

Deprecated/Changed configuration options:

  • ScanSchedule was renamed to Scanner.Schedule
  • Scanner.Extractor was removed. ffmpeg extractor is not supported anymore and Navidrome will now always use TagLib for metadata extraction.
  • Scanner.GenreSeparators was removed. Use Tags.genre.Split instead. Check the [Custom Tags][custom-tags] documentation for more information.
  • Scanner.GroupAlbumReleases was removed. Use PID.Album instead.

Check the Configuration Options documentation for
more information.

Breaking Changes

  • Artist favourites and artist ratings will be lost after the upgrade.
  • Albums may move around (change grouping), as the default disambiguation logic is slightly different than the previous version. If you want to keep the same behaviour as before, add this line to your configuration before upgrading:
PID.Album = "album_legacy"

or as env var

ND_PID_ALBUM=album_legacy

Upgrade Instructions

  1. Backup Database: Before upgrading, create a backup of your current Navidrome database.
  2. Stop Navidrome: Ensure Navidrome is not running before proceeding.
  3. Replace Binary: Download and replace the existing Navidrome binary with the latest version (0.55.0).
    If using docker, pull the latest image.
  4. Start Navidrome: Restart Navidrome to automatically migrate the database schema. The upgrade process
    will trigger a full scan of your library, which may take some time depending on the size of your collection. While
    this full scan is in progress, please avoid using Navidrome, as the data will be unstable until the process finishes.
    Please don't report any bugs until this full scan is complete (check the logs)

For detailed discussions and comprehensive insights into this update, refer to
our Big Refactor announcement and the original BFR Pull Request

We appreciate your ongoing support and feedback. Make sure you read the linked new documentation pages and enjoy the
enhanced Navidrome experience!

Changelog

New Features

  • c795bcf: feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) (@deluan)
  • 453873f: feat(insights): send scanner options (@deluan)
  • c37583f: feat(server): create M3Us from shares (#3652) (@deluan)
  • 21a5528: feat(server): deprecate Scanner.GroupAlbumReleases config option (@deluan)
  • 8ab2a11: feat(server): group Subsonic config options together (@deluan)
  • dc4e091: feat(server): make appending subtitle to song title configurable (@deluan)
  • 74348a3: feat(server): new option to set the default for ReportRealPath on new players (@deluan)
  • 637c909: feat(server): removed GenreSeparator, replaced with Tag.Genre.Split (@deluan)
  • de37e0f: feat(server): rename ScanSchedule conf to Scanner.Schedule, for consistency (@deluan)
  • f3cb85c: feat(server): warn users of ffmpeg extractor that it is not available anymore (@deluan)
  • 57d3be8: feat(subsonic): rename AppendSubtitle conf to Subsonic.AppendSubtitle, for consistency (@deluan)
  • 5869f7c: feat(subsonic): set sortName for OS AlbumList (#3776) (@kgarner7)
  • aee19e7: feat(ui): Improve Artist Album pagination (#3748) (@kgarner7)
  • f6eee65: feat(ui): Show performer subrole(s) where possible (#3747) (@kgarner7)
  • f34f15b: feat(ui): make need for refresh more visible when upgrading server (@deluan)
  • 31e003e: feat(ui): use webp for login backgrounds (@deluan)

Security updates

  • 09ae41a: sec(subsonic): authentication bypass in Subsonic API with non-existent username (@deluan)

Bug fixes

Read more

v0.54.5

21 Feb 01:10
Compare
Choose a tag to compare

This is an important security fix. Please update ASAP.

Security Advisory: GHSA-c3p4-vm8f-386p

Changelog

Security updates

  • 287079a: sec(subsonic): authentication bypass in Subsonic API with non-existent username (@deluan)

Full Changelog: v0.54.4...v0.54.5

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.54.4

15 Jan 03:26
73ccfbd
Compare
Choose a tag to compare

Changelog

New Features

Bug fixes

Other work

Full Changelog: v0.54.3...v0.54.4

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

v0.54.3

29 Dec 02:10
734eb30
Compare
Choose a tag to compare

Changelog

Bug fixes

Build process updates

  • 0bebd39: build(ci): use the head commit sha in PR versions (@deluan)

Other work

Full Changelog: v0.54.2...v0.54.3

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?