diff options
Diffstat (limited to 'hypervideo_dl/extractor/rcs.py')
| -rw-r--r-- | hypervideo_dl/extractor/rcs.py | 49 | 
1 files changed, 19 insertions, 30 deletions
| diff --git a/hypervideo_dl/extractor/rcs.py b/hypervideo_dl/extractor/rcs.py index ace611b..b905f8d 100644 --- a/hypervideo_dl/extractor/rcs.py +++ b/hypervideo_dl/extractor/rcs.py @@ -1,14 +1,11 @@ -# coding: utf-8 -from __future__ import unicode_literals -  import re  from .common import InfoExtractor  from ..utils import ( -    clean_html,      ExtractorError, -    js_to_json,      base_url, +    clean_html, +    js_to_json,      url_basename,      urljoin,  ) @@ -199,7 +196,6 @@ class RCSBaseIE(InfoExtractor):                  'format_id': 'http-mp4',                  'url': urls['mp4']              }) -        self._sort_formats(formats)          return formats      def _real_extract(self, url): @@ -284,6 +280,20 @@ class RCSEmbedsIE(RCSBaseIE):                          (?:gazzanet\.)?gazzetta                      )\.it)                      /video-embed/(?P<id>[^/=&\?]+?)(?:$|\?)''' +    _EMBED_REGEX = [r'''(?x) +            (?: +                data-frame-src=| +                <iframe[^\n]+src= +            ) +            (["']) +                (?P<url>(?:https?:)?//video\. +                    (?: +                        rcs| +                        (?:corriere\w+\.)?corriere| +                        (?:gazzanet\.)?gazzetta +                    ) +                \.it/video-embed/.+?) +            \1''']      _TESTS = [{          'url': 'https://video.rcs.it/video-embed/iodonna-0001585037',          'md5': '623ecc8ffe7299b2d0c1046d8331a9df', @@ -324,30 +334,9 @@ class RCSEmbedsIE(RCSBaseIE):              urls[i] = urljoin(base_url(e), url_basename(e))          return urls -    @staticmethod -    def _extract_urls(webpage): -        entries = [ -            mobj.group('url') -            for mobj in re.finditer(r'''(?x) -            (?: -                data-frame-src=| -                <iframe[^\n]+src= -            ) -            (["']) -                (?P<url>(?:https?:)?//video\. -                    (?: -                        rcs| -                        (?:corriere\w+\.)?corriere| -                        (?:gazzanet\.)?gazzetta -                    ) -                \.it/video-embed/.+?) -            \1''', webpage)] -        return RCSEmbedsIE._sanitize_urls(entries) - -    @staticmethod -    def _extract_url(webpage): -        urls = RCSEmbedsIE._extract_urls(webpage) -        return urls[0] if urls else None +    @classmethod +    def _extract_embed_urls(cls, url, webpage): +        return cls._sanitize_urls(list(super()._extract_embed_urls(url, webpage)))  class RCSIE(RCSBaseIE): | 
