]> gitweb @ CieloNegro.org - youtube-dl.git/blobdiff - youtube_dl/extractor/brightcove.py
[ted] Updated checksums
[youtube-dl.git] / youtube_dl / extractor / brightcove.py
index 4351565d5e8760c96ec0c7bc5d9119410bdb1103..8ac38f4aa71e1fe63e51e1267f4a80919431621f 100644 (file)
@@ -14,6 +14,7 @@ from ..utils import (
     compat_urllib_request,
 
     ExtractorError,
+    unsmuggle_url,
 )
 
 
@@ -85,9 +86,9 @@ class BrightcoveIE(InfoExtractor):
 
         object_doc = xml.etree.ElementTree.fromstring(object_str)
         assert 'BrightcoveExperience' in object_doc.attrib['class']
-        params = {'flashID': object_doc.attrib['id'],
-                  'playerID': find_xpath_attr(object_doc, './param', 'name', 'playerID').attrib['value'],
-                  }
+        params = {
+            'playerID': find_xpath_attr(object_doc, './param', 'name', 'playerID').attrib['value'],
+        }
         def find_param(name):
             node = find_xpath_attr(object_doc, './param', 'name', name)
             if node is not None:
@@ -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])