v0.55.0
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 settingPID.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 toScanner.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. UseTags.genre.Split
instead. Check the Custom Tags documentation for more information.Scanner.GroupAlbumReleases
was removed. UsePID.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
- Backup Database: Before upgrading, create a backup of your current Navidrome database.
- Stop Navidrome: Ensure Navidrome is not running before proceeding.
- Replace Binary: Download and replace the existing Navidrome binary with the latest version (0.55.0).
If using docker, pull thelatest
image. - 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 withTag.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
Bug fixes
- 36ed880: fix(scanner): always refresh folder image time when adding first image (#3764) (@kgarner7)
- d4147c2: fix(scanner): improve refresh artists stats query (@deluan)
- 9d86f63: fix(server): add logs to public image endpoint (@deluan)
- 8732fc7: fix(server): change log level for some unimportant messages (@deluan)
- 365df52: fix(server) C4BF : db migration not working when MusicFolder is a relative path (#3766) (@deluan)
- 15a3d2c: fix(server): disallow search engine crawlers in robots.txt (@deluan)
- 47e3fdb: fix(server): do not try to validate credentials if the request is canceled (#3650) (@deluan)
- 0c4c223: fix(server): import absolute paths in m3u (#3756) (@deluan)
- 0372339: fix(server): only build core.Agents once (@deluan)
- 1468a56: fix(server): reduce SQLite "database busy" errors (#3760) (@deluan)
- a041676: fix(server): remove misleading "Agent not available" warning. (@deluan)
- 5ad9f54: fix(server): role filters in Smart Playlists. (@deluan)
- 20297c2: fix(server): send artist mbids when scrobbling to ListenBrainz (@deluan)
- d6ec52b: fix(subsonic): check errors before setting headers for getCoverArt (@deluan)
- ee18489: fix(subsonic): don't return empty disctitles for a single disc album (@deluan)
- 98a6819: fix(ui): disable bulk action buttons if transcoding edit is disabled (@deluan)
- 70487a0: fix(ui): paginate albums in artist page when needed (@deluan)
- dd4802c: fix(ui): remove unused term (@deluan)
- 1c192d8: fix(ui): replace bulk "delete" label with "remove" in playlists (@deluan)
- 6cc95d5: fix(ui): update Basque translation (#3666) (@xabirequejo)
- 3892f70: fix(ui): update Deutsch, Español, Euskara, Galego, Bahasa Indonesia, 日本語, Português, Pусский, Türkçe translations from POEditor (#3681) (@deluan)
- 195ae56: fix(ui): Update Russian translation (#3678) (@mstefarov)
- b2b5c00: fix(ui): update Finnish, Hungarian, Russian, Ukrainian translations from POEditor (#3780) (@deluan)
- 46a963a: fix(ui): update Spanish translation (#3682) (@RTapeLoadingError)
- f9db449: fix(ui): update ไทย translations from POEditor (#3662) (@deluan)
- e467e32: fix(ui): updated Hungarian translation for BFR (#3773) (@ChekeredList71)
- 657fe11: fix: remove
Access-Control-Allow-Origin
. closes #3660 (@deluan)
Build process updates
Other work
- fac01cc: chore(deps): bump Go dependencies (@deluan)
- 2171c44: chore(deps): bump JS dependencies (@deluan)
- a1a6047: chore(deps): bump Vite version (@deluan)
- efed7f1: chore(deps): bump go dependencies (@deluan)
- 0d42b9a: chore(deps): bump more JS dependencies (@deluan)
- 5fa19f9: chore(server): add logs to begin/end transaction (@deluan)
- efab198: test(server): validate play tracker participants, scrobble buffer (#3752) (@kgarner7)
Full Changelog: v0.54.4...v0.55.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.