Skip to content

Releases: FoxxMD/multi-scrobbler

v0.9.11

20 Aug 13:26
Compare
Choose a tag to compare

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.10

01 Aug 12:52
Compare
Choose a tag to compare

What's New?

  • fix(listenbrainz): Improve MusicBrainz metadata parsing so more data is included in Play metadata
  • fix(koito): Send recording_mbid in scrobble payload to fix missing metadata #333

v0.9.9

28 Jul 14:14
Compare
Choose a tag to compare

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

  • (lastfm) Fix lastfm providing empty string for non-defined album #323
  • (listenbrainz) Fix sending undefined release_name in scrobble #323
  • (plex) Fix regression with allowing non-music when using librariesAllow
  • (plex) Temporary fix for library response validation #314
  • (No Category) Add last played data and check for repeat on new Play #318

Documentation

  • (No Category) Add Source client config guidance #325
  • (No Category) Update docusaurus to 3.8
  • (No Category) Fix social card image
  • (No Category) Add clarifying callout for multi-use components
  • (No Category) Remove koito mentions from LZ docs
  • (No Category) Update readme Koito entries
  • (No Category) Improve wording around Now Playing state

Features

  • (No Category) Track if play is a repeat and use in duplicate scrobble detection #318

Refactor

  • (No Category) Move Play position closeness and duration comparisons to own functions

0.9.8

14 Jul 14:36
Compare
Choose a tag to compare

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 better support/functionality for Koito configuration and any future features.

Thanks to all the feedback and testers in #300 !

Important

If you are currently using Koito with Listenbrainz Source/Client you DO NOT need to migrate. The existing LZ implementation will continue to support Koito.

It is still recommended to migrate as the LZ implementation has limited functionality for Koito and future releases will definitely add more functionality. Migrating is also easy! Just rename a few variables/fields and check your URL. See below:

Migrating

Instructions below based on which type of MS config you are using:

ENV Config

Rename LZ_ prefixed envs to KOITO_

File Config

Rename listenbrainz.json to koito.json. If you have additional non-koito listenbrainz client/sources then make sure to separate them into different files.

AIO Config

Rename "type": "listenbrainz" to "type": "koito"

Koito URL

Your existing URL config will continue to work as-is. However, I recommend that you change it to the Koito base url only as this will be easier for MS to work with. The "base url" is the same URL you would use to access Koito through a browser.

KOITO_URL MS Detected Base URL Example Scrobble Api URL
http://192.168.0.100:4110 http://192.168.0.100:4110 http://192.168.0.100:4110/apis/listenbrainz/1
https://koito.mydomain.com https://koito.mydomain.com https://koito.mydomain.com/apis/listenbrainz/1
http://192.168.0.100:4110/apis/listenbrainz http://192.168.0.100:4110 http://192.168.0.100:4110/apis/listenbrainz/1
http://192.168.0.100:80/koito http://192.168.0.100:80/koito http://192.168.0.100:80/koito/apis/listenbrainz/1

Docs Update

Docs have had a minor refresh. Some highlights:

  • Source/Clients sorted alphabetically for better readability
  • Removed outdated information in FAQ and on Flatpak sections
  • Fixed anchor scrolling
  • Added Koito to Quickstart clients
  • Added MPRIS guidance for Docker installs and remote socket instructions

Full Changelog

Features

  • (koito) Implement Koito client
  • (koito) Implement Koito Source
  • (listenbrainz) Add submission_client #224
  • (listenbrainz) Add additional player/service meta info for LZ scrobbles #224
  • (mpris) Better handling of socket error on connection check
  • (plex) Add libraries allow/block warning
  • (No Category) Add more logging to apprise errors #158
  • (No Category) Add RT Player metrics to player logging

Bug Fixes

  • (plex) Increase max drift to 35 seconds to account for symfonium lag #271
  • (plex) Strict comparison of library names #326
  • (No Category) Only return interpolated album value if not undefined
  • (No Category) Superagent type error false positive

Documentation

  • (mpris) Add remote socket guidance
  • (No Category) Add Koito quickstart instructions
  • (No Category) Add Koito client/source docs
  • (No Category) Update MPRIS instructions for docker
  • (No Category) Remove flatpak install guidance
  • (No Category) Update docker installation wording
  • (No Category) Sort Source/Clients alphabetically
  • (No Category) Remove old FAQ entries
  • (No Category) Add updating instructions
  • (No Category) Fix anchor scrolling by specifying logo height
  • (No Category) Hide navbar on scroll

Miscellaneous Tasks

  • (listenbrainz) Add guidance in logging to switch to Koito source/client
  • (No Category) Update superagent types

