diff options
author | Sergey M․ <dstftw@gmail.com> | 2018-03-17 23:57:07 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2018-03-17 23:57:07 +0700 |
commit | 178ee88319a384b66d9b2da27a819f32ba870425 (patch) | |
tree | f2fd74e2a6ec939e972c932b37c84da3a20d4403 | |
parent | d12396085754a597c2c5e621e4a68471871e2cfd (diff) |
[generic] Add support for xfileshare embeds (closes #15879)
-rw-r--r-- | youtube_dl/extractor/generic.py | 6 | ||||
-rw-r--r-- | youtube_dl/extractor/xfileshare.py | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index a98f3636a..dbd565066 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -104,6 +104,7 @@ from .mediasite import MediasiteIE from .springboardplatform import SpringboardPlatformIE from .yapfiles import YapFilesIE from .vice import ViceIE +from .xfileshare import XFileShareIE class GenericIE(InfoExtractor): @@ -2971,6 +2972,11 @@ class GenericIE(InfoExtractor): return self.playlist_from_matches( vice_urls, video_id, video_title, ie=ViceIE.ie_key()) + xfileshare_urls = XFileShareIE._extract_urls(webpage) + if xfileshare_urls: + return self.playlist_from_matches( + xfileshare_urls, video_id, video_title, ie=XFileShareIE.ie_key()) + def merge_dicts(dict1, dict2): merged = {} for k, v in dict1.items(): diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index ad747978d..bc3239f68 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -118,6 +118,15 @@ class XFileShareIE(InfoExtractor): 'only_matching': True }] + @staticmethod + def _extract_urls(webpage): + return [ + mobj.group('url') + for mobj in re.finditer( + r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//(?:%s)/embed-[0-9a-zA-Z]+.*?)\1' + % '|'.join(site for site in list(zip(*XFileShareIE._SITES))[0]), + webpage)] + def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') |