🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
This release fixes a few bugs, most important one being the converting NULL to string is unsupported
happening for users that updated their DBs directly. This fix is implemented as a change to the DB during Navidrome's startup that can take a few minutes, depending on the size of your library, so please be patient with large libraries.
converting NULL to string is unsupported
errors in 0.51.0 (#2840). Thanks @caiocottssort_*
ID3 tagsindex.html
""
if not present.toSQL
⚠️ BREAKING CHANGE: This release removes the Last.fm shared API-key, as previously announced here. If you use any Last.fm functionality (scrobbling, biographies, album descriptions), please check the documentation on how to create your own API Key, it is free and should only take you a couple of minutes. NOTE: Remember to re-enable scrobbling after changing the API Key and restarting the server.
In this release we focused on support and compatibility with OpenSubsonic, increasing the overall user experience when using a compatible Subsonic client. Click here for the full list of what is implemented and what is missing for now.
NOTE: Even though this release does not force a full rescan, you should do it at your discretion, to import more tags available in the scanner, ex: structured lyrics.
PrefSortTags
option (#2696)UnixSocketPerm
(#2763)). Thanks @johannesenglinPlaylist/notInPlaylist
operators to Smart Playlists (#1884). Thanks @flyingOwlsearch3
endpoint. Syncs in offline clients (ex: Symfonium) will be faster now.navidrome inspect your_file.mp3
originalReleaseDate
in OpenSubsonic responses. (#2733)utils.Param*
with req.Params
req.Params
to replace utils.Param*
mapDates
return valuesdiodes
packageAlbumID3
in search3
resultstimeOffset
in /stream
endpointtools.go
OFFSET
when paginating (#2655)COUNT(DISTINCT primary_key)
with COUNT(*)
"COUNT(DISTINCT primary_key)
with COUNT(*)
ParamInt
generic (any int type)This release fixes a couple of bugs, most importantly authentication could be bypassed when the server had never been restarted after initial setup. More details are coming in a security advisory being prepared by @crazygolem, but if you can't promptly install this bug fix version, you can simply restart your server and you are clear.
Many thanks for @crazygolem for researching and finding this bug.
This release fixes a few bugs, most notably the scanner in Windows systems and the ARM docker image availability in Docker Hub.
genres
, bpm
, comment
, musicBrainzID
(#2597). Thanks @dweymouth and @caiocottsOne of the most requested features is finally available: Navidrome's Jukebox feature is a built-in functionality that allows users to play music directly to the server's audio. This essentially turns your server into a jukebox, enabling you to play songs or playlists remotely through a supported Subsonic client. See full documentation here. Can't thank enough @ms140569 for his dedication to this.
Another big feature is the support for disambiguating album editions by Original/Release Date, contributed by @certuna.
Very Important: This feature is controlled by the Scanner.GroupAlbumReleases config option. The default is false
, meaning split is the default behaviour. This has a side effect that Navidrome will think all albums are new, and they will lose their star/love information, as well as play counts. If you don't want this behaviour, set Scanner.GroupAlbumReleases
to true
before upgrading.
Now Navidrome supports HTTPS out of the box. You need to provide a certificate and key as options (See new ND_TLSCERT
/ND_TLSKEY
config options). One more thing: Now the Address
config option can specify a Unix socket file instead of a IP address. For that set Address
(or ND_ADDRESS
) to unix:/path/to/socket/file
.
A big thanks to @ms140569, @certuna, @kgarner7 and all contributors that participated in this release.
unsynced lyrics
(#2391). Thanks @BenzLeungunsynced lyrics
(#2391)format
target to MakefileGroupAlbumReleases
false by defaultwriteEvent
function.EnableDownloads
is false.There was a show stopper bug in 0.49.2, sorry about that. Also, the ReplayGain implementation is broken in Safari, and it was causing no audio to be played. In this release Safari should play normally as long as you don't turn ReplayGain on. This will be properly fixed and supported in Safari in a future release.
This release fixes the following issues:
This release fixes the following issues:
ffmpeg
path configurable (option FFmpegPath
), also finds it automatically in current folder (#1932)EnableArtworkPrecache
to control the usage of Image Cache Warmer. See discussion in #2142
getAlbumInfo
's imageURLscoverArt
ids. Helps with invalidating art cache client-side.This release fixes the following issues:
:
char #2137
It also adds a new config option to change max playlists shown in UI's sidebar, MaxSidebarPlaylists
.
See #2077
errgroup
:
. Fix #2137/share/img
endpointMaxSidebarPlaylists
. Fix #2077A new nice feature is the ability to generate a sharing link for a track/album/artist/playlist to send to friends, so that they can listen to the music without having an account on your Navidrome server. This is a nice alternative to YouTube links to share music. Sharing works from the UI and from Subsonic clients that support this feature.
NOTE: The sharing feature is complete but misses fine-grained permissions. Because of that it is disabled by default. If you want to give it a try, you can enable it by setting EnableSharing=true
in your config, or the environment var ND_ENABLESHARING=true
. Just remember that once enabled all users (not only admins) will have full permission to share and change existing shares.
Various issues with artwork were resolved in this release, including support for local artists images. Also, playlist covers are now generated as a tiled (2x2) image from the album covers (only supported in Subsonic clients for now). To learn more, see Artwork Resolution in the documentation.
You can now add your favorite Internet Radio streams to Navidrome and listen to them directly in the UI or in Subsonic clients that support this feature. Big thanks to @kgarner7 for implementing this.
As usual, a big thanks to all contributors who helped in this release.
shift-C
to go to current playing songDefaultUIVolume
config option. Fix #1679
ffmpeg
to extract images as a fallback. Should handle all filetypes with embedded images now. Fix #1492
navidrome pls
) to export playlists in M3U format #1914
EnableSharing
is set to true
)coverArt
to playlistsgetTopSongs
return starred and 5-star rated songs if ExternalServices
are disabledgetAlbumInfo
and getAlbumInfo2
endpoints. Thanks to @kgarner7SubsonicArtistParticipations
to show album participations under artists (ex: in Various Artists compilations)DevEnableShare
to EnableSharing
EnableExternalServices
is false. Fix #2022entry
collection in SharesexpireAt
update error/share
- DSub does not use the URL from the API response... :(updateShare
and deleteShare
Subsonic endpointsgetShares
and createShare
Subsonic endpointsuseTranscodingOptions
hookcontents
and description
to the DBartist.*
image in Artist folderconfig.lastFMEnabled
is false (#1935)DevFastAccessCoverArt
flagDevPreCacheAlbumArtwork
config optionmath/rand
and only use crypto/rand
id
attribute to Search boxes. Should fix #1998DefaultUIVolume
option. Closes #1679played
field to Subsonic API responses. Fix #1971This release is focused on fixing bugs and security issues. Also fixes a bunch of edge cases in Smart Playlists. Thanks to all contributors who helped in this release.
DefaultLanguage
#1561
ND_TRANSCODINGCACHESIZE
#1778
criteria
package//+build
tags, as the code does not compile on older versions of Go anymore/search
subsonic endpoints by parallelizing the queriesinterfacer
linter, as it does not work with Go 1.18 and will not be updated (it is deprecated)context
package