What's New?
Persistent Queue/Failed Scrobbles
This release implements persisted data across multi-scrobble restarts. Initial support will be for Queued and Failed Scrobbles.
This means that MS will save any Plays that have not successfully been scrobbled to Clients. They will be restored when MS is restarted.
This functionality is enabled by default so no configuration changes are required. Scrobble data will be saved in the existing CONFIG_DIR
directory bound into the docker container.
Data can be persisted to file (default) or Valkey. See the docs for more information and configuration.
This is a non-breaking change but the app version has been bumped to signify major functionality updates.
Youtube Music Auth Issues
Google/YT seems to have permanently broken authentication using the Oauth client method for Youtube Music. However, cookie authentication is still working and a simpler process.
If you are using Oauth and encounter 400
errors please switch to cookies instead.
Full Changelog
Bug Fixes
- (jellyfin) Guard against undefined NowPlaying Path
- (lastfm) Remove VA from album artist #340
- (lastfm) Full destructure recent response and log respon on error #353
- (listenbrainz) Fix missing album/release_name for listenbrainz endpoint #342
- (No Category) Add additional logging for ytm history request #346 #345
- (No Category) Do not use transform until after client is ready #356
- (No Category) Add full coverage for cached queue updating during client lifecycle
- (No Category) Update object hashing function #358
Documentation
- (ytm) Add oauth warning #346 #345
- (No Category) Remove koito from listenbrainz example
- (No Category) Add caching docs
Features
- (lzendpoint) Accept artist and release artist names in submit payload
- (ui) Add Now Playing behavior for ui Player #338
- (webscrobbler) Use Now Playing Player #338
- (ytm) Add debug logging #346 #345
- (ytm) Allow user-defined oauth scopes #346 #345
- (No Category) Change stale/orphan interval to match current play duration for Players that only track Now Playing data #352
- (No Category) More artist parsing improvements
- (No Category) Improve artist string parsing
- (No Category) Add Access Token auth for Ntfy webhook #350
- (No Category) Implement caching backend
- (No Category) Implement cache file streaming with progress logging
Miscellaneous Tasks
- (No Category) Bump logging version
- (No Category) Update iti usage
- (No Category) Bump with-local-tmp-dir version
- (No Category) Remove unused object-hash package
Refactor
- (No Category) Refactor di cache to allow singleton or transient
Testing
- (ytm) Fix failing type assertion
- (No Category) Fix/workaround tests for new transformrule assumptions
- (No Category) Add scrobble client caching test
Build
- (vscode) Update devcontainer to use compose stack with valkey for caching integration
- (No Category) Move net-interceptor to dev packages