[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

fix: TS typings for brainz meta and missed recording-track rename

FoxxMD (Jan 23, 2026, 5:09 PM UTC) 5b83e774 9cc2ca10

+7 -10
+1 -1
src/backend/common/vendor/LastfmApiClient.ts
··· 558 558 al = undefined; 559 559 } 560 560 } 561 - const brainz: BrainzMeta = removeUndefinedKeys({ 561 + const brainz = removeUndefinedKeys<BrainzMeta>({ 562 562 album: nonEmptyStringOrDefault<undefined>(albumMbid), 563 563 artist: splitByFirstFound<undefined>(artistMbid, [',',';'], undefined), 564 564 recording: nonEmptyStringOrDefault<undefined>(mbid)
+5 -5
src/backend/common/vendor/ListenbrainzApiClient.ts
··· 644 644 album: release_name, 645 645 albumArtists, 646 646 duration: dur, 647 + isrc: isrc !== undefined ? isrc : undefined, 647 648 meta: { 648 649 } 649 650 }, ··· 658 659 play.meta.trackid = trackId; 659 660 } 660 661 661 - const brainzMeta: BrainzMeta = removeUndefinedKeys({ 662 + const brainzMeta = removeUndefinedKeys<BrainzMeta>({ 662 663 album: release_mbid, 663 664 releaseGroup: release_group_mbid, 664 - track: trackId, 665 - isrc: isrc !== undefined ? [isrc] : undefined, 665 + recording: trackId, 666 666 trackNumber: tracknumber 667 667 }) ?? {}; 668 668 ··· 765 765 } 766 766 } 767 767 768 - const minTrackData: MinimumTrack = removeUndefinedKeys({ 768 + const minTrackData = removeUndefinedKeys<MinimumTrack>({ 769 769 artist_name: Array.from(new Set([...artists])).join(', '), 770 770 track_name: track, 771 771 release_name: al, ··· 777 777 ...minTrackData, 778 778 additional_info: { 779 779 duration: play.data.duration !== undefined ? Math.round(duration) : undefined, 780 - track_mbid: brainz.recording, 780 + track_mbid: brainz.track, 781 781 recording_mbid: brainz.recording, 782 782 artist_mbids: brainz.artist, 783 783 release_mbid: brainz.album,
+1 -1
src/backend/common/vendor/bluesky/AbstractBlueSkyApiClient.ts
··· 110 110 } 111 111 }; 112 112 113 - const brainz: BrainzMeta | undefined = removeUndefinedKeys({ 113 + const brainz = removeUndefinedKeys<BrainzMeta>({ 114 114 recording: record.recordingMbId, 115 115 album: record.releaseMbId, 116 116 artist: record.artists.filter(x => x.artistMbId !== undefined).length > 0 ? record.artists.filter(x => x.artistMbId !== undefined).map(x => x.artistMbId) : undefined
-3
src/backend/sources/JellyfinApiSource.ts
··· 431 431 if(ProviderIds.MusicBrainzTrack !== undefined) { 432 432 meta.recording = ProviderIds.MusicBrainzTrack; 433 433 } 434 - if(ProviderIds.MusicBrainzTrack !== undefined) { 435 - meta.recording = ProviderIds.MusicBrainzTrack; 436 - } 437 434 if(ProviderIds.MusicBrainzArtist !== undefined) { 438 435 meta.artist = [ProviderIds.MusicBrainzArtist]; 439 436 }