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]'))
|
||||
.forEach(l => log(jobId, l.trim()));
|
||||
});
|
||||
proc.on('error', reject);
|
||||
proc.on('close', code =>
|
||||
(code === 0 || code === 101) ? resolve() : reject(new Error(`yt-dlp code ${code}: ${stderr.slice(-300)}`))
|
||||
);
|
||||
proc.on('error', resolve);
|
||||
proc.on('close', code => {
|
||||
// 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';
|
||||
|
||||
Reference in new issue
Block a user