diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index 935548d..15aa01b 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -516,7 +516,7 @@ app.get('/api/musicbrainz/lookup', async (req, res) => { // ─── METADATA EDIT ─────────────────────────────────────────────────────────── app.post('/api/edit-metadata', async (req, res) => { - const { ndUrl, user, pass, songId, title, artist, album, year, trackNum, totalTracks, + const { ndUrl, user, pass, songId, title, artist, albumArtist, album, year, trackNum, totalTracks, discNum, discTotal, genre, artworkBase64, artworkMime, artworkUrl: newArtworkUrl } = req.body; if (!ndUrl || !user || !pass || !songId) return res.status(400).json({ error: 'ndUrl, user, pass, songId required' }); @@ -583,7 +583,9 @@ app.post('/api/edit-metadata', async (req, res) => { } ffArgs.push('-c', 'copy', '-map_metadata', '-1', '-id3v2_version', '3'); if (title) ffArgs.push('-metadata', `title=${title}`); - if (artist) ffArgs.push('-metadata', `artist=${artist}`, '-metadata', `album_artist=${artist.split(';')[0].trim()}`); + if (artist) ffArgs.push('-metadata', `artist=${artist}`); + const resolvedAlbumArtist = albumArtist || (artist ? artist.split(';')[0].trim() : null); + if (resolvedAlbumArtist) ffArgs.push('-metadata', `album_artist=${resolvedAlbumArtist}`); if (album) ffArgs.push('-metadata', `album=${album}`); if (year) ffArgs.push('-metadata', `date=${year}`); if (trackNum) ffArgs.push('-metadata', `track=${totalTracks ? `${trackNum}/${totalTracks}` : String(trackNum)}`); diff --git a/index.html b/index.html index 5b0db53..b7eb098 100644 --- a/index.html +++ b/index.html @@ -917,6 +917,7 @@