PromyLOPh / pianobar

Console-based pandora.com player
http://6xq.net/pianobar/
Other
1.74k stars 321 forks source link

Protocol change (24 April 2012) #236

Closed ghost closed 12 years ago

ghost commented 12 years ago

Just got an Error: Protocol incompatible. Please upgrade libpiano. I've got a functioning internet connection, and I'm not behind a proxy or anything, so it looks like Pandora changed the protocol on us again…

cmdlinegeek commented 12 years ago

I second that.

jakerella commented 12 years ago

I have the latest package (2012-04-24) from the main site and I am still seeing the "Error: Protocol incompatible" message. Internet connection is good and no proxies or firewalls. Not sure if Pandora changed the protocol that quick or if I have a bad install (was working yesterday though).

~$ pianobar
Welcome to pianobar (2012.04.24)! Press ? for a list of commands.
(i) Control fifo at /home/jordan/.config/pianobar/ctl opened
(i) Login... Error: Protocol incompatible. Please upgrade libpiano.
MTecknology commented 12 years ago

Bastards! Why they be changing it!? Can't wait for you guys to figure out what changed. This little application happens to be what keeps me from beating the life out of one particular co-worker. Many thanks!!

nikomaresco commented 12 years ago

also getting this error with the latest package (2012.04.24-dev). thanks!

mhajda commented 12 years ago

Same issue today

clarkewd commented 12 years ago

Just tried installing the latest build to fix it but I'm also getting the error:

Welcome to pianobar (2012.04.24-dev)! Press ? for a list of commands.
(i) Login... Error: Protocol incompatible. Please upgrade libpiano.
ok100 commented 12 years ago

Same issue here.

ghost commented 12 years ago

Not sure if this is at all relevant, but Pandora's official iOS client is still functioning without updates. So is the webOS client, whose source code is easily accessible, being written in Javascript and all.

ghost commented 12 years ago

Dear Lars-Dominik Braun & other contributors...

You Rock! I too am affected. I lack the skills to help. You have my FULL emotional support. Thanks for pianobar,

Brad Norman - Vero Beach, Florida

romm-zz commented 12 years ago
faultStringorg.apache.xmlrpc.XmlRpcException: 000.000.000.000|0|INCOMPATIBLE_VERSION|Pandora does not support your client version.faultCode1

That would be the case...

romm-zz commented 12 years ago

When bumped version to 34, I am getting: <?xml version="1.0" encoding="UTF-8"?>faultStringcom.savagebeast.radio.api.protocol.xmlrpc.RadioXmlRpcException: com.savagebeast.radio.api.internal.xmlrpc.handler.HandlerMisc.sync()faultCode0 when syncing

PromyLOPh commented 12 years ago

1) Version 2012.04.24 does not work. I released it yesterday and a few hours after that Pandora changed the API. 2) Things don’t look very promising right now, as Pandora rolled out an updated 3rd party client protection. It’s similar to the one described in #214 (and the linked blog post), but they completely block pianobar and others now and they made it very difficult (if not impossible without a debugger) to obtain the client key via injected JavaScript. A few 3rd party client developers are idle’ing in #saver2 at irc.coldfront.net, so if you cracked the code make sure you stop by. 3) As Pandora won’t talk to me: Make use of their support email address and tell them what you think about this change. And please stay calm and be polite. Thanks.

@theSwordfish Can you send me (lars@6xq.net) the webOS source, please?

PlaidShirtPat commented 12 years ago

Just got the same problem. New-ish Developer here, but love this app! If there is something I can do to help, please point me in the right direction!

ghost commented 12 years ago

@PromyLOPh: It's on its way. :)

nikomaresco commented 12 years ago

in case anyone is having trouble finding it, here is the link to contact Pandora: https://help.pandora.com/customer/portal/emails/new

cintacks commented 12 years ago

Contacted them! If this is an attempt to get us to pay $39 for their app, that's sad but I suppose it makes business sense.

dustmoo commented 12 years ago

What would it take to get on as an official third party client? There are other official clients that do not show graphic ads and only support their audio ads.

Though many may not agree with me, I like pianobar because of it's low footprint, I have no problem supporting pandora by listening to ads and or upgrading to pandora one if I want uninterrupted music.

Just curious if you have explored this at all PromyLOPh?

PromyLOPh commented 12 years ago

I have, @dustmoo, and their response was “not interested”.

dustmoo commented 12 years ago

Well then, happy cracking, I am sure we can find a solution. :)

sodabrew commented 12 years ago

Coincidentally, I just got my annual Pandora One renewal notice. Good time to let them know which is my favorite way of listening :)

b-dub commented 12 years ago

In asking to roll back the protocol change, this is the response from pandora:

"Thanks for writing. This is an unauthorized third-party application, and using it is a violation of our Terms of Use.

You can use Pandora for free at http://www.pandora.com If you have problems with that service, then please let me know.

Best, Jed Listener Advocate PANDORA® internet radio "

dragos240 commented 12 years ago

I wouldn't worry much about it. PromyLOPh has done a fine job on updating the source promptly after an update. It's a rare occasion when the protocol isn't working, and an even rarer occasion in which it isn't fixed after fetching the latest sources.

As for asking pandora to roll back the changes, I highly doubt they'd be interested. This client does not include adverts, and it includes a feature which allows users from outside the US to use pandora, which is breaking their ToS.

A thank you to PromyLOPh for your work on this application, it is greatly appreciated.

jhixson74 commented 12 years ago

Similar response here:

