diff --git a/backend/lib/ytdlp.js b/backend/lib/ytdlp.js index 0d813d1..286750d 100644 --- a/backend/lib/ytdlp.js +++ b/backend/lib/ytdlp.js @@ -49,7 +49,7 @@ function buildVariantFilter(title) { async function downloadTrack({ jobId, artist, albumArtist, title, album, year, trackNum, totalTracks, discNum, discTotal, compilation, genre, artworkUrl, explicit, outputDir, durationMs, sourceUrl }) { const mainArtist = albumArtist || artist; - const safeArtist = sanitize(mainArtist.split(',')[0].trim()); + const safeArtist = sanitize(mainArtist.split(/[,;&]/)[0].trim()); const safeAlbum = sanitize(album || 'Singles'); const dir = path.join(outputDir || CONFIG.musicPath, safeArtist, safeAlbum); fs.mkdirSync(dir, { recursive: true }); diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index 13f3eca..d519b2c 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -718,7 +718,7 @@ app.post('/api/edit-metadata', async (req, res) => { const oldAlbumDir = path.dirname(currentFile); const oldArtistDir = path.dirname(oldAlbumDir); const newAlbumName = album ? sanitize(album) : path.basename(oldAlbumDir); - const newArtistName = normalAlbumArtist ? sanitize(normalAlbumArtist.split(/[,;]/)[0].trim()) : path.basename(oldArtistDir); + const newArtistName = normalAlbumArtist ? sanitize(normalAlbumArtist.split(/[,;&]/)[0].trim()) : path.basename(oldArtistDir); const newDir = path.join(CONFIG.musicPath, newArtistName, newAlbumName); if (newDir !== oldAlbumDir) {