|
@ -1,32 +1,30 @@ |
|
|
# encoding: utf-8 |
|
|
# encoding: utf-8 |
|
|
from __future__ import unicode_literals |
|
|
from __future__ import unicode_literals |
|
|
|
|
|
|
|
|
import re |
|
|
|
|
|
|
|
|
|
|
|
from .common import InfoExtractor |
|
|
from .common import InfoExtractor |
|
|
from ..utils import ( |
|
|
from ..utils import ( |
|
|
float_or_none, |
|
|
float_or_none, |
|
|
str_to_int, |
|
|
|
|
|
|
|
|
parse_age_limit, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TvigleIE(InfoExtractor): |
|
|
class TvigleIE(InfoExtractor): |
|
|
IE_NAME = 'tvigle' |
|
|
IE_NAME = 'tvigle' |
|
|
IE_DESC = 'Интернет-телевидение Tvigle.ru' |
|
|
IE_DESC = 'Интернет-телевидение Tvigle.ru' |
|
|
_VALID_URL = r'http://(?:www\.)?tvigle\.ru/(?:[^/]+/)+(?P<display_id>[^/]+)/$' |
|
|
|
|
|
|
|
|
_VALID_URL = r'http://(?:www\.)?tvigle\.ru/(?:[^/]+/)+(?P<id>[^/]+)/$' |
|
|
|
|
|
|
|
|
_TESTS = [ |
|
|
_TESTS = [ |
|
|
{ |
|
|
{ |
|
|
'url': 'http://www.tvigle.ru/video/brat/', |
|
|
|
|
|
'md5': 'ff4344a4894b0524441fb6f8218dc716', |
|
|
|
|
|
|
|
|
'url': 'http://www.tvigle.ru/video/sokrat/', |
|
|
|
|
|
'md5': '36514aed3657d4f70b4b2cef8eb520cd', |
|
|
'info_dict': { |
|
|
'info_dict': { |
|
|
'id': '5118490', |
|
|
|
|
|
'display_id': 'brat', |
|
|
|
|
|
'ext': 'mp4', |
|
|
|
|
|
'title': 'Брат', |
|
|
|
|
|
'description': 'md5:d16ac7c0b47052ea51fddb92c4e413eb', |
|
|
|
|
|
'duration': 5722.6, |
|
|
|
|
|
'age_limit': 16, |
|
|
|
|
|
|
|
|
'id': '1848932', |
|
|
|
|
|
'display_id': 'sokrat', |
|
|
|
|
|
'ext': 'flv', |
|
|
|
|
|
'title': 'Сократ', |
|
|
|
|
|
'description': 'md5:a05bd01be310074d5833efc6743be95e', |
|
|
|
|
|
'duration': 6586, |
|
|
|
|
|
'age_limit': 0, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
@ -44,8 +42,7 @@ class TvigleIE(InfoExtractor): |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
mobj = re.match(self._VALID_URL, url) |
|
|
|
|
|
display_id = mobj.group('display_id') |
|
|
|
|
|
|
|
|
display_id = self._match_id(url) |
|
|
|
|
|
|
|
|
webpage = self._download_webpage(url, display_id) |
|
|
webpage = self._download_webpage(url, display_id) |
|
|
|
|
|
|
|
@ -60,8 +57,8 @@ class TvigleIE(InfoExtractor): |
|
|
title = item['title'] |
|
|
title = item['title'] |
|
|
description = item['description'] |
|
|
description = item['description'] |
|
|
thumbnail = item['thumbnail'] |
|
|
thumbnail = item['thumbnail'] |
|
|
duration = float_or_none(item['durationMilliseconds'], 1000) |
|
|
|
|
|
age_limit = str_to_int(item['ageRestrictions']) |
|
|
|
|
|
|
|
|
duration = float_or_none(item.get('durationMilliseconds'), 1000) |
|
|
|
|
|
age_limit = parse_age_limit(item.get('ageRestrictions')) |
|
|
|
|
|
|
|
|
formats = [] |
|
|
formats = [] |
|
|
for vcodec, fmts in item['videos'].items(): |
|
|
for vcodec, fmts in item['videos'].items(): |
|
|