aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
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 /youtube_dl
parent5fe75f976f6c8da76bfea68e073e5f35c4300442 (diff)
[generic] Add support for channel9 embeds (closes #14469)
Diffstat (limited to 'youtube_dl')
-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():