diff options
author | Sergey M․ <dstftw@gmail.com> | 2017-10-11 21:59:30 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2017-10-11 21:59:30 +0700 |
commit | 26bae2d96509b5c5ec80c27c1ea754b53c53818c (patch) | |
tree | a5f38f9d354b076664abf22256a8d9ccc6869bda /youtube_dl/extractor | |
parent | 5fe75f976f6c8da76bfea68e073e5f35c4300442 (diff) | |
download | youtube-dl-26bae2d96509b5c5ec80c27c1ea754b53c53818c.tar.xz |
[generic] Add support for channel9 embeds (closes #14469)
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r-- | youtube_dl/extractor/channel9.py | 6 | ||||
-rw-r--r-- | youtube_dl/extractor/generic.py | 6 |
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(): |