[youtube] Make `--extractor-retries` work for more errors

Closes #507
pull/545/head
pukkandan 3 years ago
parent e37d0efbd9
commit 9c0d7f4951
No known key found for this signature in database
GPG Key ID: 0F00D95A001F4698

@ -39,6 +39,7 @@ from ..utils import (
int_or_none, int_or_none,
intlist_to_bytes, intlist_to_bytes,
mimetype2ext, mimetype2ext,
network_exceptions,
orderedSet, orderedSet,
parse_codecs, parse_codecs,
parse_count, parse_count,
@ -760,10 +761,13 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
api_hostname=api_hostname, default_client=default_client, api_hostname=api_hostname, default_client=default_client,
note='%s%s' % (note, ' (retry #%d)' % count if count else '')) note='%s%s' % (note, ' (retry #%d)' % count if count else ''))
except ExtractorError as e: except ExtractorError as e:
if isinstance(e.cause, compat_HTTPError) and e.cause.code in (500, 503, 404): if isinstance(e.cause, network_exceptions):
# Downloading page may result in intermittent 5xx HTTP error # Downloading page may result in intermittent 5xx HTTP error
# Sometimes a 404 is also recieved. See: https://github.com/ytdl-org/youtube-dl/issues/28289 # Sometimes a 404 is also recieved. See: https://github.com/ytdl-org/youtube-dl/issues/28289
last_error = 'HTTP Error %s' % e.cause.code # We also want to catch all other network exceptions since errors in later pages can be troublesome
# See https://github.com/yt-dlp/yt-dlp/issues/507#issuecomment-880188210
if not isinstance(e.cause, compat_HTTPError) or e.cause.code not in (403, 429):
last_error = error_to_compat_str(e.cause or e)
if count < retries: if count < retries:
continue continue
if fatal: if fatal:

Loading…
Cancel
Save