Artists with the same name stop sharing a library, every source keeps its own queue, and Kopuz can run without a window. Browser sign-in gains Firefox support, YouTube Music gets a new playback fallback, and replaying a finished song resets its progress properly.
Highlights
Artists keep their identity. Tracks, albums and photos now follow the artist ID supplied by their source. Same-name artists stay separate, YouTube credits follow their linked channels, and unlinked names are no longer split at commas or “feat.” (#715).
Every source keeps its queue. Switch between your folders and streaming services without losing what you queued. Returning restores that source's queue and position, and play counts stay tied to the correct source (#715).
A player without a window. The library, playback, downloads and integrations now live in a shared daemon core. The desktop app hosts it, or kopuzd runs it headlessly. Other clients and scripts can control the same session through gRPC (#656, #715).
Sign in with your own browser. YouTube Music, SoundCloud and Apple Music support Firefox, LibreWolf, Zen and Floorp alongside Chromium browsers. Sign-in defaults to your system browser and keeps using an isolated profile. Spotify playback still needs Chromium (9da3f20).
YouTube Music gets playback and recommendation updates. The visionOS client replaces the retired Android VR fallback, and a “Don't recommend” button lets you dislike songs you have not liked (#684, closes #671; #697).
Folders and settings get tidied up. Local libraries use the same source management as streaming services and scan at startup or when their folder lists change. Settings stay in TOML, while credentials and playback state live in the database. Unlocked settings beside a managed file save to settings.local.toml (#715).
Fixes
- Replaying a finished track resets progress in the player, MPRIS and
playerctl(#716). - Jellyfin uses modern authorization headers, fixing connections when legacy authentication is disabled (#709, closes #687).
- Spotify finds host browsers from inside Flatpak and can launch browsers installed as Flatpaks (#701).
- Remote covers follow the same resizing policy as local artwork, reducing oversized cached images (ccd41d1).
- Tag edits update artist credits and remove stale album associations. Artist pages report errors, long names get more room, and photo lookups stop flooding the grid with refreshes (#715).
- Source switching updates immediately, clears the previous cover and avoids database locking after a daemon restart (#715).
- Older settings responses no longer overwrite newer edits, and the latest volume is saved on exit (#656, #715).
What's Changed
- server/spotify: resolve the playback browser through the shared finder by @FormalSnake in #701
- feat: don't recommend functionality by @UMCEKO in #697
- i18n: add i18n keys for frontend flexibility by @UMCEKO in #703
- i18n: ambient and daemon mismatch keys by @UMCEKO in #704
- server: don't use legacy authentication for jellyfin Fix #687 by @N-T-Lock in #709
- daemon/session: Fix track progression not resetting when replaying it by @geeky-lynx in #716
- refactor: key artists by the id their source issued and tidy the library schema by @UMCEKO in #715
New Contributors
- @geeky-lynx made their first contribution in #716
Full Changelog: v0.17.0...v0.18.0