[Xuite] Fix extraction on python 3.2
base64.b64decode() accept only binary types in Python 3.2
This commit is contained in:
parent
ad320e9b83
commit
9b4774b21b
1 changed files with 11 additions and 3 deletions
|
@ -69,18 +69,26 @@ class XuiteIE(InfoExtractor):
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def base64_decode_utf8(data):
|
||||||
|
return base64.b64decode(data.encode('utf-8')).decode('utf-8')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def base64_encode_utf8(data):
|
||||||
|
return base64.b64encode(data.encode('utf-8')).decode('utf-8')
|
||||||
|
|
||||||
def _extract_flv_config(self, media_id):
|
def _extract_flv_config(self, media_id):
|
||||||
base64_media_id = base64.b64encode(media_id.encode('utf-8')).decode('utf-8')
|
base64_media_id = self.base64_encode_utf8(media_id)
|
||||||
flv_config = self._download_xml(
|
flv_config = self._download_xml(
|
||||||
'http://vlog.xuite.net/flash/player?media=%s' % base64_media_id,
|
'http://vlog.xuite.net/flash/player?media=%s' % base64_media_id,
|
||||||
'flv config')
|
'flv config')
|
||||||
prop_dict = {}
|
prop_dict = {}
|
||||||
for prop in flv_config.findall('./property'):
|
for prop in flv_config.findall('./property'):
|
||||||
prop_id = base64.b64decode(prop.attrib['id']).decode('utf-8')
|
prop_id = self.base64_decode_utf8(prop.attrib['id'])
|
||||||
# CDATA may be empty in flv config
|
# CDATA may be empty in flv config
|
||||||
if not prop.text:
|
if not prop.text:
|
||||||
continue
|
continue
|
||||||
encoded_content = base64.b64decode(prop.text).decode('utf-8')
|
encoded_content = self.base64_decode_utf8(prop.text)
|
||||||
prop_dict[prop_id] = compat_urllib_parse_unquote(encoded_content)
|
prop_dict[prop_id] = compat_urllib_parse_unquote(encoded_content)
|
||||||
return prop_dict
|
return prop_dict
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue