fix(yt): en dræbt hentning er midlertidig, ikke "ukendt fejl"
Når portalen genstarter midt i en hentning, bliver yt-dlp dræbt uden en fejltekst, og jobbet endte som "ukendt fejl". Et negativt returkode (signal) hedder nu "afbrudt" og prøves igen som de andre midlertidige fejl. Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG
This commit is contained in:
@@ -160,7 +160,11 @@ async def _attempt(job: dict, settings: dict, with_subs: bool, klient: str = "")
|
||||
stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)
|
||||
stdout, stderr = await proc.communicate()
|
||||
if proc.returncode != 0:
|
||||
err = (stderr.decode("utf-8", "replace").strip().splitlines() or ["ukendt fejl"])[-1]
|
||||
if proc.returncode < 0:
|
||||
# Dræbt udefra, typisk fordi portalen genstartede midt i hentningen.
|
||||
return {"ok": False, "error": f"afbrudt (signal {-proc.returncode})"}
|
||||
err = (stderr.decode("utf-8", "replace").strip().splitlines()
|
||||
or [f"ukendt fejl (kode {proc.returncode})"])[-1]
|
||||
return {"ok": False, "error": err[:300]}
|
||||
|
||||
# --print after_move giver én linje pr. hentet fil: id|upload_date|sti.
|
||||
@@ -185,7 +189,7 @@ async def _attempt(job: dict, settings: dict, with_subs: bool, klient: str = "")
|
||||
# Fejl der ofte går over af sig selv: YouTube afviser en enkelt forespørgsel
|
||||
# (403/429), eller forbindelsen falder. yt-dlp gentager ikke selv en 403.
|
||||
_MIDLERTIDIG = ("403", "forbidden", "429", "too many requests", "timed out",
|
||||
"connection reset", "remote end closed", "temporary failure")
|
||||
"connection reset", "remote end closed", "temporary failure", "afbrudt")
|
||||
# Forsøg: (pause før, YouTube-klient). Samme klient med stigende pause: testet
|
||||
# 2026-10-06 gav kun standardklienten 1080p (android_vr faldt til 360p, tv,
|
||||
# web_safari, mweb og tv_simply gav slet ingen formater), og 403'erne kom af
|
||||
|
||||
Reference in New Issue
Block a user