85 Commits

Author SHA1 Message Date
Deluan
79c8d2f368
When retrieving images from external sources, avoid calling it again if data is already cached locally.
Relates to https://github.com/navidrome/navidrome/issues/2130#issuecomment-1412742918
2026-01-02 20:22:03 +00:00
Deluan
b852091870
Add option to change max playlists shown in UI's sidebar, MaxSidebarPlaylists. Fix #2077 2026-01-02 20:22:03 +00:00
selfhoster1312
ee9212357e
Create accounts automatically when authenticating from HTTP header (#2087)
* Create accounts automatically when authenticating from HTTP header

* Disable password check when header auth is enabled

* Formatting

* Password change is valid when no password (old or new) is provided

* Test suite runs with header auth disabled (mock config)
Prevents nil pointer access (panic) while testing password validating logic

* Use a constant prefix for autogenerated passwords (header auth case)

* Add tests

* Add context to log messages

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:22:01 +00:00
Deluan
7fd0326b8c
Change public/share path to /share - DSub does not use the URL from the API response... :( 2026-01-02 20:21:59 +00:00
Deluan
b2aac87d1d
More work on Shares 2026-01-02 20:21:58 +00:00
Deluan
04abdf4509
Initial work on Shares 2026-01-02 20:21:58 +00:00
Deluan
de0ec25d2c
Fix resized image cache key 2026-01-02 20:21:18 +00:00
Kendall Garner
3242ae96b7
Get album info (when available) from Last.fm, add getAlbumInfo endpoint (#2061)
* lastfm album.getInfo, getAlbuminfo(2) endpoints

* ... for description and reduce not found log level

* address first comments

* return all images

* Update migration timestamp

* Handle a few edge cases

* Add CoverArtPriority option to retrieve albumart from external sources

* Make agents methods more descriptive

* Use Last.fm name consistently

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:21:18 +00:00
Deluan
f0b8274f83
PreCache artist images 2026-01-02 20:21:16 +00:00
Deluan
7d9de23f6c
Add local TopSongs 2026-01-02 20:21:16 +00:00
Deluan
aa5979c7ea
Add local agent, only for images 2026-01-02 20:21:16 +00:00
Deluan
9cf05a6b60
Moved logic of collapsing songs into albums to model package
(it should really be called domain.... maybe will rename it later)
2026-01-02 20:20:17 +00:00
gauth-fr
558c669252
Add global Downsampling feature (#1575)
* Add global downsampling feature

* Default to Opus &  consider player transcoder

* Add a test case for DefaultDownsamplingFormat

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:19:50 +00:00
Deluan
bac1a22a68
Host default login background images in Navidrome's own website 2026-01-02 20:17:21 +00:00
Zane van Iperen
cf0dcce818
Add AAC default transcoding (#2010) 2026-01-02 20:17:20 +00:00
Deluan
e90044164d
Add DefaultUIVolume option. Closes #1679 2026-01-02 20:16:00 +00:00
Deluan
f72d8d148b
Fix GO-S2114 security issue
See https://deepsource.io/directory/analyzers/go/issues/GO-S2114
2026-01-02 20:14:54 +00:00
Deluan
e6ba5a2229
Only compute version once 2026-01-02 20:14:54 +00:00
Deluan
e58aaf3f5d
Force correct mime-type for JS and CSS files 2026-01-02 20:11:58 +00:00
Deluan
61cac52148
Fix lint for public credentials 2026-01-02 20:11:57 +00:00
Deluan
0aff70f816
Smarter cache of external info calls (last.fm / spotify) 2026-01-02 20:09:30 +00:00
Deluan
268a910b7d
New config to disable all external integrations. Closes #102 2026-01-02 20:09:02 +00:00
Deluan
d09d874dbb
Simplify resources code, enabling any resource to be overridden (not just translations) 2026-01-02 20:09:01 +00:00
Deluan
fc3028d744
Add .mka file format. Only works with ffmpeg extractor 2026-01-02 20:09:01 +00:00
Deluan
e4bcb90672
Only import playlists from configured paths in option PlaylistsPath. Closes #1181
Syntax is Ant-style Globs, with support for '**' (any subfolder). Default: '.:**' (or '.;**' in Windows`, meaning all folders and subfolders under `MusicFolder`
2026-01-02 20:06:54 +00:00
caiocotts
4f35ec6dae
Use wchar_t for TagLib filenames on Windows (#1310)
* Use wchar_t for tagLib filenames on Windows

* Make TagLib default extractor for all platforms.

* Organize imports

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:06:33 +00:00
Deluan
1e5b6a3c54
Small refactorings 2026-01-02 20:06:09 +00:00
Deluan
dbac86e7ea
Log warning when artist has a MBID of Various Artists 2026-01-02 20:06:07 +00:00
Deluan
4e33add9f3
Refactor mime-types configuration 2026-01-02 20:05:08 +00:00
Deluan
5db24ff145
Send NowPlaying and Scrobbles to Last.fm 2026-01-02 20:05:04 +00:00
Deluan
c0c229ad72
Expose Last.fm's ApiKey to UI 2026-01-02 20:05:04 +00:00
Deluan Quintão
5590fa3550
Encrypt passwords in DB (#1187)
* Encode/Encrypt passwords in DB

* Only decrypts passwords if it is necessary

* Add tests for encryption functions
2026-01-02 20:04:16 +00:00
Deluan
8e32b56ea0
Only send events to clients who need it
- User events (star, rating, plays) only sent to same user
- Don't send to the client (browser window) that originated the event
2026-01-02 20:02:35 +00:00
Deluan Quintão
5be15bb98b
Refactor routing, changes API URLs (#1171)
* Make authentication part of the server, so it can be reused outside the Native API

This commit has broken tests after a rebase

* Serve frontend assets from `server`, and not from Native API

* Change Native API URL

* Fix auth tests

* Refactor server authentication

* Simplify authProvider, now subsonic token+salt comes from the server

* Don't send JWT token to UI when authenticated via Request Header

* Enable ReverseProxyWhitelist to be read from environment
2026-01-02 20:00:31 +00:00
Deluan
8fdab93efa
Always update artist info, even if info is fresh 2026-01-02 19:31:51 +00:00
Deluan
fd5a93f801
Replace default Login backgrounds with Navidrome's collection 2026-01-02 19:26:38 +00:00
Deluan
60e66ad6d6
Get lossless format list from server 2026-01-02 19:26:36 +00:00
Deluan
6bf02a6496
Login backgrounds from unsplash collection (#936) 2026-01-02 19:23:05 +00:00
Deluan
b3adc9844e
Move constant to consts.go file 2026-01-02 19:23:03 +00:00
Deluan
11ed6f2b9e
Add a cached http client 2026-01-02 19:21:27 +00:00
Deluan
10cf2372f8
Move project to Navidrome GitHub organization 2026-01-02 19:20:16 +00:00
Deluan
32f8cd7e11
Make ServerStart variable global 2026-01-02 19:20:12 +00:00
Deluan
62f7f184cc
Add artistImageUrl available in getArtists endpoint
Also cache artist info in the DB for 1 hour
2026-01-02 19:18:58 +00:00
Deluan
289cabf945
Change avatar placeholder to new logo 2026-01-02 19:17:32 +00:00
Deluan
61d0bd4729 Add support for WavPack files 2020-10-20 10:47:29 -04:00
Deluan
7a3bd935c2 Change default Opus transcoding format name to opus. Closes #521 2020-09-24 12:27:13 -04:00
Deluan
6c8535c54a Add support for reading webp artwork 2020-08-21 11:33:23 -04:00
Deluan
0403ec2a07 Use OS-independent path separators 2020-07-28 08:49:07 -04:00
Deluan
f28e8118dc Strip 'v' prefix from version, to make it consistent for release and snapshot 2020-07-21 20:22:23 -04:00
Deluan
fdc38b5ca5 Enable DSD (.dsf) support 2020-07-06 12:25:55 -04:00