Skip to content

Commit

Permalink
[youtube] Make --extractor-retries work for more errors
Browse files Browse the repository at this point in the history
Closes yt-dlp#507
  • Loading branch information
pukkandan committed Jul 21, 2021
1 parent e37d0ef commit 9c0d7f4
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions yt_dlp/extractor/youtube.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
int_or_none,
intlist_to_bytes,
mimetype2ext,
network_exceptions,
orderedSet,
parse_codecs,
parse_count,
Expand Down Expand Up @@ -760,12 +761,15 @@ def _extract_response(self, item_id, query, note='Downloading API JSON', headers
api_hostname=api_hostname, default_client=default_client,
note='%s%s' % (note, ' (retry #%d)' % count if count else ''))
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
# Sometimes a 404 is also recieved. See: https://github.com/ytdl-org/youtube-dl/issues/28289
last_error = 'HTTP Error %s' % e.cause.code
if count < retries:
continue
# 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:
continue
if fatal:
raise
else:
Expand Down

0 comments on commit 9c0d7f4

Please sign in to comment.