From 36b09856edaa3b650aa68d54d07a37272539905f Mon Sep 17 00:00:00 2001 From: Honey Date: Sun, 24 May 2026 23:13:34 +0200 Subject: [PATCH] fix: use iTunes names instead of kuromoji for Spotify Japanese tracks Search iTunes with original Japanese names (accurate) rather than pre-converting with kuromoji (inaccurate for uncommon names/readings). iTunes returns the correct English artist name and title directly. Also run iTunes enrichment for single-track Spotify imports. Co-Authored-By: Claude Sonnet 4.6 --- backend/novasonic-server.js | 7 ------- src/spotify.js | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index cb79fee..6f5a2fa 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -225,13 +225,6 @@ app.post('/api/spotify/resolve', async (req, res) => { setTimeout(() => reject(new Error('Zeitüberschreitung — Spotify API antwortet nicht (>120s)')), 120000) ); const data = await Promise.race([_resolveSpotifyViaSpotdl(url), timeout]); - // Normalize Japanese artist/title names to romaji before sending to frontend - if (data.tracks) { - for (const t of data.tracks) { - if (t.artistName) t.artistName = romajiForStorage(t.artistName) || t.artistName; - if (t.trackName) t.trackName = romajiForStorage(t.trackName) || t.trackName; - } - } res.json(data); } catch(e) { console.error('[spotify/resolve]', e.message); diff --git a/src/spotify.js b/src/spotify.js index 37b3113..1aa88f7 100644 --- a/src/spotify.js +++ b/src/spotify.js @@ -236,8 +236,8 @@ function _renderSpotifyPreview(data) { (data.tracks || []).forEach((t, i) => list.appendChild(makeGlobalTrackItem(t, i, data.tracks))); section.style.display = ''; - // Lazy-load correct per-track artwork via iTunes in the background - if ((data.type === 'playlist' || data.type === 'album') && count > 0 && S.cfg.backendUrl) { + // Lazy-load correct per-track artwork and canonical names via iTunes in the background + if (count > 0 && S.cfg.backendUrl) { _loadSpotifyTrackArtwork(data.tracks, list); } }