diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index e7a4fd0..223e9a0 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -600,8 +600,8 @@ app.post('/api/download', async (req, res) => { if (!meta.trackNum && genreMeta.trackNum) { meta.trackNum = genreMeta.trackNum; } } } - // Keep source (Spotify) artist name as-is — no iTunes override - const result = await downloadTrack({ jobId, artist, rawArtist: artist, title, ...meta, sourceUrl: sourceUrl || sp.sourceUrl || undefined }); + const finalArtist = meta.itunesArtistName || artist; + const result = await downloadTrack({ jobId, artist: finalArtist, rawArtist: artist, title, ...meta, sourceUrl: sourceUrl || sp.sourceUrl || undefined }); if (result?.skipped) { updateJob(jobId, { status: 'done', progress: 100, message: 'Bereits vorhanden – übersprungen', skipped: true }); } else if (result?.notFound) { @@ -688,13 +688,14 @@ app.post('/api/download', async (req, res) => { log(jobId, `📋 iTunes: "${trackArtist} – ${trackTitle}"`); itunes = await lookupItunesTrackMeta(searchArtist, itunesTitle); } - // Keep source (Spotify) artist name as-is — no iTunes override. - // iTunes collectionArtistName is used as albumArtist for consistent album grouping. + // Prefer iTunes-resolved name (from server lookup or frontend enrichment) for sort tags / folders. + // trackArtist stays as rawArtist for main tags and YTM search. + const resolvedArtist = itunes.itunesArtistName || track.itunesArtistName || trackArtist; return downloadTrack({ jobId, - artist: trackArtist, - rawArtist: trackArtist, - albumArtist: itunes.albumArtist || trackArtist, + artist: resolvedArtist, // iTunes English name → used for sort tags + folder names + rawArtist: trackArtist, // original Spotify/Japanese name → used for main tag + YTM search + albumArtist: resolvedArtist, title: trackTitle, album: itunes.album || track.collectionName || track.album || '', year: itunes.year || (track.releaseDate ? new Date(track.releaseDate).getFullYear() : undefined) || track.year,