|
@@ -14,6 +14,7 @@ from ..utils import (
|
|
|
compat_urllib_request,
|
|
|
|
|
|
ExtractorError,
|
|
|
+ unsmuggle_url,
|
|
|
)
|
|
|
|
|
|
|
|
@@ -121,6 +122,8 @@ class BrightcoveIE(InfoExtractor):
|
|
|
return None
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
+ url, smuggled_data = unsmuggle_url(url, {})
|
|
|
+
|
|
|
# Change the 'videoId' and others field to '@videoPlayer'
|
|
|
url = re.sub(r'(?<=[?&])(videoI(d|D)|bctid)', '%40videoPlayer', url)
|
|
|
# Change bckey (used by bcove.me urls) to playerKey
|
|
@@ -131,9 +134,10 @@ class BrightcoveIE(InfoExtractor):
|
|
|
|
|
|
videoPlayer = query.get('@videoPlayer')
|
|
|
if videoPlayer:
|
|
|
- return self._get_video_info(videoPlayer[0], query_str, query,
|
|
|
- # We set the original url as the default 'Referer' header
|
|
|
- referer=url)
|
|
|
+ # We set the original url as the default 'Referer' header
|
|
|
+ referer = smuggled_data.get('Referer', url)
|
|
|
+ return self._get_video_info(
|
|
|
+ videoPlayer[0], query_str, query, referer=referer)
|
|
|
else:
|
|
|
player_key = query['playerKey']
|
|
|
return self._get_playlist_info(player_key[0])
|