Thanks for writing. This is an unauthorized third-party application, and using it is a violation of our Terms of Use.

You can use Pandora for free at http://www.pandora.com, and I would be happy to give you troubleshooting help with that if you like.

If you would like your subscription canceled in the end, just let me know.

Best, Jed Listener Advocate PANDORA® internet radio Need help? http://help.pandora.com

ladinu commented 12 years ago

@theSwordfish Can you please post the WebOS code so that we all can see?

jnwatts commented 12 years ago

Email sent to Pandora specifically pointing out that there are plenty of us who refuse to use Adobe Air and prefer not to keep a web-browser open just for Pandora: And most importantly, are happy to pay for a ad-free account just to use a 3rd-party (ad-free) client. If I get something other than the canned response, will post it here.

ghost commented 12 years ago

@ladinu: Sure thing.

I suspect the relevant code is in app/core/api.js, partly because of the name (duh) and also because the entire thing was obfuscated. I ran it through JSBeautifier and saved the deobfuscated version in the root directory under the name api deobfuscated.js.

http://www.mediafire.com/?5zgrfm61u9e0l6u

Good luck!

Edit: I finally found time to look through the thing, and it's full of crypto code. Hopefully it'll be of some use.

dcode commented 12 years ago

I could only find one set of keys in those files. Beginning on Line 337 in 'api deobfuscated.js'.

However, that function seems to generate keys on the fly give an app 'key' (i.e. password). These 'keys' are found on lines 860-863. Looks like only AppConstants.r and AppConstants.s are used for the keys. Looks like 'r' is the XMLRPC and 's' is for the song urls? (I'd have to dig a bit further here).

The other constants there are the 3rd party partner username/password. :D

I wrote a small python script that extracts the base key into a C array (this is before I figured out how the other keys are generated). You could extend that and reimplement the 'createFromKey' function to generate the other two keys. Not familiar enough with the rest of the API to determine if that's all that is needed.

https://gist.github.com/2495271

romm-zz commented 12 years ago

Maybe .r is for XMLRPC interface and .s is for JSON interface?

MTecknology commented 12 years ago

Just a side note... I had been paying for their service and because of this, I'm no longer a paying customer and absolutely support cracking their crap in any way possible. :) I'll be of no help to any of you, though. :(

ghost commented 12 years ago

@MTecknology That's the spirit! :D

ladinu commented 12 years ago

@theSwordfish Thanks for posting!

ghost commented 12 years ago

No problem!

nperez commented 12 years ago

Silly question: Have you considered embedding one of the javascript engines that have DOM support? While it would introduce a lot of complexity, it could easily solve the problem of pandora doing ridiculously complex things on the web page. Plus, you could write the key extraction in javascript to avoid recompilation.

deltaray commented 12 years ago

I actually pay for Pandora service and have contacted them before about protocol changes. All they said to me was that my client wasn't supported and they couldn't help me. What a lousy attitude. Its not like I'm paying for their crappy software, I'm paying for the license for their music. Their web client may look pretty, but its a POS.

deltaray commented 12 years ago

I just sent an e-mail to Pandora asking them to forward it to upper management, basically just asking them to try to cooperate better with the Pandora community by communicating protocol changes in advance. I'll let you know if anything comes of it. I'm skeptical though.

slevine commented 12 years ago

Pandora is really getting on my nerves. I am a paying P1 customer (for years), but as others stated, hate using their crappy web app. My P1 subscription is actually up for renewal soon - not sure if I am going to sign on for another year. Also, I am a share holder, and it may be time to dump the stock. On a different note, although I haven't touched C since College - going to dig in to try to help out.

romm-zz commented 12 years ago

Actually saver2 already have a hotfix, however they do not release source code, as it seems.

PromyLOPh commented 12 years ago

Temporary fix at https://gist.github.com/2500616

ghost commented 12 years ago

Great News!!!

ghost commented 12 years ago

PromyLOPh - You are the man! I am back up and running. Cheers - Brad

nikomaresco commented 12 years ago

just in case anyone is having trouble, download the source and extract, then from the new Promy* directory:

wget https://raw.github.com/gist/2500616/bf2fc7c339791be9dce8ebf0ecca3f6647c9e3f2/gistfile1 -O patch.diff git apply patch.diff make clean && make sudo make install

cmdlinegeek commented 12 years ago

Okay...I tried, but am I missing something. I keep getting this error returned. I am in the promy* folder and the patch applied, but when I try to make, this is what I receive.

CC  src/main.c

make: c99: Command not found make: *\ [src/main.o] Error 127

b-dub commented 12 years ago

Thanks @PromyLOPh, my pc isn't a total pos now. I love being almost flash free.

Thanks @wizzahd, that'll save me the manual merge next time. I knew there was an easier way.

b-dub commented 12 years ago

On my windows cygwin build I have to specify the following make options, where the -L /usr/local/lib is wherever you have your libraries installed. I get the same error if I just do "make"

make CC=CC CFLAGS="-std=gnu99 -L /usr/local/lib"

clarkewd commented 12 years ago

excellent, worked very well!!! thank you PromyLOPh and everyone who helped!

ps: on mac of course you will have to use:

make clean && make CFLAGS="-O2 -DNDEBUG -W64"
nrhinehart commented 12 years ago

Patch works. Thanks!

cmdlinegeek commented 12 years ago

Any slackers get the patch working?

terwin commented 12 years ago

Patch works great for me! Thanks!

dustmoo commented 12 years ago

Patch working here. Mac OSX Lion.

slevine commented 12 years ago

Patch works perfect - thanks !!