]> jfr.im git - yt-dlp.git/commitdiff
[youtube] Make `parse_time_text` and `_extract_chapters` non-fatal
authorpukkandan <redacted>
Tue, 20 Jul 2021 01:51:16 +0000 (07:21 +0530)
committerpukkandan <redacted>
Tue, 20 Jul 2021 01:52:26 +0000 (07:22 +0530)
Related: #532, 7c365c210939bcf3497f212a163ca1987f189421

yt_dlp/extractor/youtube.py

index a9c29062f5161ca0ea7a05d9fd7a1b3b5af2298a..f44624e3982a749a4ea6c120096e658370ff567d 100644 (file)
@@ -1950,7 +1950,7 @@ def _extract_chapters_from_engagement_panel(self, data, duration):
         content_list = traverse_obj(
             data,
             ('engagementPanels', ..., 'engagementPanelSectionListRenderer', 'content', 'macroMarkersListRenderer', 'contents'),
-            expected_type=list)
+            expected_type=list, default=[])
         chapter_time = lambda chapter: parse_duration(self._get_text(chapter.get('timeDescription')))
         chapter_title = lambda chapter: self._get_text(chapter.get('title'))
 
@@ -1996,7 +1996,10 @@ def parse_time_text(time_text):
         """
         time_text_split = time_text.split(' ')
         if len(time_text_split) >= 3:
-            return datetime_from_str('now-%s%s' % (time_text_split[0], time_text_split[1]), precision='auto')
+            try:
+                return datetime_from_str('now-%s%s' % (time_text_split[0], time_text_split[1]), precision='auto')
+            except ValueError:
+                return None
 
     def _extract_comment(self, comment_renderer, parent=None):
         comment_id = comment_renderer.get('commentId')