mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-25 04:35:52 +01:00
[extractor/ArteTV] Extract chapters (#5879)
Authored by: iw0nderhow, bashonly
This commit is contained in:
parent
0ef3d47027
commit
15e9e578c0
@ -65,6 +65,21 @@ class ArteTVIE(ArteTVBaseIE):
|
|||||||
}, {
|
}, {
|
||||||
'url': 'https://api.arte.tv/api/player/v2/config/de/LIVE',
|
'url': 'https://api.arte.tv/api/player/v2/config/de/LIVE',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
'url': 'https://www.arte.tv/de/videos/110203-006-A/zaz/',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '110203-006-A',
|
||||||
|
'chapters': 'count:16',
|
||||||
|
'description': 'md5:cf592f1df52fe52007e3f8eac813c084',
|
||||||
|
'alt_title': 'Zaz',
|
||||||
|
'title': 'Baloise Session 2022',
|
||||||
|
'timestamp': 1668445200,
|
||||||
|
'duration': 4054,
|
||||||
|
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/ubQjmVCGyRx3hmBuZEK9QZ/940x530',
|
||||||
|
'upload_date': '20221114',
|
||||||
|
'ext': 'mp4',
|
||||||
|
},
|
||||||
|
'expected_warnings': ['geo restricted']
|
||||||
}]
|
}]
|
||||||
|
|
||||||
_GEO_BYPASS = True
|
_GEO_BYPASS = True
|
||||||
@ -180,9 +195,6 @@ def _real_extract(self, url):
|
|||||||
else:
|
else:
|
||||||
self.report_warning(f'Skipping stream with unknown protocol {stream["protocol"]}')
|
self.report_warning(f'Skipping stream with unknown protocol {stream["protocol"]}')
|
||||||
|
|
||||||
# TODO: chapters from stream['segments']?
|
|
||||||
# The JS also looks for chapters in config['data']['attributes']['chapters'],
|
|
||||||
# but I am yet to find a video having those
|
|
||||||
|
|
||||||
formats.extend(secondary_formats)
|
formats.extend(secondary_formats)
|
||||||
self._remove_duplicate_formats(formats)
|
self._remove_duplicate_formats(formats)
|
||||||
@ -205,6 +217,11 @@ def _real_extract(self, url):
|
|||||||
{'url': image['url'], 'id': image.get('caption')}
|
{'url': image['url'], 'id': image.get('caption')}
|
||||||
for image in metadata.get('images') or [] if url_or_none(image.get('url'))
|
for image in metadata.get('images') or [] if url_or_none(image.get('url'))
|
||||||
],
|
],
|
||||||
|
# TODO: chapters may also be in stream['segments']?
|
||||||
|
'chapters': traverse_obj(config, ('data', 'attributes', 'chapters', 'elements', ..., {
|
||||||
|
'start_time': 'startTime',
|
||||||
|
'title': 'title',
|
||||||
|
})) or None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user