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

Merge pull request #324 from FoxxMD/lzAlbumField

Lz album field

authored by

Matt Foxx and committed by
GitHub
(Jul 14, 2025, 12:48 PM EDT) c6bb258b e70abc59

+25 -4
+10 -1
src/backend/common/vendor/LastfmApiClient.ts
··· 71 71 } = obj; 72 72 // arbitrary decision yikes 73 73 const artistStrings = splitByFirstFound(artists, [','], [artistName]); 74 + let al = album; 75 + if(al !== undefined) { 76 + if(al === null) { 77 + al = undefined; 78 + } else if (al.trim() === '') { 79 + // lastfm may provide empty string when album data is not defined 80 + al = undefined; 81 + } 82 + } 74 83 return { 75 84 data: { 76 85 artists: [...new Set(artistStrings)] as string[], 77 86 track: title, 78 - album, 87 + album: al, 79 88 duration, 80 89 playDate: time !== undefined ? dayjs.unix(time) : undefined, 81 90 meta: {
+15 -3
src/backend/common/vendor/ListenbrainzApiClient.ts
··· 742 742 743 743 addInfo = removeUndefinedKeys(addInfo) 744 744 745 + // possible lastfm provides an empty album field when no album data is found 746 + let al = album; 747 + if(al !== undefined && al !== null) { 748 + if(al.trim() === '') { 749 + al = undefined; 750 + } 751 + } 752 + 753 + const minTrackData: MinimumTrack = removeUndefinedKeys({ 754 + artist_name: Array.from(new Set([...artists, ...albumArtists])).join(', '), 755 + track_name: track, 756 + release_name: al, 757 + }); 758 + 745 759 return { 746 760 listened_at: getScrobbleTsSOCDate(play).unix(), 747 761 track_metadata: { 748 - artist_name: Array.from(new Set([...artists, ...albumArtists])).join(', '), 749 - track_name: track, 750 - release_name: album, 762 + ...minTrackData, 751 763 additional_info: { 752 764 duration: play.data.duration !== undefined ? Math.round(duration) : undefined, 753 765 track_mbid: brainz.track,