From 288016a95fbc62007dcffe0b9af6ce81969da911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=82=A6?= Date: Thu, 8 Jan 2026 14:55:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(sync=5Fmusic):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=AD=8C=E6=9B=B2=E6=97=B6=E7=9A=84=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在sync_single_song_with_url.js中添加详细的日志记录,包括开始同步时的参数、TuneHub参数解析结果、下载URL以及歌曲信息获取状态。这有助于调试和追踪同步过程中的问题。 --- .../service/sync_music/sync_single_song_with_url.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/backend/src/service/sync_music/sync_single_song_with_url.js b/backend/src/service/sync_music/sync_single_song_with_url.js index 89a6e47..90c2d42 100644 --- a/backend/src/service/sync_music/sync_single_song_with_url.js +++ b/backend/src/service/sync_music/sync_single_song_with_url.js @@ -101,26 +101,38 @@ module.exports = async function syncSingleSongWithUrl(uid, url, { album = "", songFromWyCloud = null } = {}, jobId = 0, jobType = JobType.SyncSongFromUrl, playlistName = "", collectRet) { + logger.info(`[syncSingleSongWithUrl] ===== Start =====`); + logger.info(`[syncSingleSongWithUrl] uid=${uid}, url=${url}, songName=${songName}, artist=${artist}, album=${album}`); + logger.info(`[syncSingleSongWithUrl] jobId=${jobId}, jobType=${jobType}`); + // step 1. fetch song info let songInfo = null; let downloadUrl = url; let useTunehubDownload = false; const tunehubParams = parseTunehubParams(url) || parsePageUrlParams(url); + logger.info(`[syncSingleSongWithUrl] tunehubParams=${JSON.stringify(tunehubParams)}`); + if (tunehubParams) { + logger.info(`[syncSingleSongWithUrl] Using TuneHub for ${tunehubParams.source}:${tunehubParams.id}`); useTunehubDownload = true; downloadUrl = buildSongUrl(tunehubParams.source, tunehubParams.id); + logger.info(`[syncSingleSongWithUrl] downloadUrl=${downloadUrl}`); const tunehubInfo = await getSongInfo(tunehubParams.source, tunehubParams.id); if (tunehubInfo) { songInfo = buildSongInfoFromTunehub(tunehubParams.source, tunehubInfo); + logger.info(`[syncSingleSongWithUrl] TuneHub success: ${songInfo.songName} - ${songInfo.artist}`); } else if (tunehubParams.source === 'netease') { const wyInfo = await getWySongInfo(uid, tunehubParams.id); if (wyInfo) { songInfo = buildSongInfoFromWyCloud(wyInfo); + logger.info(`[syncSingleSongWithUrl] WyCloud success: ${songInfo.songName} - ${songInfo.artist}`); } } } if (!songInfo) { if (!tunehubParams) { + logger.error(`[syncSingleSongWithUrl] ERROR: URL not recognized, cannot parse params. url=${url}`); + logger.info(`[syncSingleSongWithUrl] Will call getMetaWithUrl (deprecated - may fail with media-get)`); songInfo = await getMetaWithUrl(url); logger.info(songInfo); if (songInfo === false || songInfo.isTrial) { @@ -128,6 +140,7 @@ module.exports = async function syncSingleSongWithUrl(uid, url, { return false; } } else { + logger.info(`[syncSingleSongWithUrl] TuneHub failed, using fallback with provided metadata`); songInfo = buildFallbackSongInfo({ songName, artist,