diff options
author | Tom-Oliver Heidel <github@tom-oliver.eu> | 2020-08-31 23:38:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-31 23:38:33 +0200 |
commit | ba304106ded5c883c2732e0d8ad7c79c87350f02 (patch) | |
tree | 13d3e0e24663dd580d50c0efe81dfb7463141a06 | |
parent | 7f3558b00cd3723d4d4525e2ef9d013f10906510 (diff) | |
parent | 9f13f9d18a633eef0ba07812390e43641168676b (diff) | |
download | hypervideo-pre-ba304106ded5c883c2732e0d8ad7c79c87350f02.tar.lz hypervideo-pre-ba304106ded5c883c2732e0d8ad7c79c87350f02.tar.xz hypervideo-pre-ba304106ded5c883c2732e0d8ad7c79c87350f02.zip |
Merge pull request #11 from gschizas/bugfix/youtube/chapters-fix-extractor
Bugfix/youtube/chapters fix extractor
-rw-r--r-- | youtube_dl/extractor/youtube.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index b35bf03aa..03b726942 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1661,21 +1661,15 @@ class YoutubeIE(YoutubeBaseInfoExtractor): def _extract_chapters_from_json(self, webpage, video_id, duration): if not webpage: return - player = self._parse_json( + initial_data = self._parse_json( self._search_regex( - r'RELATED_PLAYER_ARGS["\']\s*:\s*({.+})\s*,?\s*\n', webpage, + r'window\["ytInitialData"\] = (.+);\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): + if not initial_data or not isinstance(initial_data, dict): return chapters_list = try_get( - response, + initial_data, lambda x: x['playerOverlays'] ['playerOverlayRenderer'] ['decoratedPlayerBarRenderer'] |