0.9.7

07 Jul 12:44
Compare
Choose a tag to compare

What's New?

Now Playing

Multi-scrobbler can now report the currently playing track (Now Playing) for scrobble services that support this functionality -- Last.fm and Listenbrainz.

This functionality is default enabled for all clients but can be configured globally through ENVs or individually per-client. Consult the docs to see how this functionality works and how it can be customized.

Thanks to @msparkles for the PR providing initial support for this feature! 🎉

Full Changelog

Features

  • (subsonic) Implement filtering plays by user in #319
  • (lastfm) Now Playing by @msparkles in #316 #164
  • (listenbrainz) Implement Now Playing functionality #74
  • (listenbrainz) Include more ids/fields in submit additional_info #311
  • (No Category) Add config source to startup logging #309

Bug Fixes

  • Guard against undefined type in config.json #310

Documentation

  • Improve example config rendering for ambiguous configs #310

Now Playing Release Candidate 1

03 Jul 15:18
Compare
Choose a tag to compare
Pre-release

What's New?

This is a pre-release that introduces Now Playing functionality for Last.fm and Listenbrainz scrobble Clients. Please see this comment for MS behavior/configuration for this functionality and report any issues, thanks.

v0.9.6

20 Jun 20:11
Compare
Choose a tag to compare

What's New?

This is a minor update to improve the scrobbling capability of Listenbrainz scrobblers (Koito) when a track has multiple artists (#312). Nothing new otherwise!

v0.9.5

19 Jun 16:37
Compare
Choose a tag to compare

What's New?

Deezer ARL Source

Thanks to @Ectalite providing a premium account for development, as well as a proof of concept for accessing Deezer with ARL, the previously deprecated Deezer Source now has a new, working implementation! 🎉

See the documentation for setup and configuration

This new implementation comes with a few caveats to be aware of:

  • Only works with a premium account because Deezer only records full plays of a track which is a feature only available with premium
  • The method for accessing Deezer's API (ARL), while widely used by other projects, is unofficial:
    • Deezer may break this functionality at any time
    • Using it likely violates Deezer's TOS. Use this method at your own risk.

If you have any issues with Deezer reporting duplicate plays when using third party devices (Sonos), see the docs to tweak detection behavior.

Full Changelog

Features

  • (deezer internal) Add fuzzy discovery ignore option
  • (No Category) Implement Deezer Internal (ARL) Source #296
  • (No Category) Fuzzy diff threshold configurable
  • (No Category) Implement better during/range temporal comparisons

Documentation

  • (deezer) Rewrite Deezer Source with ARL implementation

0.9.4

16 Jun 19:29
Compare
Choose a tag to compare

What's New?

Initial Koito Implementation

Multi-scrobbler now supports Koito, a new scrobbler application, as both a Client and a Source using the existing Listenbrainz implementation.

Use a Listenbrainz configuration, as a Client or Source, with a custom url pointing to the Koito scrobble endpoint like http://your_koito_server/apis/listenbrainz/1.

A more fully-featured, independent, Koito implementation will be introduced in a future release.

Full Changelog

Features

  • (jellyfin) Add musicbrainz metadata #297
  • (listenbrainz) Detect /1/ version prefix on base URL
  • (listenbrainz) Implement limited support for Koito as Listenbrainz Source/Client #300

Bug Fixes

  • (listenbrainz) Normalize URL and join parts correctly

v0.9.3

29 May 13:30
Compare
Choose a tag to compare

What's New?

Removed Flatpak

Flatpak has been a technical burden that has not gotten easier to maintain since its inception. Due to being a tiny percentage of the install base, and a disproportionate developer effort for this percentage, I have decided to drop support for this installation method.

You can read more about the challenges MS has had with Flathub here. If anyone is willing to contribute and maintain a flatpak distribution I would be willing to support it again.

Fixes for Plex

Previous refactoring to introduce real-time player emulation has had a few kinks since implementing the new Plex Source, mainly due to some inconsistencies with how Plex reports duration and playback position. This release includes a few fixes that should resolve these bugs and make the Plex Source more stable.

Full Changelog

Bug Fixes

  • (plex) On Plex webhook routes filter plex sources to get webhook source only #291
  • (ui) Guard against null listenedDuration #285
  • (No Category) Fix NaN and undefined initial states for rt player #292

Documentation

  • (No Category) Remove flatpak installation method #287

Miscellaneous Tasks

  • (No Category) Update flatpak description
  • (No Category) Update devcontainer to node 20 to match docker image

Testing

  • (No Category) Fix real time player not triggered during event loop