diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/ooyala.py | 4 | ||||
| -rw-r--r-- | youtube_dl/extractor/vice.py | 38 | 
3 files changed, 43 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 7973a81d0..761575062 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -104,6 +104,7 @@ from .vbox7 import Vbox7IE  from .veehd import VeeHDIE  from .veoh import VeohIE  from .vevo import VevoIE +from .vice import ViceIE  from .videofyme import VideofyMeIE  from .vimeo import VimeoIE, VimeoChannelIE  from .vine import VineIE diff --git a/youtube_dl/extractor/ooyala.py b/youtube_dl/extractor/ooyala.py index d189a9852..1f7b4d2e7 100644 --- a/youtube_dl/extractor/ooyala.py +++ b/youtube_dl/extractor/ooyala.py @@ -18,6 +18,10 @@ class OoyalaIE(InfoExtractor):          },      } +    @staticmethod +    def _url_for_embed_code(embed_code): +        return 'http://player.ooyala.com/player.js?embedCode=%s' % embed_code +      def _extract_result(self, info, more_info):          return {'id': info['embedCode'],                  'ext': 'mp4', diff --git a/youtube_dl/extractor/vice.py b/youtube_dl/extractor/vice.py new file mode 100644 index 000000000..6b93afa50 --- /dev/null +++ b/youtube_dl/extractor/vice.py @@ -0,0 +1,38 @@ +import re + +from .common import InfoExtractor +from .ooyala import OoyalaIE +from ..utils import ExtractorError + + +class ViceIE(InfoExtractor): +    _VALID_URL = r'http://www.vice.com/.*?/(?P<name>.+)' + +    _TEST = { +        u'url': u'http://www.vice.com/Fringes/cowboy-capitalists-part-1', +        u'file': u'43cW1mYzpia9IlestBjVpd23Yu3afAfp.mp4', +        u'info_dict': { +            u'title': u'VICE_COWBOYCAPITALISTS_PART01_v1_VICE_WM_1080p.mov', +        }, +        u'params': { +            # Requires ffmpeg (m3u8 manifest) +            u'skip_download': True, +        }, +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        name = mobj.group('name') +        webpage = self._download_webpage(url, name) +        try: +            ooyala_url = self._og_search_video_url(webpage) +        except ExtractorError: +            try: +                embed_code = self._search_regex( +                    r'OO.Player.create\(\'ooyalaplayer\', \'(.+?)\'', webpage, +                    u'ooyala embed code') +                ooyala_url = OoyalaIE._url_for_embed_code(embed_code) +            except ExtractorError: +                raise ExtractorError(u'The page doesn\'t contain a video', expected=True) +        return self.url_result(ooyala_url, ie='Ooyala') + | 
