From e2b59900e5489e0814379b003c444d53a7805cbc Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Sat, 30 May 2026 14:59:18 +0000 Subject: [PATCH] fix(listenbrainz): Fix artist credit mapping for minimum track data --- src/backend/common/vendor/listenbrainz/lzUtils.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/common/vendor/listenbrainz/lzUtils.ts b/src/backend/common/vendor/listenbrainz/lzUtils.ts index 53985214..00bdc6ea 100644 --- a/src/backend/common/vendor/listenbrainz/lzUtils.ts +++ b/src/backend/common/vendor/listenbrainz/lzUtils.ts @@ -9,11 +9,18 @@ import { artistCreditsToNames, artistCreditToName } from "../../../../core/Strin export const playToListenPayload = (play: PlayObject, version?: string): ListenPayload => { const { data: { - playDate, artists = [], + playDate, + artists = [], // MB doesn't use this during submission AFAIK // instead it relies on (assumes??) you will submit album/release group/etc where album artist gets credit on an individual release - albumArtists = [], album, track, isrc, duration, meta: { - brainz = {}, spotify = {}, + albumArtists = [], + album, + track, + isrc, + duration, + meta: { + brainz = {}, + spotify = {}, } = {} }, meta: { mediaPlayerName, mediaPlayerVersion, musicService, source @@ -75,7 +82,7 @@ export const playToListenPayload = (play: PlayObject, version?: string): ListenP } const minTrackData = removeUndefinedKeys({ - artist_name: Array.from(new Set([...artists])).join(', '), + artist_name: Array.from(new Set([...artists.map(artistCreditToName)])).join(', '), track_name: track, release_name: al, }); -- 2.51.2