|
|
@ -148,13 +148,34 @@ class NRKBaseIE(InfoExtractor): |
|
|
|
|
|
|
|
vcodec = 'none' if data.get('mediaType') == 'Audio' else None |
|
|
|
|
|
|
|
# TODO: extract chapters when https://github.com/rg3/youtube-dl/pull/9409 is merged |
|
|
|
|
|
|
|
for entry in entries: |
|
|
|
entry.update(common_info) |
|
|
|
for f in entry['formats']: |
|
|
|
f['vcodec'] = vcodec |
|
|
|
|
|
|
|
points = data.get('shortIndexPoints') |
|
|
|
if isinstance(points, list): |
|
|
|
chapters = [] |
|
|
|
for next_num, point in enumerate(points, start=1): |
|
|
|
if not isinstance(point, dict): |
|
|
|
continue |
|
|
|
start_time = parse_duration(point.get('startPoint')) |
|
|
|
if start_time is None: |
|
|
|
continue |
|
|
|
end_time = parse_duration( |
|
|
|
data.get('duration') |
|
|
|
if next_num == len(points) |
|
|
|
else points[next_num].get('startPoint')) |
|
|
|
if end_time is None: |
|
|
|
continue |
|
|
|
chapters.append({ |
|
|
|
'start_time': start_time, |
|
|
|
'end_time': end_time, |
|
|
|
'title': point.get('title'), |
|
|
|
}) |
|
|
|
if chapters and len(entries) == 1: |
|
|
|
entries[0]['chapters'] = chapters |
|
|
|
|
|
|
|
return self.playlist_result(entries, video_id, title, description) |
|
|
|
|
|
|
|
|
|
|
|