@ -3426,7 +3426,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
# Pinned comments may appear a second time in newest first sort
# Pinned comments may appear a second time in newest first sort
# See: https://github.com/yt-dlp/yt-dlp/issues/6712
# See: https://github.com/yt-dlp/yt-dlp/issues/6712
continue
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
yield
else :
else :
tracker [ ' seen_comment_ids ' ] . add ( comment [ ' id ' ] )
tracker [ ' seen_comment_ids ' ] . add ( comment [ ' id ' ] )
@ -3517,11 +3519,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
# Ignore incomplete data error for replies if retries didn't work.
# 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.
# This is to allow any other parent comments and comment threads to be downloaded.
# See: https://github.com/yt-dlp/yt-dlp/issues/4669
# 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 :
if ' incomplete data ' in str ( e ) . lower ( ) and parent :
if self . get_param ( ' ignoreerrors ' ) in ( True , ' only_download ' ) :
self . report_warning (
self . report_warning (
' Received incomplete data for a comment reply thread and retrying did not help. '
' Received incomplete data for a comment reply thread and retrying did not help. '
' Ignoring to let other comments be downloaded. ' )
' Ignoring to let other comments be downloaded. Pass --no-ignore-errors to not ignore. ' )
return
else :
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
raise
is_forced_continuation = False
is_forced_continuation = False
continuation = None
continuation = None