From 595fb2b7f3dc11291e535cc383ef17cf67e09a35 Mon Sep 17 00:00:00 2001 From: Honey Date: Tue, 28 Apr 2026 18:18:27 +0200 Subject: [PATCH] fix: install yt-dlp via pip3 for latest version, fix multi-artist folder path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace apk yt-dlp with pip3 install to get current version with ytmsearch support - Split mainArtist on comma in downloadTrack so multi-artist tracks always land in the primary artist folder (e.g. "Artist1, Artist2" → Artist1/) Co-Authored-By: Claude Sonnet 4.6 --- backend/novasonic-server.js | 3 ++- docker-compose.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/novasonic-server.js b/backend/novasonic-server.js index cac120e..a938d63 100644 --- a/backend/novasonic-server.js +++ b/backend/novasonic-server.js @@ -163,7 +163,8 @@ async function lookupItunesTrackMeta(artist, title) { // Download a single track: yt-dlp audio + ffmpeg clean metadata + iTunes cover embedded async function downloadTrack({ jobId, artist, albumArtist, title, album, year, trackNum, totalTracks, discNum, discTotal, durationMs, compilation, genre, artworkUrl, explicit, outputDir }) { const mainArtist = albumArtist || artist; - const safeArtist = sanitize(mainArtist); + // use only the first artist for the folder path (e.g. "Artist1, Artist2" → "Artist1") + 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/docker-compose.yml b/docker-compose.yml index d0ab856..6e73d9d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,7 +30,8 @@ services: - MAX_PARALLEL=${MAX_PARALLEL:-2} command: > sh -c " - apk add --no-cache yt-dlp ffmpeg python3 && + apk add --no-cache ffmpeg python3 py3-pip && + pip3 install -U yt-dlp --break-system-packages && npm install express cors && node novasonic-server.js "