[RELEASE] Pandora Radio (Script) Music Addon (Updated 2011-11-13 : V1.2.8)

  Thread Rating:
  • 10 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Toddmc Offline
Junior Member
Posts: 3
Joined: Mar 2012
Reputation: 0
Post: #1211
(2012-05-03 02:15)Dixon Butz Wrote:  Use this zip for new or update install.
If you still get errors after updating, uninstall Pandora. Delete the "script.xbmc.pandora" folder from addons if still there. Then delete the "script.xbmc.pandora" folder from /userdata/addon_data. Re-install from this zip and put your login info in Pandora settings. BOOM! Working!

http://www.box.com/s/f18b9263cd43b5101ecb

Nope, script error. Also get a script error using the latest github.

crypt_key_input.h is no longer part of libpiano, which is why you get that 404 error. Take out the references to that url and there's no script error but the keys fail to load.
find quote
jdowens01 Offline
Junior Member
Posts: 4
Joined: May 2012
Reputation: 0
Post: #1212
I am pretty new to the scripting for XBMC but have had some experience with AutoCAD lisp and scripts. I took a look at the debug report and noticed that the file at github for pianobar is no longer present (crypt_key_input.h and output.h) and replaced the url lookup to crypt.h for both key input and outputs to recieve the correct keys, or from my understanding of this script. Now I have a newer issue with a range problem from the crypt.h file within the pandora pluggin and am not sure how to correct this. I have pasted the debug report below.

23:36:18 T:1312 NOTICE: PANDORA: Initializing v1.2.10
23:36:18 T:1312 NOTICE: PANDORA: sys.platform = win32
23:36:18 T:1312 NOTICE: PANDORA: Loading key from file "C:\Users\Entertain\AppData\Roaming\XBMC\userdata\addon_data\script.xbmc.pandora\​key_in"
23:36:18 T:1312 NOTICE: PANDORA: Downloading key from url "https://raw.github.com/PromyLOPh/pianobar/master/src/libpiano/crypt.h"
23:36:20 T:1312 NOTICE: PANDORA: Loading key from file "C:\Users\Entertain\AppData\Roaming\XBMC\userdata\addon_data\script.xbmc.pandora\​key_out"
23:36:20 T:1312 NOTICE: PANDORA: Downloading key from url "https://raw.github.com/PromyLOPh/pianobar/master/src/libpiano/crypt.h"
23:36:20 T:1312 NOTICE: PANDORA: Saving keys
23:36:20 T:1312 NOTICE: PANDORA: dataDir = "C:\Users\Entertain\AppData\Roaming\XBMC\userdata\addon_data\script.xbmc.pandora\​"
23:36:20 T:1312 NOTICE: PANDORA: dataDir.isDir? True
23:36:20 T:1312 ERROR: Error Type: <type 'exceptions.IndexError'>
23:36:20 T:1312 ERROR: Error Contents: list index out of range
23:36:20 T:1312 ERROR: Traceback (most recent call last):
File "C:\Users\Entertain\AppData\Roaming\XBMC\addons\script.xbmc.pandora\default.py", line 248, in <module>
panda = Panda()
File "C:\Users\Entertain\AppData\Roaming\XBMC\addons\script.xbmc.pandora\default.py", line 82, in __init__
while not self.auth():
File "C:\Users\Entertain\AppData\Roaming\XBMC\addons\script.xbmc.pandora\default.py", line 112, in auth
ret = self.pandora.authListener( user, pwd )
File "C:\Users\Entertain\AppData\Roaming\XBMC\addons\script.xbmc.pandora\libpandora\pa​ndora.py", line 80, in authListener
enc = crypt.encryptString( req, self.keys['out'] )
File "C:\Users\Entertain\AppData\Roaming\XBMC\addons\script.xbmc.pandora\libpandora\cr​ypt.py", line 97, in encryptString
r ^= key["p"][ key["n"] ]
IndexError: list index out of range
23:36:37 T:6492 WARNING: Failed to find previously selected audio sink
23:36:39 T:6492 NOTICE: Log level changed to 2
23:36:39 T:6492 NOTICE: Enabled debug logging due to GUI setting. Level 2.
(This post was last modified: 2012-05-03 06:47 by jdowens01.)
find quote
vericgar Offline
Junior Member
Posts: 2
Joined: Apr 2012
Reputation: 0
Post: #1213
pianobar has moved to using the JSON interface, instead of the XMLRPC interface, which is why the crypt files are gone. The new ones you tried to use aren't the right format for libpandora.py. The previous ones can be found at the URL https://raw.github.com/PromyLOPh/pianoba.../libpiano/ (change this at the top of keys.py)

When I use these old keys though, I get an invalid client error from Pandora. It was working for me before, so I suspect Pandora has specifically blocked the client ID used by the previous version of pianobar now.

I suspect libpandora.py is going to need to be moved to the JSON interface as well.
find quote
newatv2user Offline
Fan
Posts: 301
Joined: May 2011
Reputation: 27
Post: #1214
So it seems I never updated to 1.2.10. I've been running 1.2.9 by manually applying the quick fixes. Those crypt files are stored locally on that one. So running great for me.
find quote
tinfox Offline
Junior Member
Posts: 20
Joined: Dec 2011
Reputation: 0
Post: #1215
Since XBMC really doesn't do Pandora or Netflix, what are people that want to use Pandora and Netflix using these days? I like XBMC, but I'm beginning to lose the WAF war.
find quote
thewarm Offline
Senior Member
Posts: 267
Joined: Apr 2011
Reputation: 0
Location: Seattle
Post: #1216
had it working for a few days... broken again. bummer
find quote
jdowens01 Offline
Junior Member
Posts: 4
Joined: May 2012
Reputation: 0
Post: #1217
(2012-05-03 07:26)vericgar Wrote:  pianobar has moved to using the JSON interface, instead of the XMLRPC interface, which is why the crypt files are gone. The new ones you tried to use aren't the right format for libpandora.py. The previous ones can be found at the URL https://raw.github.com/PromyLOPh/pianoba.../libpiano/ (change this at the top of keys.py)

When I use these old keys though, I get an invalid client error from Pandora. It was working for me before, so I suspect Pandora has specifically blocked the client ID used by the previous version of pianobar now.

I suspect libpandora.py is going to need to be moved to the JSON interface as well.

Hate to say it, but this link comes up 404. Looks like this file is gone so yes the lib file will need to be moved. I am definately not experienced enough for this task. Thank you for the information.
find quote
jdowens01 Offline
Junior Member
Posts: 4
Joined: May 2012
Reputation: 0
Post: #1218
Found the correct link.

https://raw.github.com/PromyLOPh/pianoba...ey_input.h
https://raw.github.com/PromyLOPh/pianoba...y_output.h

This allows the program to not error out but I am not sure why by my login isnt working. This may be the reason behind the change to JSON.
find quote
newatv2user Offline
Fan
Posts: 301
Joined: May 2011
Reputation: 27
Post: #1219
(2012-05-03 20:30)jdowens01 Wrote:  Found the correct link.

https://raw.github.com/PromyLOPh/pianoba...ey_input.h
https://raw.github.com/PromyLOPh/pianoba...y_output.h

This allows the program to not error out but I am not sure why by my login isnt working. This may be the reason behind the change to JSON.

Ok another quick hack:

In keys.py change
Code:
BASE_KEY_URL = "https://raw.github.com/PromyLOPh/pianobar/master/src/libpiano/"
to
Code:
BASE_KEY_URL = "https://raw.github.com/PromyLOPh/pianobar/json/src/libpiano/"

In pandora.py change
Code:
req = xmlrpclib.dumps( ( self._timestamp(), "00000000000000000000000000000000", user, pwd, "html5tuner", "", "", "HTML5", True ), \
                                "listener.authenticateListener" )
to
Code:
req = xmlrpclib.dumps( ( self._timestamp(), "", user, pwd, "html5tuner", "", "", "HTML5", True ), \
                                "listener.authenticateListener" )
find quote
baditch Offline
Junior Member
Posts: 4
Joined: Apr 2012
Reputation: 0
Post: #1220
(2012-05-03 21:29)newatv2user Wrote:  
(2012-05-03 20:30)jdowens01 Wrote:  Found the correct link.

https://raw.github.com/PromyLOPh/pianoba...ey_input.h
https://raw.github.com/PromyLOPh/pianoba...y_output.h

This allows the program to not error out but I am not sure why by my login isnt working. This may be the reason behind the change to JSON.

Ok another quick hack:

In keys.py change
Code:
BASE_KEY_URL = "https://raw.github.com/PromyLOPh/pianobar/master/src/libpiano/"
to
Code:
BASE_KEY_URL = "https://raw.github.com/PromyLOPh/pianobar/json/src/libpiano/"

In pandora.py change
Code:
req = xmlrpclib.dumps( ( self._timestamp(), "00000000000000000000000000000000", user, pwd, "html5tuner", "", "", "HTML5", True ), \
                                "listener.authenticateListener" )
to
Code:
req = xmlrpclib.dumps( ( self._timestamp(), "", user, pwd, "html5tuner", "", "", "HTML5", True ), \
                                "listener.authenticateListener" )

Thanks for the fix worked great!
find quote
Post Reply