diff options
author | Jesús <heckyel@hyperbola.info> | 2021-06-09 17:54:27 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2021-06-09 17:54:27 -0500 |
commit | 27fe903c511691c078942bef5ee9a05a43b15c8f (patch) | |
tree | 50f30ab2ec749b965869518c0a28651f8677f0d3 /hypervideo_dl/extractor/kankan.py | |
download | hypervideo-27fe903c511691c078942bef5ee9a05a43b15c8f.tar.lz hypervideo-27fe903c511691c078942bef5ee9a05a43b15c8f.tar.xz hypervideo-27fe903c511691c078942bef5ee9a05a43b15c8f.zip |
initial
Diffstat (limited to 'hypervideo_dl/extractor/kankan.py')
-rw-r--r-- | hypervideo_dl/extractor/kankan.py | 48 |
1 files changed, 48 insertions, 0 deletions
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<id>\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, + } |