Skip Navigation

Navidrome 0.55.0 - Big Refactor (BFR) Release Notes

github.com Release v0.55.0 · navidrome/navidrome

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 rob...

Release v0.55.0 · navidrome/navidrome

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

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 documentation for more information.
  • Scanner.GroupAlbumReleases was removed. Use PID.Album instead.

Check the Configuration Options documentation for
more information.

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

LibreByte @lemmy.ml

Navidrome 0.55.0

3 0
9 comments
  • I thought we'd get the UI update at the same time. Sadly not. But congratulations to Deluan for such a massive update. That said, I'm not a fan of making it a minor update in terms of SemVer

    • Hmm, good point - I guess he didn't want to go to version 1.0 yet (I have no idea if 1.0 is on the roadmap or if it's another project that will forever stay as 0.x)

  • I have this in podman with autoupdate, so I'm already running the new version - logs says startup took 833 seconds, so be patient when it upgrades.

    I had to rename the ND_SCANSCHEDULE env var to ND_SCANNER_SCHEDULE (and restart again) but that was the only hitch for me.

    • I want to start using podman. Navidrome would probably be my first service. I would be very interested in seeing how you set it up. Have you shared it anywhere?

      • I've talked about my setup a little recently.

        Here's my quadlet file for Navidrome:

         
            
        [Unit]
        Description=Navidrome music server
        After=mnt-files.mount
        
        [Container]
        ContainerName=navidrome
        Image=docker.io/deluan/navidrome:latest
        AutoUpdate=registry
        User=1116:1116
        UserNS=nomap
        Network=navidrome.network
        PublishPort=4533:4533
        Environment=ND_LOGLEVEL=info
        Environment=ND_SCANNER_SCHEDULE=1h
        Environment=ND_BACKUP_PATH=/backup
        Environment=ND_BACKUP_SCHEDULE=@midnight
        Environment=ND_BACKUP_COUNT=7
        Environment=ND_SESSIONTIMEOUT=72h
        Environment=ND_BASEURL=""
        Environment=ND_COVERARTPRIORITY="coverart.*, cover.*, folder.*, front.*, embedded, external"
        Environment=ND_SPOTIFY_ID=aaaa
        Environment=ND_SPOTIFY_SECRET=bbbb
        Environment=ND_LASTFM_APIKEY=cccc
        Environment=ND_LASTFM_SECRET=dddd
        Volume=${HOME}/navidrome/data:/data:Z,U
        Volume=${HOME}/navidrome/backup:/backup:Z,U
        Volume=/mnt/files/music:/music:ro
        HealthCmd=wget -q -t1 --spider --proxy off localhost:4533 || exit 1
        
        [Service]
        Restart=always
        
        [Install]
        WantedBy=default.target
        
          

        There's bit going on here, as I've got lots of optional stuff set up.

        I don't use a config file if I don't want to/can't do config reloading, which is why there's loads of env vars - it's just easier to have everything in one file.

        Podman is running rootless, and Navidrome is running as UID 1116 within the container (and as 656476 on the host system as it's a subuid of the podman user). Same for GID.

        The Z,U bit on the volumes might need explaining - Z means apply a private SELinux label, U means set the volume's UID+GID on the host to match inside the container (after mapping to user namespaces, that is).

  • I am so excited for this release! That persistent ID work really helps me out.

9 comments