瀏覽代碼

[extractor/generic:3qsdn] Add support for embeds

Sergey M․ 9 年之前
父節點
當前提交
5d39176f6d
共有 2 個文件被更改,包括 13 次插入0 次删除
  1. 6 0
      youtube_dl/extractor/generic.py
  2. 7 0
      youtube_dl/extractor/threeqsdn.py

+ 6 - 0
youtube_dl/extractor/generic.py

@@ -61,6 +61,7 @@ from .jwplatform import JWPlatformIE
 from .digiteka import DigitekaIE
 from .digiteka import DigitekaIE
 from .instagram import InstagramIE
 from .instagram import InstagramIE
 from .liveleak import LiveLeakIE
 from .liveleak import LiveLeakIE
+from .threeqsdn import ThreeQSDNIE
 
 
 
 
 class GenericIE(InfoExtractor):
 class GenericIE(InfoExtractor):
@@ -1983,6 +1984,11 @@ class GenericIE(InfoExtractor):
         if liveleak_url:
         if liveleak_url:
             return self.url_result(liveleak_url, 'LiveLeak')
             return self.url_result(liveleak_url, 'LiveLeak')
 
 
+        # Look for 3Q SDN embeds
+        threeqsdn_url = ThreeQSDNIE._extract_url(webpage)
+        if threeqsdn_url:
+            return self.url_result(self._proto_relative_url(threeqsdn_url), ThreeQSDNIE.ie_key())
+
         def check_video(vurl):
         def check_video(vurl):
             if YoutubeIE.suitable(vurl):
             if YoutubeIE.suitable(vurl):
                 return True
                 return True

+ 7 - 0
youtube_dl/extractor/threeqsdn.py

@@ -56,6 +56,13 @@ class ThreeQSDNIE(InfoExtractor):
         'only_matching': True,
         'only_matching': True,
     }]
     }]
 
 
+    @staticmethod
+    def _extract_url(webpage):
+        mobj = re.search(
+            r'<iframe[^>]+\b(?:data-)?src=(["\'])(?P<url>%s.*?)\1' % ThreeQSDNIE._VALID_URL, webpage)
+        if mobj:
+            return mobj.group('url')
+
     def _real_extract(self, url):
     def _real_extract(self, url):
         video_id = self._match_id(url)
         video_id = self._match_id(url)