From a5e38e64cf281855f4379da15f6303f2af834b9b Mon Sep 17 00:00:00 2001 From: Honey Date: Mon, 27 Apr 2026 18:39:36 +0200 Subject: [PATCH] fix(spotify): use ' / ' as artist separator for Navidrome multi-artist splitting Navidrome splits artist tags on '/' (Tags.artist.Split = ["/"]). Using ' / ' between multiple artists (both from array format and from Spotify's comma-separated subtitle) lets Navidrome register them as separate artists without any config change. Co-Authored-By: Claude Sonnet 4.6 --- backend/novasonic-server.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index ce2baa4..02bc60b 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -439,7 +439,8 @@ function _spAllArtists(artistsRaw) { if (!artistsRaw) return ''; // Handle both array format and GraphQL {items:[...]} format const arr = Array.isArray(artistsRaw) ? artistsRaw : (artistsRaw.items || []); - return arr.map(a => a?.profile?.name || a?.name || '').filter(Boolean).join(', '); + // Use " / " so Navidrome splits on "/" into multiple artists + return arr.map(a => a?.profile?.name || a?.name || '').filter(Boolean).join(' / '); } function _spArtistName(artistsRaw) { @@ -461,7 +462,8 @@ function _spTrackItem(t, defaultAlbum, defaultArt, defaultAlbumArtist) { if (d?.artists) { artist = _spAllArtists(d.artists); } else if (typeof d?.subtitle === 'string' && d.subtitle) { - artist = d.subtitle; + // Spotify subtitle separates artists with ", " — convert to " / " for Navidrome splitting + artist = d.subtitle.replace(/,\s*/g, ' / '); } artist = artist || defaultAlbumArtist || '';