yt-dlp/youtube_dl/extractor/trollvids.py
Andrew "Akari" Alexeyew d570746e45 [nuevo] Generalize nuevo extractor and add support for trollvids
Supports only the nuevo player for now (most common).

[trollvids] convert duration to an int

[trollvids] added a test

[trollvids] made flake8 shut up

Generalized the Nuevo extractor

Affects: anitube, trollvids, trutube

[nuevo] Complied with the code comments.
2016-01-22 23:29:24 +06:00

49 lines
1.4 KiB
Python

# 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,
},
},
]