fix(backend): don't abort cascade on yt-dlp non-zero exit (e.g. video not available)
spawnYtdlp now always resolves so the hasAudio() cascade continues when a single YTM result is geo-blocked or unavailable. Error is still logged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
88d3e336c8
commit
4804023a98
1 file changed
+7
-4
@@ -173,10 +173,13 @@ async function downloadTrack({ jobId, artist, rawArtist, albumArtist, title, alb
|
|||||||
.filter(l => l.trim() && !l.startsWith('[debug]'))
|
.filter(l => l.trim() && !l.startsWith('[debug]'))
|
||||||
.forEach(l => log(jobId, l.trim()));
|
.forEach(l => log(jobId, l.trim()));
|
||||||
});
|
});
|
||||||
proc.on('error', reject);
|
proc.on('error', resolve);
|
||||||
proc.on('close', code =>
|
proc.on('close', code => {
|
||||||
(code === 0 || code === 101) ? resolve() : reject(new Error(`yt-dlp code ${code}: ${stderr.slice(-300)}`))
|
// Treat all non-zero exits as "no result" so the cascade continues.
|
||||||
);
|
// Fatal errors (network, bad args) are logged via stderr above; hasAudio() decides outcome.
|
||||||
|
if (code !== 0 && code !== 101) log(jobId, `⚠️ yt-dlp exit ${code}: ${stderr.slice(-200).trim()}`);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const YTM_SONGS_PARAM = 'EgWKAQIIAWoKEAkQBRAKEAMQBA%3D%3D';
|
const YTM_SONGS_PARAM = 'EgWKAQIIAWoKEAkQBRAKEAMQBA%3D%3D';
|
||||||
|
|||||||
Reference in new issue
Block a user