Skip to content

Commit

Permalink
[extractor/youtube] Ignore incomplete data for comment threads by def…
Browse files Browse the repository at this point in the history
…ault (#7475)

For both `--ignore-errors` and `--ignore-errors only_download`. Pass `--no-ignore-errors` to not ignore.

Closes #7474

Authored by: coletdjnz
  • Loading branch information
coletdjnz committed Jul 3, 2023
1 parent 8776349 commit 4dc4d84
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions yt_dlp/extractor/youtube.py
Expand Up @@ -3426,7 +3426,9 @@ def extract_thread(contents):
# Pinned comments may appear a second time in newest first sort
# See: https://github.com/yt-dlp/yt-dlp/issues/6712
continue
self.report_warning('Detected YouTube comments looping. Stopping comment extraction as we probably cannot get any more.')
self.report_warning(
'Detected YouTube comments looping. Stopping comment extraction '
f'{"for this thread" if parent else ""} as we probably cannot get any more.')
yield
else:
tracker['seen_comment_ids'].add(comment['id'])
Expand Down Expand Up @@ -3517,12 +3519,18 @@ def extract_thread(contents):
# Ignore incomplete data error for replies if retries didn't work.
# This is to allow any other parent comments and comment threads to be downloaded.
# See: https://github.com/yt-dlp/yt-dlp/issues/4669
if 'incomplete data' in str(e).lower() and parent and self.get_param('ignoreerrors') is True:
self.report_warning(
'Received incomplete data for a comment reply thread and retrying did not help. '
'Ignoring to let other comments be downloaded.')
else:
raise
if 'incomplete data' in str(e).lower() and parent:
if self.get_param('ignoreerrors') in (True, 'only_download'):
self.report_warning(
'Received incomplete data for a comment reply thread and retrying did not help. '
'Ignoring to let other comments be downloaded. Pass --no-ignore-errors to not ignore.')
return
else:
raise ExtractorError(
'Incomplete data received for comment reply thread. '
'Pass --ignore-errors to ignore and allow rest of comments to download.',
expected=True)
raise
is_forced_continuation = False
continuation = None
for continuation_items in traverse_obj(response, continuation_items_path, expected_type=list, default=[]):
Expand Down

0 comments on commit 4dc4d84

Please sign in to comment.