[youtube] Use encode_dict

This commit is contained in:
Sergey M․ 2015-09-06 07:42:15 +06:00
parent c7c0996d8c
commit 515fc8776f

View file

@ -26,6 +26,7 @@ from ..compat import (
) )
from ..utils import ( from ..utils import (
clean_html, clean_html,
encode_dict,
ExtractorError, ExtractorError,
float_or_none, float_or_none,
get_element_by_attribute, get_element_by_attribute,
@ -111,10 +112,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
'hl': 'en_US', 'hl': 'en_US',
} }
# Convert to UTF-8 *before* urlencode because Python 2.x's urlencode login_data = compat_urllib_parse.urlencode(encode_dict(login_form_strs)).encode('ascii')
# chokes on unicode
login_form = dict((k.encode('utf-8'), v.encode('utf-8')) for k, v in login_form_strs.items())
login_data = compat_urllib_parse.urlencode(login_form).encode('ascii')
req = compat_urllib_request.Request(self._LOGIN_URL, login_data) req = compat_urllib_request.Request(self._LOGIN_URL, login_data)
login_results = self._download_webpage( login_results = self._download_webpage(
@ -147,8 +145,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
'TrustDevice': 'on', 'TrustDevice': 'on',
}) })
tfa_form = dict((k.encode('utf-8'), v.encode('utf-8')) for k, v in tfa_form_strs.items()) tfa_data = compat_urllib_parse.urlencode(encode_dict(tfa_form_strs)).encode('ascii')
tfa_data = compat_urllib_parse.urlencode(tfa_form).encode('ascii')
tfa_req = compat_urllib_request.Request(self._TWOFACTOR_URL, tfa_data) tfa_req = compat_urllib_request.Request(self._TWOFACTOR_URL, tfa_data)
tfa_results = self._download_webpage( tfa_results = self._download_webpage(