github navidrome/navidrome v0.47.0

latest releases: v0.51.1, v0.51.0, v0.50.2...
2 years ago

New in this release

First implementation of Smart Playlists
Smart Playlists can be created as a .NSP file and they will be imported the same way as .M3U files. Some examples are available in the GitHub issue. While I don't write a documentation page for this feature, please check the info in the issue (examples, list of fields and operators). Feel free to open an issue if you are having difficulties to use it.

Lyrics support (thanks @dheerajdlalwani / @chiraglulla)
Embedded lyrics are now supported by both the Subsonic API and in the UI. There's a limitation in the UI that it only works with synchronized lyrics for now, but the work with this feature is not complete and there's more things on the pipeline. Expect the following enhancements in future versions: support for external .LRC files, unsynchronized lyrics in the UI, grabbing lyrics from external services.

ListenBrainz scrobbling (thanks @srichter)
Same as with Last.fm, the user needs to link ListenBrainz to their account, by going to the Personal menu in the UI and enabling Scrobble to ListenBrainz.

Speaking of external integrations, if you don't want Navidrome to connect to any external service, you can now disable everything with just one config option: EnableExternalServices=false (default is true).

Thanks for all contributors who helped in this release.

Highlights

  • [UI] More improvements to the Artist Page (#1391). Thanks @Dnouv
  • [UI] Display synced lyrics in the UI if available (#1406). Thanks @chiraglulla
  • [UI] Allow changing playlist's owner
  • [UI] Add bulk action to make playlists private/public
  • [UI] Add links to artists from songs (only when artists have albums)
  • [UI] Fix default volume (#1395). Thanks @sparkhom
  • [UI] Fix translations on Windows
  • [UI] Fix Player incorrectly scrobbles tracks when unpaused (#1397). Thanks @srichter
  • [Server] Optimize Playlists operations
  • [Server] Speed-up a bunch of SQL queries
  • [Server] ListenBrainz support (#1424). Thanks @srichter
  • [Server] New config option to disable all external integrations (#102)
  • [Subsonic API] Add GetLyrics endpoint (#1379). Thanks @dheerajdlalwani
  • [Subsonic API] Don't send invalid artistIds

Changelog

8c7d95c Update Translations (#1471)
d4447e3 Fix sorting albums by year (should use name as secondary sort field).
3bd6f82 Rename ListenBrainz config flag and enable by default (#1443)
da26c5c Combined multiple appends into a single one (#1464)
023d7bf Remove link from songs to artist (when artist has no albums)
48a6278 Simplify prototype definition for taglib_read
91b470c Show artist link in Songs lists
1c82bf5 Remove non-album artist_ids from the DB
0d9dceb Fix playlist cannot be empty via Subsonic API
5994c31 Fix migration to support null values
804fb71 Show in the logs how long it took to startup
d3a2f76 Better logging of GetSimilar call
68a84ec Smarter cache of external info calls (last.fm / spotify)
9e48d87 Add a new index for album, to optimize the getAlbumList?type=alphabeticalByArtist Subsonic query
9712a5b Fix error codes for required parameters in getAlbumList
9422373 Optimize AlbumRepository.GetAll and add a GetAllWithoutGenres method specifically for Subsonic API, where multiple-genres are not required
bc8132e Bump @testing-library/user-event from 13.2.1 to 13.5.0 in /ui
82bc8cd Bump github.com/go-chi/httprate from 0.5.1 to 0.5.2
1e5ab59 Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5
28ad91a Bump github.com/Masterminds/squirrel from 1.5.0 to 1.5.1
e40e865 Bump github.com/microcosm-cc/bluemonday from 1.0.15 to 1.0.16
12818fb Make song/album/artist endpoints read-only
aaeaa3c Fix playlist filter
0539091 More info in scrobbling logs
6a87fc8 Ignores invalid timestamps in requests (use current time)
975986a Add bulk action to make playlists private/public
778f474 Use new rest lib (Update receives all columns that need to be updated)
b2acec0 When externals services are disabled, only disable UILoginBackgroundURL if it is not set by the user
e720233 Ignore empty lines in M3U files
8c2e4da Fix dateLoved in criteria. Now log invalid field names in criteria
a4d3bf4 Remove some duplicated code
765557d Remove "Show" button from PlaylistEdit view
86afd16 Allow changing playlist's owner. Relates to #698
133fed3 Add owner_id to playlist
84bbcdb Add artist image lightbox
1823159 New config to disable all external integrations. Closes #102
0b5ed9e Update ListenBrainz Portuguese translations
a56d5bc Listenbrainz scrobbling (#1424)
ccc871d Only reset player scrobbled state on track change or end (#1432)
d3e1422 Fix TypeError: Cannot read properties of undefined (reading 'length')
a42aeff Optimize queries by path, should speed up the scanner a bit
7cdbc04 Update caniuse-lite
f3fae7e Optimize basic media_file query, avoiding adding "group by" or joining with genres if not required
074732b Filter playlists by names and comments
66a9cbb Remove temp folders after tests
fa3471f Simplify resources code, enabling any resource to be overridden (not just translations)
9072412 Fix translations on Windows
cca3236 Use refetch when changing the playlist (as opposed to a full refresh)
85d4847 Add .mka file format. Only works with ffmpeg extractor
2183eb6 Should not allow changing sort order in Album songs view
ea435d0 Fix error on empty playlists. Simplify code for some operations
f645c47 Fix double escaped lyrics and comments
5e87280 Load playlist track genres
526b659 Remove duplication for loading tracks
5dce499 Fix/Optimized Playlist tracks deletion
fbd87ba Fix console error "Cannot convert undefined or null to object PlaylistsSubMenu"
63b5191 Fix lint
af00503 Optimize playlist updates
85185e3 Misc small changes (#1433)
83eaafc Add dateLoved Criteria field
93ce0b5 Fix Genre field and Contains/NotContains/StartsWith/EndsWith in Criteria (Smart Playlists)
47549ec Increase updatePlaylist chunk to 100 tracks
ed1ca65 Show hotkeys as chips, for easier reading
8d6b5f9 Speed up Subsonic GetPlaylist (by optimizing loadTracks)
76fdcd1 Tweak SimilarSongs algorithm to prioritize the requested main artist
18e1c16 Don't read the whole smart playlist file in memory
4bc4daa Improve git-vs-tarball detection (#1423)
cc1659a Better way to match top songs from external sources (Last.fm)
31c598d Fix drag-n-drop from a playlist, also fix useDrag memoization
2e2a647 Make SmartPlaylists read-only
d169f54 Rename hasCoverArt field in criteria
1494be9 Add playCount and playDate columns to album songs list
c73f64e Removed unused code
806b13c Update stats of Smart Playlist when it is created
2c860ed Don't import invalid .nsp files
6a550da Use new Criteria and remove SmartPlaylist struct
3972616 New Criteria API
d0ce030 Add PlayCount and PlayDate columns to PlaylistSongs
9473536 Include never played songs in the "not in the last" operator
2b57b98 Fix smart playlist refreshing only after the tracks were loaded
1a96e9f Import smart playlists (extension .nsp)
21da1df Cache smart playlist refreshes for 5 seconds
d21932b First version of SmartPlaylists being generated on demand
c72add5 Add methods to Playlist model
d200933 Reduce number of queries for some playlists operations.
943082e Fix time-based tests (again)
c3fb4e1 Fix rules serialization
9c8f779 Fix time-based tests
8156237 Load SmartPlaylists rules from DB
7221b49 More tests
cf8d08e Initial drafts for Smart Playlists
2a756ea Show external links on all resolutions but mobile
104679c Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'id')
5621551 Adds Lyrics Support to Subsonic API (#1379)
3214783 Remove double-retching playlist's tracks
34b01c2 Display lyrics on UI if synced lyrics present in metadata (#1406)
0d2a8f5 Enable new Artist Page by default
b7feddd Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'albumId')
1d742cf Artist page improvements (#1391)
7505b5c Bump GoLang to 1.17.2
174ad9e Fix ffmpeg bitrate parsing for flac files
ba0ee6a Rename manifest.json to manifest.webmanifest (#1399)
6b38aca Update README.md
ee8943f Fix semantic classes for currently playing song
86a87b4 Fix default volume (#1395)

Don't miss a new navidrome release

NewReleases is sending notifications on new releases.