[extractor] Do not warn for invalid chapter data in description

Fixes https://github.com/yt-dlp/yt-dlp/issues/6811#issuecomment-1509876209
This commit is contained in:
pukkandan 2023-04-16 03:16:23 +05:30
parent 7666b93604
commit 84ffeb7d5e
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39
1 changed files with 8 additions and 4 deletions

View File

@ -3658,18 +3658,22 @@ class InfoExtractor:
'start_time': start_function(chapter),
'title': title_function(chapter),
} for chapter in chapter_list or []]
if not strict:
if strict:
warn = self.report_warning
else:
warn = self.write_debug
chapter_list.sort(key=lambda c: c['start_time'] or 0)
chapters = [{'start_time': 0}]
for idx, chapter in enumerate(chapter_list):
if chapter['start_time'] is None:
self.report_warning(f'Incomplete chapter {idx}')
warn(f'Incomplete chapter {idx}')
elif chapters[-1]['start_time'] <= chapter['start_time'] <= duration:
chapters.append(chapter)
elif chapter not in chapters:
self.report_warning(
f'Invalid start time ({chapter["start_time"]} < {chapters[-1]["start_time"]}) for chapter "{chapter["title"]}"')
issue = (f'{chapter["start_time"]} > {duration}' if chapter['start_time'] > duration
else f'{chapter["start_time"]} < {chapters[-1]["start_time"]}')
warn(f'Invalid start time ({issue}) for chapter "{chapter["title"]}"')
return chapters[1:]
def _extract_chapters_from_description(self, description, duration):