about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-10-11 21:59:30 +0700
committerSergey M․ <dstftw@gmail.com>2017-10-11 21:59:30 +0700
commit26bae2d96509b5c5ec80c27c1ea754b53c53818c (patch)
treea5f38f9d354b076664abf22256a8d9ccc6869bda
parent5fe75f976f6c8da76bfea68e073e5f35c4300442 (diff)
downloadyoutube-dl-26bae2d96509b5c5ec80c27c1ea754b53c53818c.tar.gz
youtube-dl-26bae2d96509b5c5ec80c27c1ea754b53c53818c.tar.xz
youtube-dl-26bae2d96509b5c5ec80c27c1ea754b53c53818c.zip
[generic] Add support for channel9 embeds (closes #14469)
-rw-r--r--youtube_dl/extractor/channel9.py6
-rw-r--r--youtube_dl/extractor/generic.py6
2 files changed, 12 insertions, 0 deletions
diff --git a/youtube_dl/extractor/channel9.py b/youtube_dl/extractor/channel9.py
index e92894246..81108e704 100644
--- a/youtube_dl/extractor/channel9.py
+++ b/youtube_dl/extractor/channel9.py
@@ -81,6 +81,12 @@ class Channel9IE(InfoExtractor):
 
     _RSS_URL = 'http://channel9.msdn.com/%s/RSS'
 
+    @staticmethod
+    def _extract_urls(webpage):
+        return re.findall(
+            r'<iframe[^>]+src=["\'](https?://channel9\.msdn\.com/(?:[^/]+/)+)player\b',
+            webpage)
+
     def _extract_list(self, video_id, rss_url=None):
         if not rss_url:
             rss_url = self._RSS_URL % video_id
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 68b633839..6dab4c7f4 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -101,6 +101,7 @@ from .mediaset import MediasetIE
 from .joj import JojIE
 from .megaphone import MegaphoneIE
 from .vzaar import VzaarIE
+from .channel9 import Channel9IE
 
 
 class GenericIE(InfoExtractor):
@@ -2871,6 +2872,11 @@ class GenericIE(InfoExtractor):
             return self.playlist_from_matches(
                 vzaar_urls, video_id, video_title, ie=VzaarIE.ie_key())
 
+        channel9_urls = Channel9IE._extract_urls(webpage)
+        if channel9_urls:
+            return self.playlist_from_matches(
+                channel9_urls, video_id, video_title, ie=Channel9IE.ie_key())
+
         def merge_dicts(dict1, dict2):
             merged = {}
             for k, v in dict1.items():