[tudou] Extract player URL from the webpage
authorSergey M․ <dstftw@gmail.com>
Wed, 5 Aug 2015 17:07:52 +0000 (23:07 +0600)
committerSergey M․ <dstftw@gmail.com>
Wed, 5 Aug 2015 17:07:52 +0000 (23:07 +0600)
youtube_dl/extractor/tudou.py

index 9b934cb57b919de2e9f176cb7994251c558efab4..84fe71aef8501dcd9055dc517ae9097844d99a5d 100644 (file)
@@ -30,7 +30,7 @@ class TudouIE(InfoExtractor):
     }]
 
     _PLAYER_URL = 'http://js.tudouui.com/bin/lingtong/PortalPlayer_177.swf'
-       
+
     def _url_for_id(self, id, quality=None):
         info_url = "http://v2.tudou.com/f?id=" + str(id)
         if quality:
@@ -56,6 +56,10 @@ class TudouIE(InfoExtractor):
         thumbnail_url = self._search_regex(
             r",pic:\s*[\"'](.+?)[\"']", webpage, 'thumbnail URL', fatal=False)
 
+        player_url = self._search_regex(
+            r"playerUrl\s*:\s*['\"](.+?\.swf)[\"']",
+            webpage, 'player URL', default=self._PLAYER_URL)
+
         segs_json = self._search_regex(r'segs: \'(.*)\'', webpage, 'segments')
         segments = json.loads(segs_json)
         # It looks like the keys are the arguments that have to be passed as
@@ -79,7 +83,7 @@ class TudouIE(InfoExtractor):
                 'title': title,
                 'thumbnail': thumbnail_url,
                 'http_headers': {
-                    'Referer': self._PLAYER_URL,
+                    'Referer': player_url,
                 },
             }
             result.append(part_info)