Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8751ae5722 |
@@ -144,7 +144,7 @@ def _build_cmd(job: dict, settings: dict, with_subs: bool, klient: str = "") ->
|
|||||||
cmd += ["--sponsorblock-remove", "default", "--sponsorblock-mark", "all"]
|
cmd += ["--sponsorblock-remove", "default", "--sponsorblock-mark", "all"]
|
||||||
|
|
||||||
if klient:
|
if klient:
|
||||||
# Nyt forsøg efter en 403: bed YouTube om videoen som en anden klient.
|
# Valgfrit: bed YouTube om videoen som en anden klient (se FORSOEG).
|
||||||
cmd += ["--extractor-args", f"youtube:player_client={klient}"]
|
cmd += ["--extractor-args", f"youtube:player_client={klient}"]
|
||||||
|
|
||||||
if not job.get("playlist"):
|
if not job.get("playlist"):
|
||||||
@@ -186,9 +186,12 @@ async def _attempt(job: dict, settings: dict, with_subs: bool, klient: str = "")
|
|||||||
# (403/429), eller forbindelsen falder. yt-dlp gentager ikke selv en 403.
|
# (403/429), eller forbindelsen falder. yt-dlp gentager ikke selv en 403.
|
||||||
_MIDLERTIDIG = ("403", "forbidden", "429", "too many requests", "timed out",
|
_MIDLERTIDIG = ("403", "forbidden", "429", "too many requests", "timed out",
|
||||||
"connection reset", "remote end closed", "temporary failure")
|
"connection reset", "remote end closed", "temporary failure")
|
||||||
# Forsøg: (pause før, YouTube-klient). Andet og tredje forsøg beder om videoen
|
# Forsøg: (pause før, YouTube-klient). Samme klient med stigende pause: testet
|
||||||
# som en anden klient, hvilket typisk kommer uden om en 403.
|
# 2026-10-06 gav kun standardklienten 1080p (android_vr faldt til 360p, tv,
|
||||||
FORSOEG = [(0, ""), (30, "tv,web_safari"), (90, "mweb")]
|
# web_safari, mweb og tv_simply gav slet ingen formater), og 403'erne kom af
|
||||||
|
# mange samtidige hentninger, som kø-låsen nu forhindrer. Klientfeltet bliver
|
||||||
|
# stående, hvis en anden klient senere viser sig bedre.
|
||||||
|
FORSOEG = [(0, ""), (30, ""), (120, "")]
|
||||||
|
|
||||||
|
|
||||||
def midlertidig(err: str) -> bool:
|
def midlertidig(err: str) -> bool:
|
||||||
@@ -203,8 +206,8 @@ async def _run_ytdlp(job: dict, settings: dict) -> dict:
|
|||||||
uafhængigt af selve videoen, og uden dette fald-tilbage ville en 429 på en
|
uafhængigt af selve videoen, og uden dette fald-tilbage ville en 429 på en
|
||||||
undertekstfil vælte hele hentningen. Vi prøver derfor én gang mere uden dem.
|
undertekstfil vælte hele hentningen. Vi prøver derfor én gang mere uden dem.
|
||||||
|
|
||||||
Midlertidige fejl (403/429/timeout) prøves igen op til to gange med pause
|
Midlertidige fejl (403/429/timeout) prøves igen op til to gange med
|
||||||
og en anden YouTube-klient (FORSOEG).
|
stigende pause (FORSOEG).
|
||||||
"""
|
"""
|
||||||
want_subs = bool(settings.get("subtitles", True))
|
want_subs = bool(settings.get("subtitles", True))
|
||||||
res = {"ok": False, "error": "ingen forsøg"}
|
res = {"ok": False, "error": "ingen forsøg"}
|
||||||
|
|||||||
Reference in New Issue
Block a user