Skip to content

feat(container-image): update ghcr.io/foxxmd/multi-scrobbler ( 0.14.2 → 0.15.0 ) - #1523

Merged
ProfMoo merged 1 commit into
masterfrom
renovate/ghcr.io-foxxmd-multi-scrobbler-0.x
Aug 1, 2026
Merged

feat(container-image): update ghcr.io/foxxmd/multi-scrobbler ( 0.14.2 → 0.15.0 )#1523
ProfMoo merged 1 commit into
masterfrom
renovate/ghcr.io-foxxmd-multi-scrobbler-0.x

Conversation

@robottoms-up

@robottoms-up robottoms-up Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
ghcr.io/foxxmd/multi-scrobbler (source) minor 0.14.20.15.0

Release Notes

FoxxMD/multi-scrobbler (ghcr.io/foxxmd/multi-scrobbler)

v0.15.0

Compare Source

[!IMPORTANT]
Release 0.14.0 contained breaking changes and deprecations that have been removed in 0.15.0. Read the Upgrade Path docs and 0.14.0 Release Notes before upgrading from Multi-Scrobbler earlier than 0.14.0!

What's New?
Apple Music Source

Thanks to the efforts of @​Exerra , Apple Music is now implemented as a Source for Multi-Scrobbler!

Exerra, the primary developer of node-musickit-api, discovered that the API access required for MS to monitor listening activity only needs credentials that can be acquired from the browser of a logged in user. Critically, this bypasses the long-standing assumption that a paid apple developer account was required to access these APIs.

Exerra also contributed the entire Apple Music Source implementation to Multi-Scrobbler 👑 If you end up using this Source please consider sponsoring them as a thank you for all this hard work!

Improved Subsonic Playback Reporting

The OpenSubsonic API recently finalized a new spec for Playback Reporting that, when implemented by both the client and server, enables realtime player position reporting/states. This allows MS to track Subsonic players with the same level of accuracy as Spotfy, Jellyfin, and other first-class Sources!

