commit: efef4ddf51c375c3a9eb12355a61a21d69aec33f
parent 159a3d48dfb2b4ed77dc691433e420506c9340c3
Author: Remita Amine <remitamine@gmail.com>
Date: Mon, 1 Feb 2021 16:49:52 +0100
[youtube] fix chapter extraction fallback
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py
@@ -1753,22 +1753,25 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
continue
def chapter_time(mmlir):
- return parse_duration(mmlir.get(
- get_text(mmlir.get('timeDescription'))))
+ return parse_duration(
+ get_text(mmlir.get('timeDescription')))
+ chapters = []
for next_num, content in enumerate(contents, start=1):
mmlir = content.get('macroMarkersListItemRenderer') or {}
start_time = chapter_time(mmlir)
end_time = chapter_time(try_get(
contents, lambda x: x[next_num]['macroMarkersListItemRenderer'])) \
if next_num < len(contents) else duration
- if not (start_time and end_time):
+ if start_time is None or end_time is None:
continue
chapters.append({
'start_time': start_time,
'end_time': end_time,
'title': get_text(mmlir.get('title')),
})
+ if chapters:
+ break
if chapters:
info['chapters'] = chapters