X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fivi.py;h=029878d24dcfd01c3344fa0cc144526b496577c5;hb=5c2266df4b9aeb7881ed8c026a038e2a25e43734;hp=06af734179059c6128299c0d7ef2b1021da6996e;hpb=5f6a1245ffa9276c1af59b0835afeef67e2fb5b1;p=youtube-dl diff --git a/youtube_dl/extractor/ivi.py b/youtube_dl/extractor/ivi.py index 06af73417..029878d24 100644 --- a/youtube_dl/extractor/ivi.py +++ b/youtube_dl/extractor/ivi.py @@ -6,15 +6,15 @@ import json from .common import InfoExtractor from ..utils import ( - compat_urllib_request, ExtractorError, + sanitized_Request, ) class IviIE(InfoExtractor): IE_DESC = 'ivi.ru' IE_NAME = 'ivi' - _VALID_URL = r'https?://(?:www\.)?ivi\.ru/(?:watch/(?:[^/]+/)?|video/player\?.*?videoId=)(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?ivi\.ru/(?:watch/(?:[^/]+/)?|video/player\?.*?videoId=)(?P\d+)' _TESTS = [ # Single movie @@ -43,7 +43,7 @@ class IviIE(InfoExtractor): 'thumbnail': 'http://thumbs.ivi.ru/f15.vcp.digitalaccess.ru/contents/8/4/0068dc0677041f3336b7c2baad8fc0.jpg', }, 'skip': 'Only works from Russia', - } + } ] # Sorted by quality @@ -61,29 +61,34 @@ class IviIE(InfoExtractor): return int(m.group('commentcount')) if m is not None else 0 def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('videoid') + video_id = self._match_id(url) api_url = 'http://api.digitalaccess.ru/api/json/' - data = {'method': 'da.content.get', - 'params': [video_id, {'site': 's183', - 'referrer': 'http://www.ivi.ru/watch/%s' % video_id, - 'contentid': video_id - } - ] + data = { + 'method': 'da.content.get', + 'params': [ + video_id, { + 'site': 's183', + 'referrer': 'http://www.ivi.ru/watch/%s' % video_id, + 'contentid': video_id } + ] + } - request = compat_urllib_request.Request(api_url, json.dumps(data)) + request = sanitized_Request(api_url, json.dumps(data)) - video_json_page = self._download_webpage(request, video_id, 'Downloading video JSON') + video_json_page = self._download_webpage( + request, video_id, 'Downloading video JSON') video_json = json.loads(video_json_page) if 'error' in video_json: error = video_json['error'] if error['origin'] == 'NoRedisValidData': raise ExtractorError('Video %s does not exist' % video_id, expected=True) - raise ExtractorError('Unable to download video %s: %s' % (video_id, error['message']), expected=True) + raise ExtractorError( + 'Unable to download video %s: %s' % (video_id, error['message']), + expected=True) result = video_json['result']