3 from .common 
import InfoExtractor
 
   4 from ..utils 
import determine_ext
 
   7 class KankanIE(InfoExtractor
): 
   8     _VALID_URL 
= r
'https?://(?:.*?\.)?kankan\.com/.+?/(?P<id>\d+)\.shtml' 
  11         u
'url': u
'http://yinyue.kankan.com/vod/48/48863.shtml', 
  12         u
'file': u
'48863.flv', 
  13         u
'md5': u
'29aca1e47ae68fc28804aca89f29507e', 
  15             u
'title': u
'Ready To Go', 
  19     def _real_extract(self
, url
): 
  20         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  21         video_id 
= mobj
.group('id') 
  22         webpage 
= self
._download
_webpage
(url
, video_id
) 
  24         title 
= self
._search
_regex
(r
'(?:G_TITLE=|G_MOVIE_TITLE = )[\'"](.+?)[\'"]', webpage, u'video title
') 
  25         surls = re.search(r'surls
:\
[\'.+?
\'\
]|lurl
:\'.+?\
.flv
\'', webpage).group(0) 
  26         gcids = re.findall(r"http://.+?/.+?/(.+?)/", surls) 
  29         video_info_page = self._download_webpage('http
://p2s
.cl
.kankan
.com
/getCdnresource_flv?gcid
=%s' % gcid, 
  30                                                  video_id, u'Downloading video url info
') 
  31         ip = self._search_regex(r'ip
:"(.+?)"', video_info_page, u'video url ip
') 
  32         path = self._search_regex(r'path
:"(.+?)"', video_info_page, u'video url path
') 
  33         video_url = 'http
://%s%s' % (ip, path) 
  35         return {'id': video_id, 
  38                 'ext
': determine_ext(video_url),