- webpage, 'player parameters'))
- cid = params['cid'][0]
-
- info_xml_str = self._download_webpage(
- 'http://interface.bilibili.com/v_cdn_play',
- cid, query={'appkey': self._APP_KEY, 'cid': cid},
- note='Downloading video info page')
-
- err_msg = None
- durls = None
- info_xml = None
- try:
- info_xml = compat_etree_fromstring(info_xml_str.encode('utf-8'))
- except compat_xml_parse_error:
- info_json = self._parse_json(info_xml_str, video_id, fatal=False)
- err_msg = (info_json or {}).get('error_text')
- else:
- err_msg = xpath_text(info_xml, './message')
+ webpage, 'player parameters'))['cid'][0]
+
+ payload = 'appkey=%s&cid=%s&otype=json&quality=2&type=mp4' % (self._APP_KEY, cid)
+ sign = hashlib.md5((payload + self._BILIBILI_KEY).encode('utf-8')).hexdigest()