diff --git a/web_server.py b/web_server.py index 2a9bb96f..da61ec24 100644 --- a/web_server.py +++ b/web_server.py @@ -18403,7 +18403,7 @@ def _embed_source_ids(audio_file, metadata: dict): _pp_album_name = metadata.get('album', '') _pp_artist_name = metadata.get('album_artist', '') or metadata.get('artist', '') if _pp_album_name and _pp_artist_name: - conn = database._get_connection() + conn = get_database()._get_connection() try: cursor = conn.cursor() cursor.execute(""" diff --git a/webui/static/script.js b/webui/static/script.js index 920bfe47..3f24cf2d 100644 --- a/webui/static/script.js +++ b/webui/static/script.js @@ -12183,7 +12183,14 @@ function generateM3UContent(playlistId) { tracks.forEach((track, index) => { const durationSeconds = track.duration_ms ? Math.floor(track.duration_ms / 1000) : -1; - const artists = Array.isArray(track.artists) ? track.artists.join(', ') : (track.artists || 'Unknown Artist'); + let artists = 'Unknown Artist'; + if (Array.isArray(track.artists)) { + artists = track.artists.map(a => (typeof a === 'object' && a !== null) ? (a.name || '') : String(a)).filter(Boolean).join(', ') || 'Unknown Artist'; + } else if (typeof track.artists === 'string') { + artists = track.artists; + } else if (track.artist) { + artists = typeof track.artist === 'object' ? (track.artist.name || 'Unknown Artist') : String(track.artist); + } // Check library match status from the modal UI const matchEl = document.getElementById(`match-${playlistId}-${index}`);