Plugin (4.4.6) crashes only when trying to login.
Debug log
Code:
22:52:28 T:140471721678592 NOTICE: [YouTube-4.4.6] _fetchPage : 'called for : {'referer': u'https://accounts.google.com/ServiceLogin?continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dsign_in_button%26hl%3Dfi_FI%26next%3D%252F%26nomobiletemp%3D1&hl=fi_FI&passive=true&service=youtube&uilel=3', 'hidden': 'true', 'link': u'https://accounts.google.com/ServiceLoginAuth', 'url_data': {u'PersistentCookie': u'yes', u'timeStmp': u'', u'dnConn': u'', u'hl': u'fi_FI', u'service': u'youtube', u'rmShown': u'1', 'Passwd': 'xxxxxxxxx', u'GALX': u'hgj67tJy5eYj', u'dsh': u'1858765765826956', u'signIn': u'Kirjaudu sis\xe4\xe4n', u'continue': u'http://www.youtube.com/signin?action_handle_signin=true&feature=sign_in_button&hl=fi_FI&next=%2F&nomobiletemp=1', u'pstMsg': u'0', u'checkedDomains': u'youtube', u'secTok': u'', u'bgresponse': u'js_disabled', u'_utf8': u'☃', u'Email': 'xxxxxxxxx', u'checkConnection': u''}}'
22:52:28 T:140471721678592 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.UnicodeEncodeError'>
Error Contents: 'ascii' codec can't encode characters in position 12-13: ordinal not in range(128)
Traceback (most recent call last):
File "/home/media/.xbmc/addons/plugin.video.youtube/default.py", line 120, in <module>
navigation.executeAction(params)
File "/home/media/.xbmc/addons/plugin.video.youtube/YouTubeNavigation.py", line 122, in executeAction
self.login.login(params)
File "/home/media/.xbmc/addons/plugin.video.youtube/YouTubeLogin.py", line 75, in login
result, status = self.authorize()
File "/home/media/.xbmc/addons/plugin.video.youtube/YouTubeLogin.py", line 85, in authorize
(result, status) = self._httpLogin({"new": "true"})
File "/home/media/.xbmc/addons/plugin.video.youtube/YouTubeLogin.py", line 183, in _httpLogin
ret = self.core._fetchPage(fetch_options)
File "/home/media/.xbmc/addons/plugin.video.youtube/YouTubeCore.py", line 403, in _fetchPage
request = urllib2.Request(link, urllib.urlencode(urli))
File "/usr/lib/python2.7/urllib.py", line 1312, in urlencode
v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 12-13: ordinal not in range(128)
-->End of Python script error report<--
A quick fix for summer holidays
YoutubeCore.py (line ~399)
Code:
if get("url_data"):
request = urllib2.Request(link, urllib.urlencode(get("url_data")))
-->
if get("url_data"):
urli = get("url_data")
urli['signIn'] = 'Kirjaudu sisaan'
request = urllib2.Request(link, urllib.urlencode(urli))
It looks like url_data should be processed before giving it to urllib.urlencode or use other method that can code char above 127