4 from .common
import InfoExtractor
5 from ..utils
import determine_ext
7 _md5
= lambda s
: hashlib
.md5(s
.encode('utf-8')).hexdigest()
9 class KankanIE(InfoExtractor
):
10 _VALID_URL
= r
'https?://(?:.*?\.)?kankan\.com/.+?/(?P<id>\d+)\.shtml'
13 u
'url': u
'http://yinyue.kankan.com/vod/48/48863.shtml',
14 u
'file': u
'48863.flv',
15 u
'md5': u
'29aca1e47ae68fc28804aca89f29507e',
17 u
'title': u
'Ready To Go',
21 def _real_extract(self
, url
):
22 mobj
= re
.match(self
._VALID
_URL
, url
)
23 video_id
= mobj
.group('id')
24 webpage
= self
._download
_webpage
(url
, video_id
)
26 title
= self
._search
_regex
(r
'(?:G_TITLE=|G_MOVIE_TITLE = )[\'"](.+?)[\'"]', webpage, u'video title
')
27 surls = re.search(r'surls
:\
[\'.+?
\'\
]|lurl
:\'.+?\
.flv
\'', webpage).group(0)
28 gcids = re.findall(r"http://.+?/.+?/(.+?)/", surls)
31 video_info_page = self._download_webpage('http
://p2s
.cl
.kankan
.com
/getCdnresource_flv?gcid
=%s' % gcid,
32 video_id, u'Downloading video url info
')
33 ip = self._search_regex(r'ip
:"(.+?)"', video_info_page, u'video url ip
')
34 path = self._search_regex(r'path
:"(.+?)"', video_info_page, u'video url path
')
35 param1 = self._search_regex(r'param1
:(\d
+)', video_info_page, u'param1
')
36 param2 = self._search_regex(r'param2
:(\d
+)', video_info_page, u'param2
')
37 key = _md5('xl_mp43651
' + param1 + param2)
38 video_url = 'http
://%s%s?key
=%s&key1
=%s' % (ip, path, key, param2)
40 return {'id': video_id,
43 'ext
': determine_ext(video_url),