[brightcove] Pass embed page URL as referrer (closes #15486)

This commit is contained in:
Sergey M․ 2018-02-04 07:52:50 +07:00
parent b91a7a4e5e
commit 5399ab3f0c
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
2 changed files with 14 additions and 4 deletions

View file

@ -690,10 +690,17 @@ def _real_extract(self, url):
webpage, 'policy key', group='pk') webpage, 'policy key', group='pk')
api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/videos/%s' % (account_id, video_id) api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/videos/%s' % (account_id, video_id)
try: headers = {
json_data = self._download_json(api_url, video_id, headers={ 'Accept': 'application/json;pk=%s' % policy_key,
'Accept': 'application/json;pk=%s' % policy_key }
referrer = smuggled_data.get('referrer')
if referrer:
headers.update({
'Referer': referrer,
'Origin': re.search(r'https?://[^/]+', referrer).group(0),
}) })
try:
json_data = self._download_json(api_url, video_id, headers=headers)
except ExtractorError as e: except ExtractorError as e:
if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403: if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403:
json_data = self._parse_json(e.cause.read().decode(), video_id)[0] json_data = self._parse_json(e.cause.read().decode(), video_id)[0]

View file

@ -2280,7 +2280,10 @@ def _real_extract(self, url):
# Look for Brightcove New Studio embeds # Look for Brightcove New Studio embeds
bc_urls = BrightcoveNewIE._extract_urls(self, webpage) bc_urls = BrightcoveNewIE._extract_urls(self, webpage)
if bc_urls: if bc_urls:
return self.playlist_from_matches(bc_urls, video_id, video_title, ie='BrightcoveNew') return self.playlist_from_matches(
bc_urls, video_id, video_title,
getter=lambda x: smuggle_url(x, {'referrer': url}),
ie='BrightcoveNew')
# Look for Nexx embeds # Look for Nexx embeds
nexx_urls = NexxIE._extract_urls(webpage) nexx_urls = NexxIE._extract_urls(webpage)