Skip to content

All versions since v0.20.0

v0.20.0

What’s New?

Plays can now (finally) be edited! If your scrobbles fail you can now edit the data to correct it manually before resending it.

A plain text mode is initially used where you can edit everything related to fields and metadata ids

image

Additionally a search mode is available to search all of the metadata providers you have setup. Musicbrainz, Spotify, and Rocksky can all be searched concurrently. Selecting a result fills in that field, any associated fields (track can set artists + album), and meta ids.

image

Musicbrainz and Rocksky providers are automatically setup. All providers automatically inherit from your existing transformers. You can also set up preferred providers to only use some of them, or use with alternative configuration.

See the docs for more information.

Tuneshine Client

Tuneshine, a wifi-connected hardware device with an aesthetic, low-count LED display for showcasing the album art of the music you are currently listening to, is now integrated as a Scrobble Client.

Like Discord, it can be used to display Now Playing activity from any of your Sources.

Mixcloud Source

Mixcloud is now integrated as a Scrobble Source thanks to @anandghegde

This source records the mixes you listen to as scrobbles. It supports both free and Pro Mixcloud accounts.

Metadata Overhaul

Previously, metadata like track identifiers from Spotify/Musicbrainz/etc… and album art, were stored alongside a Play but they were not strongly associated with specific parts of the Play. This lead to situations where some functionality would require assertions like “Artist 1 has metadata artist ID 1” but it was not possible to guarantee this.

Now, Play data has been restructured to tightly associate all of this metadata to the field it belongs to. This change does not affect any end-user functionality but it dramatically simplifies developer experience. The Play Editing functionality above would have been much more difficult without this change, for example.

Changelog Highlights

⛰️ Features

  • (endpointlz) Allow disabling artist extraction from ingress payload #750 #751
  • (deezer) Add ISRC and optional title variant to parsed data #752 #754
  • (koito) Add includePlayPosition to koito scrobbler implementation #741 #742
  • (spotify) Periodically backfill songs from spotify history api for missed live playback state #735 thanks to @sudbrack
  • (No Category) Consolidate SSE for logs into events to reduce connection pool usage for HTTP/1.1
  • (No Category) Consolidate global SSE connections with coordinator

🐛 Bug Fixes

  • (docs) Resource static asset link broken by trailingSlash #573
  • (listenbrainz) Only use original artist_name in naive play if no artists credits were extracted #750
  • (stats) Persist lifetime discovered/scrobbled counts across restarts #745 @dylangovender
  • (No Category) Improve detection of repeat plays when listen range is close to end of a position player

📚 Documentation

  • (discord) Update kasmweb/discord service example
  • (metadata) Add editing and metadata search
  • (No Category) Add reverse proxy recommendation and tips

🚜 Refactor

  • (No Category) Decouple transform manager init
  • (No Category) Circular dependency elimination

⚙️ Miscellaneous Tasks

  • (No Category) Add docs and devcontainer modifications to ease discord IPC development with kasmcord

v0.20.1

This release bumps the Nodejs version used in the docker image to 24.22.1 in order to include the october security release fixes in the distributed docker image.

You should upgrade as soon as possible in any case, but users who run MS in a way that exposes it to the public internet (API or UI accessible from a non-authenticated URL) are particularly vulnerable as this fixes an exploit for remote code execution. Do not delay upgrading if you are in this scenario.

v0.20.2

This is another security fix that removes compromised eMudhra certificates from the base docker image. #759

v0.20.3 Latest

What’s New?

Docs Moved to Starlight

Documentation has been migrated from Docusaurus to Astro ✨Starlight✨

Docusaurus has been great but Starlight, and Astro being a general static site build system, is more flexible and lighter. Along with the already-strong community plugin support it has enabled more functionality for the MS docs that was not possible with Docusaurus.

The docs now have a fresh look with clearer/more readable styling. Particularly awesome new features:

  • Code blocks get walkthroughs, footnotes, inline linking, stylized focus, dynamic placeholders, and much more thanks to starlight-codeblocks
  • Changelogs are now built into the public site

Additionally, the developer experience for docs is greatly simplified. Same build commands but many things, like og image generation and open api doc generation, are all built-in now.

Improved Shutdown Behavior

MS now handles all exit signals (SIGNIT and SIGTERM) instead of just SIGINT. On exit signal it now tries to gracefully stop all Source/Clients by letting all currently processing Plays/scrobbles finish before closing the database and shutting down.