aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/vice.py
blob: ae1faca1cd6ece5d33a7950b858ec078b55b29e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from __future__ import unicode_literals
import re

from .common import InfoExtractor
from .ooyala import OoyalaIE
from ..utils import ExtractorError


class ViceIE(InfoExtractor):
    _VALID_URL = r'https?://(?:.+?\.)?vice\.com/.*?/(?P<name>.+)'

    _TESTS = [
        {
            'url': 'http://www.vice.com/Fringes/cowboy-capitalists-part-1',
            'info_dict': {
                'id': '43cW1mYzpia9IlestBjVpd23Yu3afAfp',
                'ext': 'mp4',
                'title': 'VICE_COWBOYCAPITALISTS_PART01_v1_VICE_WM_1080p.mov',
            },
            'params': {
                # Requires ffmpeg (m3u8 manifest)
                'skip_download': True,
            },
        }, {
            'url': 'https://news.vice.com/video/experimenting-on-animals-inside-the-monkey-lab',
            'only_matching': True,
        }
    ]

    def _real_extract(self, url):
        mobj = re.match(self._VALID_URL, url)
        name = mobj.group('name')
        webpage = self._download_webpage(url, name)
        try:
            embed_code = self._search_regex(
                r'embedCode=([^&\'"]+)', webpage,
                'ooyala embed code')
            ooyala_url = OoyalaIE._url_for_embed_code(embed_code)
        except ExtractorError:
            raise ExtractorError('The page doesn\'t contain a video', expected=True)
        return self.url_result(ooyala_url, ie='Ooyala')