[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(lastfm): Fix lastfm providing empty string for non-defined album #323

FoxxMD (Jul 14, 2025, 2:48 PM UTC) 22d73c6a 2a35e7cf

+19 -2
+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: {
+9 -1
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 + 745 753 const minTrackData: MinimumTrack = removeUndefinedKeys({ 746 754 artist_name: Array.from(new Set([...artists, ...albumArtists])).join(', '), 747 755 track_name: track, 748 - release_name: album, 756 + release_name: al, 749 757 }); 750 758 751 759 return {