[youtube] Fix chapters extraction (closes #26005)
This commit is contained in:
parent
b92e95aa01
commit
7d509c613b
1 changed files with 3 additions and 13 deletions
|
@ -1465,21 +1465,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||
def _extract_chapters_from_json(self, webpage, video_id, duration):
|
||||
if not webpage:
|
||||
return
|
||||
player = self._parse_json(
|
||||
self._search_regex(
|
||||
r'RELATED_PLAYER_ARGS["\']\s*:\s*({.+})\s*,?\s*\n', webpage,
|
||||
'player args', default='{}'),
|
||||
video_id, fatal=False)
|
||||
if not player or not isinstance(player, dict):
|
||||
return
|
||||
watch_next_response = player.get('watch_next_response')
|
||||
if not isinstance(watch_next_response, compat_str):
|
||||
return
|
||||
response = self._parse_json(watch_next_response, video_id, fatal=False)
|
||||
if not response or not isinstance(response, dict):
|
||||
data = self._extract_yt_initial_data(video_id, webpage)
|
||||
if not data or not isinstance(data, dict):
|
||||
return
|
||||
chapters_list = try_get(
|
||||
response,
|
||||
data,
|
||||
lambda x: x['playerOverlays']
|
||||
['playerOverlayRenderer']
|
||||
['decoratedPlayerBarRenderer']
|
||||
|
|
Loading…
Reference in a new issue