mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-09-10 00:58:17 +02:00
[9now] Improve video data extraction (Closes #10561)
This commit is contained in:
parent
7324243750
commit
56c0ead4d3
@ -44,14 +44,20 @@ def _real_extract(self, url):
|
|||||||
page_data = self._parse_json(self._search_regex(
|
page_data = self._parse_json(self._search_regex(
|
||||||
r'window\.__data\s*=\s*({.*?});', webpage,
|
r'window\.__data\s*=\s*({.*?});', webpage,
|
||||||
'page data'), display_id)
|
'page data'), display_id)
|
||||||
current_key = (
|
|
||||||
page_data.get('episode', {}).get('currentEpisodeKey') or
|
for kind in ('episode', 'clip'):
|
||||||
page_data.get('clip', {}).get('currentClipKey')
|
current_key = page_data.get(kind, {}).get(
|
||||||
)
|
'current%sKey' % kind.capitalize())
|
||||||
common_data = (
|
if not current_key:
|
||||||
page_data.get('episode', {}).get('episodeCache', {}).get(current_key, {}).get('episode') or
|
continue
|
||||||
page_data.get('clip', {}).get('clipCache', {}).get(current_key, {}).get('clip')
|
cache = page_data.get(kind, {}).get('%sCache' % kind, {})
|
||||||
)
|
if not cache:
|
||||||
|
continue
|
||||||
|
common_data = (cache.get(current_key) or list(cache.values())[0])[kind]
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise ExtractorError('Unable to find video data')
|
||||||
|
|
||||||
video_data = common_data['video']
|
video_data = common_data['video']
|
||||||
|
|
||||||
if video_data.get('drm'):
|
if video_data.get('drm'):
|
||||||
|
Loading…
Reference in New Issue
Block a user