summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-05-14 23:40:34 +0600
committerSergey M․ <dstftw@gmail.com>2016-05-14 23:40:34 +0600
commit5d39176f6de8bab1e019ead7cd497659f3fc1a94 (patch)
tree9a53ce39d2578f15d6efe86a10bffc3958be4738
parent5c86bfe70ff0048e59c6e890af14a055522fd3fd (diff)
downloadyoutube-dl-5d39176f6de8bab1e019ead7cd497659f3fc1a94.tar.gz
youtube-dl-5d39176f6de8bab1e019ead7cd497659f3fc1a94.tar.xz
youtube-dl-5d39176f6de8bab1e019ead7cd497659f3fc1a94.zip
[extractor/generic:3qsdn] Add support for embeds
-rw-r--r--youtube_dl/extractor/generic.py6
-rw-r--r--youtube_dl/extractor/threeqsdn.py7
2 files changed, 13 insertions, 0 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 0f1eb7fa6..b48ccfc97 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -61,6 +61,7 @@ from .jwplatform import JWPlatformIE
 from .digiteka import DigitekaIE
 from .instagram import InstagramIE
 from .liveleak import LiveLeakIE
+from .threeqsdn import ThreeQSDNIE
 
 
 class GenericIE(InfoExtractor):
@@ -1983,6 +1984,11 @@ class GenericIE(InfoExtractor):
         if liveleak_url:
             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):
             if YoutubeIE.suitable(vurl):
                 return True
diff --git a/youtube_dl/extractor/threeqsdn.py b/youtube_dl/extractor/threeqsdn.py
index 27a3de5c4..c77a07989 100644
--- a/youtube_dl/extractor/threeqsdn.py
+++ b/youtube_dl/extractor/threeqsdn.py
@@ -56,6 +56,13 @@ class ThreeQSDNIE(InfoExtractor):
         '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):
         video_id = self._match_id(url)