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 @@
+
diff --git a/src/ui.js b/src/ui.js index 9d75922..9d2481a 100644 --- a/src/ui.js +++ b/src/ui.js @@ -304,6 +304,7 @@ export function toggleInfoEdit() { // Populate fields from current song document.getElementById('ie-title').value = s.title || ''; document.getElementById('ie-artist').value = s.artist || ''; + document.getElementById('ie-albumartist').value = s.albumArtist || ''; document.getElementById('ie-album').value = s.album || ''; document.getElementById('ie-genre').value = s.genre || ''; document.getElementById('ie-year').value = s.year || ''; @@ -383,6 +384,7 @@ export async function saveMetadata() { songId: s.id, title: document.getElementById('ie-title').value || undefined, artist: document.getElementById('ie-artist').value || undefined, + albumArtist: document.getElementById('ie-albumartist').value || undefined, album: document.getElementById('ie-album').value || undefined, genre: document.getElementById('ie-genre').value || undefined, year: parseInt(document.getElementById('ie-year').value) || undefined,