Huge thanks to @​JannisPohle for the initial PR on cleaning up subsonic players ( #​640 ) but then stepping up to also implement this playback functionality ( #​590 ) 👑

As emphasized above, this new functionality requires that both the Subsonic server and the client you use to play music from that server both implement Playback Reporting. An informational tooltip in the UI Preview will indicate if enhanced reporting is available.

Data Directories Standardization

[!WARNING]
This is a breaking change that mainly affects local (Nodejs) installations.

If you are using a Docker installation with default volume mounting (...:/config) then you are not affected.

Previously, all persistent data was stored in the directory defined by the CONFIG_DIR ENV, or defaulted to {projectDir}/config.

Now, these locations are configurable by data type and fallback to OS-standard locations:

  • Configuration (config.json, jellyfin.json, etc...) uses CONFIG_DIR ENV or OS-standard locations like $XDG_CONFIG_HOME/multi-scrobbler
  • Data (ms.db, logs folder, stored credentials, etc...) uses DATA_DIR ENV or OS-standard locations like $XDG_DATA_HOME/multi-scrobbler
Upgrading

If you are using a Docker installation with default volume mounting to /config then no change is required. For backwards compatibility, the docker image installation defaults both of these ENVs to /config.

For users using the nodejs/local installation, you will likely want to explicitly set both ENVs for your start command. For instance, if you are currently storing everything in the config folder within the cloned repository and the working directory is also the repository folder then add these ENVs to the beginning of your command:

CONFIG_DIR=./config DATA_DIR=./config ... npm run start

See the Config and Data Directories section in the installation docs to find the OS-standard locations MS will use when these ENVs are not set.

Monitoring Behavior

[!WARNING]
This is a potentially breaking change that affects only Icecast and Azuracast users.

In preparation for wider usage, the feature known as "Should Scrobble Behavior" has been renamed to "Monitoring Behavior". The configuration naming has been changed to reflect this.

Upgrading

If you are an Icecast or Azuracast user who has systemScrobble in your File/AIO config options, rename this property to autoMonitor. The behavior for this property remains the same.

Example

Old:

[
  {
    "name": "Station 1",
    "id": "myIceStation1",
    "data": {
      "url": "http://myIcecast.com/radio"
    },
    "options": {
      "systemScrobble": true
    }
  }
]

New:

[
  {
    "name": "Station 1",
    "id": "myIceStation1",
    "data": {
      "url": "http://myIcecast.com/radio"
    },
    "options": {
      "autoMonitor": true
    }
  }
]
Config Improvements

[!WARNING]
Contains a breaking change that potentially affects User Stage Transforms and removes deprecated caching configuration from pre 0.14.0.

Internally, config has undergone a complete overhaul and is now entirely built using Zod. This is a huge improvement over the hacky typescript-types-to-json-schema generator that was being used because the config shape now fully dictates validation, rather than there being a reflection middle step. It additionally removes the ajv library and saves almost 30MB in the docker image when uncompressed.

With the overhaul, a simplification of the config reduced development complexity and made the config explorer in docs clearer, at the expensive of a few, potential breaking changes.

Upgrading
User Stage Transforms

If you have User Stage transforms and they do not already have a "type": "user" property, you need to now add this property or validation will throw an error.

Example

Previous User Transform config could be untyped like

    "options": {
      "playTransform": {
        "preCompare": [
            {
                "title": [
                    "badTerm",
                ]
            }
        ],
      }

Now, all user transforms must be typed like all other transforms or config parsing will throw an error:

    "options": {
      "playTransform": {
        "preCompare": [
            {
                "type": "user",
                "title": [
                    "badTerm",
                ]
            }
        ],
      }
Removed Deprecated Cache Config

Cache Configuration was simplified in 0.14.0 but using pre-0.14.0 configuration only caused a deprecation warning. Now, these deprecations have been removed and using the old configuration will cause an error.

Node Native Runtime

Multi-Scrobbler has been refactored to remove the dependency on tsx as the runtime. Now, MS uses Nodejs' type stripping so that it can directly run the source typescript files without needing the typescript runtime or any compilation steps.

This reduces packaging, tooling, and local run complexity:

  • environments do not need to rely on npm scripts for running MS
    • or needing to specify the tsx binary with node for commands
  • Improves process monitoring readability
  • Reduces memory usage since typescript does not need to be loaded into memory
  • Reduces disk space since typescript does not need to be installed to run in production
  • Tooling calls (mocha, vscode extensions) can directly use node without a shim

If you are currently running MS without using npm run start and have questions about how to migrate please open a discussion.

UI Preview Improvements

The New UI Preview introduced in 0.14.2 has seen several rounds of refinement thanks to user feedback. It is still in "read-only" mode for this release but the next release will begin to introduce write functionality. Check out the preview on your instance:

http://yourMsDomain/next

and share your feedback in the github issue!

Other Changelog Highlights
🐛 Bug Fixes
  • (client) Correct create/update timestamps for queues and scrobbles
  • (client) Correct SOT scrobble api requests to not have the same from/to value
  • (listenbrainz) Fix play fetch more indicator
  • (musicbrainz) Catch scenario where all search prereqs fail
  • (rocksky) Fix missing albumArtist field #​632
  • (ui) Stabilize play timeline item order
  • (mpd) Assign empty array if artists not defined #​621
  • (No Category) Fix play fetch options logging data for pageless functions
🧪 Testing
  • (No Category) Fix db error test using transient db
Changes Since RC1
⛰️ Features
  • (No Category) Reduce db write frequency when idle by buffering date updates #​653
🐛 Bug Fixes
  • (webscrobbler) Fix bad access of PlayerState #​650
  • (No Category) Fix missing logPath base dir argument
  • (No Category) Guard against tracks/track in mb recording medium #​649
📚 Documentation
  • (No Category) Add missing user type to user transform examples
  • (No Category) Clarify when activity is scrobbled

Configuration

📅 Schedule: (in timezone America/New_York)

  • 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 these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@robottoms-up

robottoms-up Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor Author
Kustomization diff
@@ spec.values.controllers.multi-scrobbler.containers.app.image.tag @@
# helm.toolkit.fluxcd.io/v2/HelmRelease/media/multi-scrobbler
! ± value change
- 0.14.2@sha256:b116e68f1937d5cb0edad0ff8d7af3a1eee56b979529e098fbc7c196adde5d39
+ 0.15.0@sha256:23a9620b1ae83e1dbba7168f0cf1ce65dc4ed125a029b5a004ec9fa0e83b5b93

HelmRelease diff
@@ spec.template.spec.containers.app.image @@
# apps/v1/Deployment/media/multi-scrobbler
! ± value change
- ghcr.io/foxxmd/multi-scrobbler:0.14.2@sha256:b116e68f1937d5cb0edad0ff8d7af3a1eee56b979529e098fbc7c196adde5d39
+ ghcr.io/foxxmd/multi-scrobbler:0.15.0@sha256:23a9620b1ae83e1dbba7168f0cf1ce65dc4ed125a029b5a004ec9fa0e83b5b93

Diff created by flateWorkflow run

@ProfMoo
ProfMoo merged commit b0bb2d3 into master Aug 1, 2026
5 checks passed
@ProfMoo
ProfMoo deleted the renovate/ghcr.io-foxxmd-multi-scrobbler-0.x branch August 1, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant