Releases: FoxxMD/multi-scrobbler
v0.9.11
v0.9.10
v0.9.9
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
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
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
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
v0.9.5
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
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
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