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')  | 
