From 27fe903c511691c078942bef5ee9a05a43b15c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs?= Date: Wed, 9 Jun 2021 17:54:27 -0500 Subject: initial --- hypervideo_dl/extractor/kankan.py | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 hypervideo_dl/extractor/kankan.py (limited to 'hypervideo_dl/extractor/kankan.py') diff --git a/hypervideo_dl/extractor/kankan.py b/hypervideo_dl/extractor/kankan.py new file mode 100644 index 0000000..a677ff4 --- /dev/null +++ b/hypervideo_dl/extractor/kankan.py @@ -0,0 +1,48 @@ +from __future__ import unicode_literals + +import re +import hashlib + +from .common import InfoExtractor + +_md5 = lambda s: hashlib.md5(s.encode('utf-8')).hexdigest() + + +class KankanIE(InfoExtractor): + _VALID_URL = r'https?://(?:.*?\.)?kankan\.com/.+?/(?P\d+)\.shtml' + + _TEST = { + 'url': 'http://yinyue.kankan.com/vod/48/48863.shtml', + 'md5': '29aca1e47ae68fc28804aca89f29507e', + 'info_dict': { + 'id': '48863', + 'ext': 'flv', + 'title': 'Ready To Go', + }, + 'skip': 'Only available from China', + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + title = self._search_regex(r'(?:G_TITLE=|G_MOVIE_TITLE = )[\'"](.+?)[\'"]', webpage, 'video title') + surls = re.search(r'surls:\[\'.+?\'\]|lurl:\'.+?\.flv\'', webpage).group(0) + gcids = re.findall(r'http://.+?/.+?/(.+?)/', surls) + gcid = gcids[-1] + + info_url = 'http://p2s.cl.kankan.com/getCdnresource_flv?gcid=%s' % gcid + video_info_page = self._download_webpage( + info_url, video_id, 'Downloading video url info') + ip = self._search_regex(r'ip:"(.+?)"', video_info_page, 'video url ip') + path = self._search_regex(r'path:"(.+?)"', video_info_page, 'video url path') + param1 = self._search_regex(r'param1:(\d+)', video_info_page, 'param1') + param2 = self._search_regex(r'param2:(\d+)', video_info_page, 'param2') + key = _md5('xl_mp43651' + param1 + param2) + video_url = 'http://%s%s?key=%s&key1=%s' % (ip, path, key, param2) + + return { + 'id': video_id, + 'title': title, + 'url': video_url, + } -- cgit v1.2.3