chore(deps): update ghcr.io/foxxmd/multi-scrobbler docker tag to v0.12.0#157
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
chore(deps): update ghcr.io/foxxmd/multi-scrobbler docker tag to v0.12.0#157renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
4a62396 to
837dfb3
Compare
837dfb3 to
ed28f39
Compare
ed28f39 to
354d2e1
Compare
354d2e1 to
0ecdbdc
Compare
0ecdbdc to
0ebbf24
Compare
0ebbf24 to
1b8e956
Compare
1b8e956 to
29a7ea8
Compare
29a7ea8 to
1140444
Compare
1140444 to
b65fb81
Compare
b65fb81 to
90bf152
Compare
90bf152 to
e7001be
Compare
e7001be to
3030545
Compare
3030545 to
4bed3c9
Compare
4bed3c9 to
f71b560
Compare
f71b560 to
e128394
Compare
e128394 to
2433f95
Compare
2433f95 to
9374f11
Compare
9374f11 to
ec59c16
Compare
ec59c16 to
1dba739
Compare
1dba739 to
1b77728
Compare
1b77728 to
47d677b
Compare
47d677b to
fa4e071
Compare
fa4e071 to
c8ccff9
Compare
c8ccff9 to
5aa346c
Compare
5aa346c to
baf32e4
Compare
baf32e4 to
35b25f8
Compare
35b25f8 to
70d493a
Compare
70d493a to
aada909
Compare
aada909 to
f695d6f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.8.8→0.12.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
FoxxMD/multi-scrobbler (ghcr.io/foxxmd/multi-scrobbler)
v0.12.0Compare Source
What's New?
Overhauled Historical Scrobble Matching
MS was originally built with only real-time scrobbling as a design goal so the logic behind "check if this track-to-be-scrobbled already exists for Scrobbler X" only extended as far as checking scrobbles MS had already seen, or the first page of scrobbles returned from the scrobbler's API. MS has long since evolved beyond these (6 year old) goals but the existing scrobble logic had stayed mostly the same which means many users have had problems with MS when it comes to scrobbling old scrobbles that don't conform to this real-time assumption.
Now, ~3000 changed lines later and thanks to testing from @4rft5 , this logic has been completely overhauled to enable arbitrary time-range checks for any historical scrobbles: allowing MS to scrobble everything with the assurance they won't be duplicated, regardless of when they were scrobbled.
Note: This is a fully internal, functional change that does not require any changes in configuration or behavior from you, the user.
Some caveats that will be improved in future releases:
This change also paves the way for bulk scrobble migrations between clients. Be on the lookout for this in a future release ;)
Improved Support for File/AIO Config in Documentation
File and AIO Configuration for every Source/Client, on the documentation website, has been improved with new tools:
These same tools are available on the Config Playground for general AIO editing and exploration.
Breaking Changes
Koito Support in Listenbrainz Client
The Listenbrainz Client previously has partial support for scrobbling to Koito instances due to a partially compatible listenbrainz api. The new historical scrobble logic makes this support impossible so this support has been fully removed.
If you are still using a LZ client for interacting with a Koito instance you need to migrate your configuration to use the official Koito Client configuration.
This does not affect users already using the Koito client.
Spotify Premium
As of March 9th 2026 Spotify no longer allows Spotify Developer Apps to be owned by a non-premium account.
If you have a non-premium account in this scenario you will likely experience 403 errors the next time your authentication needs to be refreshed.
Note that non-premium accounts can still use MS but you need to re-create an app that is owned by a premium account, first. See the Premium Account Required expandable section in the Spotify Source docs for instructions on how to implement this workaround.
Full Changelog
⛰️ Features
🐛 Bug Fixes
guidfield @owendaprile📚 Documentation
🚜 Refactor
⚙️ Miscellaneous Tasks
v0.11.5Compare Source
What's New?
Discord Rich Presence
MS now supports using Discord Rich Presence for Now Playing functionality.
This means that any Source that reports Now Playing or a real-time player, can be used to update your Discord status with a "Listening to..." activity 🎉
There are two types of Discord integrations to choose from:
Check out the parent Discord docs page to get an overview of the differences between these integrations.
Upstream Service Status Page
There is now a status page for monitoring the reachability of public services used by some Sources/Clients is available at
https://status.multi-scrobbler.app
This monitor runs on a VPS and checks the uptime of actual APIs for these services, not just landing pages. On a ~minute interval it checks:
The idea is that this monitor can help you check if external service communication issues are internet-wide or if maybe the issue is in your network.
Full Changelog
⛰️ Features
🐛 Bug Fixes
📚 Documentation
v0.11.4Compare Source
What's New?
v0.11.3Compare Source
What's New?
Deezer Improvements
Errors in parsing Deezer history have been fixed thanks to @Ectalite graciously sharing Deezer access to restart stalled development.
Additionally, the Deezer Source now supports scrobbling for a child account when the main account is the owner of a Family Plan.
Jellyfin Config Changes
The
allowUnknownFile Config property has been deprecated and will be removed in a future release.It has been replaced by the
allowMediaTypeslist, which enables more granular control over what types of media can be scrobbled. The list should be one or more of the official media types listed in the jellyfin sdk. The undocumentedMusicVideotype is also supported.If you were using
"allowUnknown": true, replace it with the below property in yourjellyfin.jsonconfig:{ "allowMediaTypes": ["audio","unknown"] }This setting is also now available as an ENV of comma-separated media types.
Changelog
⛰️ Features
🐛 Bug Fixes
allowUnknownis true #445allowedMediaTypesfor NowPlayingItem check #445📚 Documentation
⚙️ Miscellaneous Tasks
v0.11.2Compare Source
What's New?
Debugging Plays and Help
Plays found in the Source "Tracks Discovered" and Client "Scrobbled/Failed" lists now include a Debug button that, when clicked, copies a json object with data that can be used for troubleshooting issues with multi-scrobbler.
At this stage the data is purely for me to help debug user issues. It should make reproduction of issues much easier and will provide insight into stage modifications. In the future the UI will include a Diff tool to help visualize Play changes over time for self-help.
Check the new Help docs for how to use this debug information to most effectively create an issue for Multi-scrobbler.
Full Changelog
Features
Bug Fixes
Documentation
Refactor
v0.11.1Compare Source
What's New?
Sonos Source
Sonos devices are now supported as Sources. MS can monitor all devices in your Sonos network given any device's IP. MS supports multiple listening sessions based on device/zone.
Big thanks to @bkredell for the financial support that enabled me to purchase a speaker to do development with. Without this, the implementation would not have been possible.
ENV Config for all Sources
Previously, Sources that were also Clients could only be configured using File or AIO config. This was due to an old design decision that hasn't been relevant for quite some time. 0.11.1 removes this superficial limitation so that all Sources can be configured using ENV config. Explicitly, these Sources now have ENV config available:
Memory Optimizations
Several optimizations to reduce memory usage should result in 30-50% less memory used, after startup is finished.
Prometheus Metrics
Multi-scrobbler now exposes a prometheus metrics endpoint with these data points:
Musicbrainz Track Search and Plex
One of the MBIDs Plex can provide is a Track MBID, which is associated with a Recording and specific Release. 0.11.1 implements searching by this MBID (generically) and fixes parsing of this ID from plex. Sources that provide this can ensure that the exact album you want for a scrobble is used.
Note: Musicbrainz will not search by this id by default. You will need to use the
basicOrIdssearch method to leverage the Track MBID.Full Changelog
Features
Bug Fixes
Documentation
Refactor
Miscellaneous Tasks
v0.11.0Compare Source
What's New?
Libre.fm Source/Client
Mutli-scrobbler now supports Libre.fm as a Source and Client.
Additionally, if you are running your own Libre.fm instance there are options for defining your own instance as the endpoint.
Musicbrainz Search Improvements
When enhancing your scrobbles with Musicbrainz there are now 1) additional methods for searching and 2) an additional album sorting mechanism to bias matches towards the actual text from your original scrobble.
The order in which searches are executed has also been updated to be fully user-configurable. However, this is a breaking change if you previously had search-related file-config options (
fallback*) or are usingPRESETSENV. See Breaking Changes below for how to migrate.Breaking Changes
Musicbrainz Stage
If you are using the Musicbrainz Stage transformer with any of the following options then you will eventually need to update your config to maintain existing behavior:
fallbackAlbumSearchfallbackArtistSearchfallbackFreeTextSearchMB_PRESETSIf none of these apply to you no action is required.
If these do apply to you: your existing configuration WILL continue to work but these options have been deprecated and will be removed in a future release. You should still migrate as soon as convenient.
In v0.11.0 Musicbrainz uses a
searchOrderlist to define the order that search methods are run in. See the Search Methods docs section for more information.To migrate:
File Config
"fallbackAlbumSearch": truereplace with"searchOrder": ["album"]"fallbackArtistSearch": "native""searchOrder": ["artist"]"searchArtistMethod": "native"(ornaive)"fallbackFreeTextSearch": "true"replace with"searchOrder": ["freetext"]The directions above assume you are using each option by itself. If you are using more than one then simply combine replacements.
EX using both
fallbackFreeTextSearchandfallbackAlbumSearch, replace with"searchOrder": ["album", "freetext"]You will likely also want to add
isrcandbasicsearch methods to the front of yoursearchOrder, as this emulates the previous MB search behavior:ENV Config
MB_PRESETS=...adddefaultto beginning of your list IEMB_PRESETS=default,native,sensibleRemoved Deprecated Jellyfin Source
The old, webhook-based Jellyfin source has been deprecated since v0.8.4 (September 2024). It has not been in the documentation for well over a year. It has now been fully removed.
Removed Deprecated Plex/Tautulli Sources
The old webhook-based Plex and Tautulli (notification agent) Sources have been deprecated since v0.8.7 (October 2024). They have not been in the documentation for well over a year. They have now been fully removed.
Full Changelog
Features
Bug Fixes
Documentation
Miscellaneous Tasks
Testing
v0.10.8Compare Source
Changelog
Features
Bug Fixes
Documentation
Refactor
v0.10.7Compare Source
This release includes more accurate and granular Musicbrainz search, flow control for scrobble transformations, and secrets interpolation into config files.
What's New?
Flow Control for Scrobble Enhancements
Stages for enhancing your Scrobbles now support Flow Control, enabling you to configure how Scrobbles are transformed based on the outcome of a Stage. Three properties are added to Stage configuration:
onSuccess(defaultcontinue) - If the Stage successfully finishes processingonFailure(defaultstop) - If the Stage encounters an error while processing, or otherwise fails to achieve the transformation resultonSkip(defaultcontinue) - If the Stage does not process the Play data due to stage-levelwhenor other stage-specific skip conditionsThis enables more complex transformation scenarios like: only run Native Stage if Musicbrainz Stage fails to find a match.
More Musicbrainz Search Improvements
fallbackAlbumSearchSecrets Interpolation
Multi-scrobbler can now interpolate ENV values directly into any json config files using bracketed identifiers like
[[MY_SECRET]].This enables sensitive data to be removed from config files which should make using secrets injection platforms easier as well as committing configs to git safer.
Quickstart Musicbrainz
The Quickstart docs have been updated to include an optional step for setting up Musicbrainz via ENV.
Full Changelog
Features
Bug Fixes
Documentation
v0.10.6Compare Source
Bug Fixes
v0.10.5: - Musicbrainz MatchingCompare Source
What's New?
Scrobble Enhancements Overhaul
Scrobble Enhancements, previously known as Scrobble Modifications, have gone through a complete rewrite in order to support more types of modifications and future extensibility.
There are now three types of enhancements, now referred to as Stages:
If you were previously using Scrobble Modifications your existing configuration will work without any changes.
The overhaul also implements these new features:
Musicbrainz
The Musicbrainz Stage Configuration provides many ways to configure matching that should cover most usecases.
However, if you find your scrobbles are not matching or an option is not working as expected, please turn on Debug Mode to log more information about what/how multi-scrobbler is trying to match. If you open an issue, please include this log information.
Quickstart Improvements
The Quickstart have been updated to include Source setup for Navidrome, Plex, and Last.fm as a Source.
Full Changelog
Bug Fixes
Documentation
Features
Miscellaneous Tasks
Refactor
Testing
v0.10.4Compare Source
Bug Fixes
v0.10.3Compare Source
Bug Fixes
duration_msinstead ofdurationsince Rocksky ignoresdurationv0.10.2Compare Source
What's New?
teal.fm Scrobble Client/Source
teal.fm is a social discovery and web viewing service for scrobbles stored/available on the ATProto network/your repository in a PDS (Personal Data Server).
This release includes a Client and Source implementation for teal.fm. #378
The teal.fm website is still in development and does not have a public release yet but you can start scrobbling, now, and your data wil be ready to use when they launch publicly.
Rocksky Client Fixes and Source
A fix for the previously-released Rocksky client #391 is included, as well as a brand-new implementation for both the Client and a new Source.
Notable QoL Improvements
Documentation Overhaul
Some of you may have already noticed but the docs at foxxmd.github.io/multi-scrobbler have been reworked to improve readability and add more information:
docs/prefixFull Changelog
Bug Fixes
Documentation
Features
Miscellaneous Tasks
Refactor
Testing
v0.10.1Compare Source
What's New?
Rocksky Client
Rocksky, a music tracking and discovery platform built on the AT Protocol (Bluesky) has been added as a client to the docs. It uses a listenbrainz-compatible API so multi-scobbler users can set it up as a regular Listenbrainz Client with a custom URL.
A future release will see a Rocksky Source as well, so you can mirror scrobbles from your PDS to another service.
Full Changelog
Features
Bug Fixes
Documentation
Miscellaneous Tasks
Testing
v0.10.0Compare Source
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_DIRdirectory 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
400errors please switch to cookies instead.Full Changelog
Bug Fixes
Documentation
Features
Miscellaneous Tasks
Refactor
Testing
Build
v0.9.11Compare Source
What's New?
Maloja Source
Implemented Maloja as a Source 🎉 #295
All Clients can now also be used as Sources so you have full freedom to scrobble to any service with the ability to relay to any other service!
v0.9.10Compare Source
What's New?
recording_mbidin scrobble payload to fix missing metadata #333v0.9.9Compare Source
What's New?
This is a small release mainly for some bug fixes and documentation improvements.
Plex Source Temporary Fix
Plex 1.41.9.9912 introduced changes in their API that have not been accounted for in the underlying library multi-scrobbler uses to communicate with Plex. This causes issues in multi-scrobbler so this release merges a temporary fix for this error. No interaction is required to fix this error from the user side.
Another minor release will be cut once @lukehagar/plexjs merges the upstream fix for the API.
Intentional Scrobble Repeat Detection
Improvements to how multi-scrobbler tracks Sources that provide Player position data now prevents scrobbles from being detected as duplicates when they are intentionally repeated by the user. #328 #318
You can now keep that track on repeat to your heart's content knowing MS will scrobble all 20+ consecutive plays. I don't judge ❤️
Full Changelog
Bug Fixes
Documentation
Features
Refactor
v0.9.8Compare Source
What's New?
Koito Source/Client
v0.9.4 introduced Koito support using the existing Listenbrainz Source/Client.
Now, this release introduces full Source and Client implementations for Koito which enables bette
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.