瀏覽代碼

[pbs] Simplify and speed up player URL search

Sergey M․ 9 年之前
父節點
當前提交
0fa6b17dcc
共有 1 個文件被更改,包括 7 次插入3 次删除
  1. 7 3
      youtube_dl/extractor/pbs.py

+ 7 - 3
youtube_dl/extractor/pbs.py

@@ -191,9 +191,13 @@ class PBSIE(InfoExtractor):
             if media_id:
             if media_id:
                 return media_id, presumptive_id, upload_date
                 return media_id, presumptive_id, upload_date
 
 
-            url = self._search_regex(
-                r'(?s)<iframe[^>]+?(?:[a-z-]+?=["\'].*?["\'][^>]+?)*?\bsrc=["\']([^\'"]+partnerplayer[^\'"]+)["\']',
-                webpage, 'player URL')
+            for iframe in re.findall(r'(?s)<iframe(.+?)></iframe>', webpage):
+                url = self._search_regex(
+                    r'src=(["\'])(?P<url>.+?partnerplayer.+?)\1', iframe,
+                    'player URL', default=None, group='url')
+                if url:
+                    break
+
             mobj = re.match(self._VALID_URL, url)
             mobj = re.match(self._VALID_URL, url)
 
 
         player_id = mobj.group('player_id')
         player_id = mobj.group('player_id')