diff options
Diffstat (limited to 'youtube_dl/extractor/generic.py')
| -rw-r--r-- | youtube_dl/extractor/generic.py | 75 | 
1 files changed, 59 insertions, 16 deletions
| diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 4d649fe71..6a2ce0d6d 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -25,6 +25,7 @@ from ..utils import (  from .brightcove import BrightcoveIE  from .ooyala import OoyalaIE  from .rutv import RUTVIE +from .smotri import SmotriIE  class GenericIE(InfoExtractor): @@ -81,6 +82,17 @@ class GenericIE(InfoExtractor):              },              'add_ie': ['Brightcove'],          }, +        { +            'url': 'http://www.championat.com/video/football/v/87/87499.html', +            'md5': 'fb973ecf6e4a78a67453647444222983', +            'info_dict': { +                'id': '3414141473001', +                'ext': 'mp4', +                'title': 'Видео. Удаление Дзагоева (ЦСКА)', +                'description': 'Онлайн-трансляция матча ЦСКА - "Волга"', +                'uploader': 'Championat', +            }, +        },          # Direct link to a video          {              'url': 'http://media.w3.org/2010/05/sintel/trailer.mp4', @@ -102,20 +114,6 @@ class GenericIE(InfoExtractor):                  'title': '2cc213299525360.mov',  # that's what we get              },          }, -        # second style of embedded ooyala videos -        { -            'url': 'http://www.smh.com.au/tv/business/show/financial-review-sunday/behind-the-scenes-financial-review-sunday--4350201.html', -            'info_dict': { -                'id': '13djJjYjptA1XpPx8r9kuzPyj3UZH0Uk', -                'ext': 'mp4', -                'title': 'Behind-the-scenes: Financial Review Sunday ', -                'description': 'Step inside Channel Nine studios for an exclusive tour of its upcoming financial business show.', -            }, -            'params': { -                # m3u8 download -                'skip_download': True, -            }, -        },          # google redirect          {              'url': 'http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCUQtwIwAA&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DcmQHVoWB5FY&ei=F-sNU-LLCaXk4QT52ICQBQ&usg=AFQjCNEw4hL29zgOohLXvpJ-Bdh2bils1Q&bvm=bv.61965928,d.bGE', @@ -197,6 +195,36 @@ class GenericIE(InfoExtractor):                  'description': 'No description',              },          }, +        # arte embed +        { +            'url': 'http://www.tv-replay.fr/redirection/20-03-14/x-enius-arte-10753389.html', +            'md5': '7653032cbb25bf6c80d80f217055fa43', +            'info_dict': { +                'id': '048195-004_PLUS7-F', +                'ext': 'flv', +                'title': 'X:enius', +                'description': 'md5:d5fdf32ef6613cdbfd516ae658abf168', +                'upload_date': '20140320', +            }, +            'params': { +                'skip_download': 'Requires rtmpdump' +            } +        }, +        # smotri embed +        { +            'url': 'http://rbctv.rbc.ru/archive/news/562949990879132.shtml', +            'md5': 'ec40048448e9284c9a1de77bb188108b', +            'info_dict': { +                'id': 'v27008541fad', +                'ext': 'mp4', +                'title': 'Крым и Севастополь вошли в состав России', +                'description': 'md5:fae01b61f68984c7bd2fa741e11c3175', +                'duration': 900, +                'upload_date': '20140318', +                'uploader': 'rbctv_2012_4', +                'uploader_id': 'rbctv_2012_4', +            }, +        },      ]      def report_download_webpage(self, video_id): @@ -285,13 +313,16 @@ class GenericIE(InfoExtractor):          if not parsed_url.scheme:              default_search = self._downloader.params.get('default_search')              if default_search is None: -                default_search = 'auto' +                default_search = 'auto_warning' -            if default_search == 'auto': +            if default_search in ('auto', 'auto_warning'):                  if '/' in url:                      self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http')                      return self.url_result('http://' + url)                  else: +                    if default_search == 'auto_warning': +                        self._downloader.report_warning( +                            'Falling back to youtube search for  %s . Set --default-search to "auto" to suppress this warning.' % url)                      return self.url_result('ytsearch:' + url)              else:                  assert ':' in default_search @@ -525,6 +556,18 @@ class GenericIE(InfoExtractor):          if mobj is not None:              return self.url_result(mobj.group('url'), 'TED') +        # Look for embedded arte.tv player +        mobj = re.search( +            r'<script [^>]*?src="(?P<url>http://www\.arte\.tv/playerv2/embed[^"]+)"', +            webpage) +        if mobj is not None: +            return self.url_result(mobj.group('url'), 'ArteTVEmbed') + +        # Look for embedded smotri.com player +        smotri_url = SmotriIE._extract_url(webpage) +        if smotri_url: +            return self.url_result(smotri_url, 'Smotri') +          # Start with something easy: JW Player in SWFObject          mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage)          if mobj is None: | 
