aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/trollvids.py
blob: e4fe620f724dcaf35ce11acd760d0cd79df4ca34 (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
42
43
44
45
46
47
48
49
# encoding: utf-8
from __future__ import unicode_literals

from .nuevo import NuevoBaseIE

from ..compat import (
    compat_urllib_parse_unquote
)

import re


class TrollvidsIE(NuevoBaseIE):
    _VALID_URL = r'http://(?:www\.)?trollvids\.com/+video/+(?P<id>[0-9]+)/+(?P<title>[^?&]+)'
    IE_NAME = 'trollvids'

    def _real_extract(self, url):
        match = re.match(self._VALID_URL, url)

        video_id = match.group('id')
        raw_video_title = match.group('title')
        url = 'http://trollvids.com/video/%s/%s' % (video_id, raw_video_title)
        config_url = 'http://trollvids.com/nuevo/player/config.php?v=%s' % video_id

        info = self._extract_nuevo(config_url, video_id)

        info.update({
            'webpage_url': url,
            'age_limit': 18
        })

        if 'title' not in info:
            info['title'] = compat_urllib_parse_unquote(raw_video_title)

        return info

    _TESTS = [
        {
            'url': 'http://trollvids.com/video/2349002/%E3%80%90MMD-R-18%E3%80%91%E3%82%AC%E3%83%BC%E3%83%AB%E3%83%95%E3%83%AC%E3%83%B3%E3%83%89-carrymeoff',
            'md5': '1d53866b2c514b23ed69e4352fdc9839',
            'info_dict': {
                'id': '2349002',
                'ext': 'mp4',
                'title': "【MMD R-18】ガールフレンド carry_me_off",
                'age_limit': 18,
                'duration': 216.78,
            },
        },
    ]