diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index f2216c4..c3152a5 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -653,7 +653,10 @@ app.post('/api/download', async (req, res) => { for (const alb of artistAlbums) { const tracks = await fetchItunesTracks(alb.collectionId).catch(() => []); if (tracks.length) { - await downloadAlbumTracks({ jobId, artist, albumTitle: alb.collectionName, tracks, artworkUrl: alb.artworkUrl100 }); + // Same as the album path: album_artist from iTunes' album-level artist, so a collaboration + // or soundtrack in the artist's discography isn't tagged with the searched artist. + const albArtist = tracks.map(t => t.collectionArtistName).find(Boolean) || alb.artistName || artist; + await downloadAlbumTracks({ jobId, artist: albArtist, albumTitle: alb.collectionName, tracks, artworkUrl: alb.artworkUrl100 }); } done++; updateJob(jobId, { progress: Math.round((done / artistAlbums.length) * 95) });