mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-26 02:55:17 +00:00
[brightcove] cache brightcove player policy keys
This commit is contained in:
parent
cb7e053e0a
commit
75ef77c1b1
1 changed files with 19 additions and 17 deletions
|
@ -586,24 +586,26 @@ def _real_extract(self, url):
|
||||||
|
|
||||||
account_id, player_id, embed, content_type, video_id = re.match(self._VALID_URL, url).groups()
|
account_id, player_id, embed, content_type, video_id = re.match(self._VALID_URL, url).groups()
|
||||||
|
|
||||||
webpage = self._download_webpage(
|
policy_key_id = '%s_%s' % (account_id, player_id)
|
||||||
'http://players.brightcove.net/%s/%s_%s/index.min.js'
|
policy_key = self._downloader.cache.load('brightcove', policy_key_id)
|
||||||
% (account_id, player_id, embed), video_id)
|
|
||||||
|
|
||||||
policy_key = None
|
|
||||||
|
|
||||||
catalog = self._search_regex(
|
|
||||||
r'catalog\(({.+?})\);', webpage, 'catalog', default=None)
|
|
||||||
if catalog:
|
|
||||||
catalog = self._parse_json(
|
|
||||||
js_to_json(catalog), video_id, fatal=False)
|
|
||||||
if catalog:
|
|
||||||
policy_key = catalog.get('policyKey')
|
|
||||||
|
|
||||||
if not policy_key:
|
if not policy_key:
|
||||||
policy_key = self._search_regex(
|
webpage = self._download_webpage(
|
||||||
r'policyKey\s*:\s*(["\'])(?P<pk>.+?)\1',
|
'http://players.brightcove.net/%s/%s_%s/index.min.js'
|
||||||
webpage, 'policy key', group='pk')
|
% (account_id, player_id, embed), video_id)
|
||||||
|
|
||||||
|
catalog = self._search_regex(
|
||||||
|
r'catalog\(({.+?})\);', webpage, 'catalog', default=None)
|
||||||
|
if catalog:
|
||||||
|
catalog = self._parse_json(
|
||||||
|
js_to_json(catalog), video_id, fatal=False)
|
||||||
|
if catalog:
|
||||||
|
policy_key = catalog.get('policyKey')
|
||||||
|
|
||||||
|
if not policy_key:
|
||||||
|
policy_key = self._search_regex(
|
||||||
|
r'policyKey\s*:\s*(["\'])(?P<pk>.+?)\1',
|
||||||
|
webpage, 'policy key', group='pk')
|
||||||
|
self._downloader.cache.store('brightcove', policy_key_id, policy_key)
|
||||||
|
|
||||||
api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/%ss/%s' % (account_id, content_type, video_id)
|
api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/%ss/%s' % (account_id, content_type, video_id)
|
||||||
headers = {
|
headers = {
|
||||||
|
|
Loading…
Reference in a new issue