Pandora v34 API Update Required

Bug #988395 reported by Kevin Mehall
356
This bug affects 65 people
Affects Status Importance Assigned to Milestone
Pithos
Fix Released
Critical
Christopher Eby
pianobar
Fix Committed
Undecided
Unassigned
pianobar (Debian)
Fix Released
Unknown
pianobar (Ubuntu)
Fix Released
High
Luke Faraone
Oneiric
Won't Fix
Undecided
Unassigned
Precise
Won't Fix
Undecided
Unassigned
pithos (Debian)
Fix Released
Unknown
pithos (Ubuntu)
Fix Released
High
Luke Faraone
Oneiric
Won't Fix
High
Unassigned
Precise
Fix Released
High
Unassigned

Bug Description

== SRU Discussion ==

[Impact]

 * Pithos fails to allow users to log in to Pandora, and has no useful functionality without logging in.

[Test Case]

 * Install pithos 0.3.14-1
 * Run it
 * Provide login credentials
 * Attempt to log in

[Regression Potential]

 * I know of no services running older Pandora APIs, so there's nothing to connect with using the old API, thus no regression potential, really.

I've backported the JSON API patch to this release.

== Original Report ==

Pandora changed the authentication and login methods, breaking Pithos/Pianobar.

Upstream in pianobar: https://github.com/PromyLOPh/pianobar/issues/236

Changed in pithos:
importance: Undecided → Critical
status: New → In Progress
Luke Faraone (lfaraone)
Changed in pithos (Ubuntu):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Luke Faraone (lfaraone)
Luke Faraone (lfaraone)
description: updated
Changed in pianobar (Ubuntu):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Kived (kived) wrote :

FYI - this is apparently fixed in pianobar on github: https://github.com/PromyLOPh/pianobar/issues/236

Hoping that can help get pithos working again. :)

Revision history for this message
James Burton (jims-lists) wrote :

See if this works:

Revision history for this message
Christopher Eby (kre3d) wrote :

I attempted to implement the JSON API that the official Android client uses. It seems to be much more stable than the XMLRPC API , so it might be nice to offer it as an alternative for when the XMLRPC API breaks.

Code is here: https://github.com/kreed/pithos/commits/json

I haven't tested it extensively, but it seems to work so far. I was able to implement everything used in Pithos except the different audio formats. Currently it is limited to 64kbps AAC. I imagine some of the "Pandora at Home" devices would have access to higher quality audio and may also use the JSON API. It might be worth checking out some of them.

http://www.pandora.com/everywhere/home

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "Update for Pandora protocol 34" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Revision history for this message
Reed Loden (reed) wrote :

I'm very skeptical of using some random person's website (over HTTP, nonetheless) to get a piece of data. If this "solution" is chosen in the end, it would be nice to have the source code of http://ridetheclown.com/s2/synctime.php posted somewhere, along with a config option for setting it to an alternative URL so I can run my own synctime instance.

Revision history for this message
Reed Loden (reed) wrote :

Metro Pandora did something a little bit different to fix its app. Looks like they hardcoded some stuff, though magic numbers like that are likely to break. https://metropandora.codeplex.com/SourceControl/changeset/changes/90806

Changed in pianobar (Debian):
status: Unknown → Confirmed
Revision history for this message
James Burton (jims-lists) wrote :

The patch is merely an implementation of PromyLOPh did to fix pianobar. It gets Pithos working again, but is not intended as a permanent solution.

Revision history for this message
Kevin Mehall (kevin-mehall) wrote :

I've merged James Burton's patch as a temporary fix, but I agree with Reed that it is not a permanent solution. ZigZagJoe's synctime.php is just a constant (manually set) offset from time(). It changes rarely, but that's another point of failure. It would also break if Pandora begins to validate the sync token passed to authenticateListener. I do not plan to use this code in a release, but it's on GitHub as an option for people who want Pithos to work right now.

Regarding the Metro Pandora implementation, the sync tokens stay valid for only about 48 hours. I captured a token immediately after the API change, and it no longer works.

The longer term solution is something more like Christopher's implementation of the JSON API from the WebOS client. That seems to be the direction pianobar is going as well. We'll need to do more work to get that API up to the functionality and stability of the XMLRPC API, however.

I'm also considering a more radical change -- wrapping the official HTML5 client in webkit. Pithos would become an adapter that passes events like media keys and sound menu clicks into the HTML5 client and extracts data such as the current song and play/pause state to send to the sound menu and notification daemon. The HTML5 client no longer requires Flash, and its user interface isn't bad. The UI is non-native, but is more complete and elegant than the existing Pithos UI. We could use greasemonkey-style javascript injection to tweak the UI as necessary.

Revision history for this message
Jeremy Lincicome (w0jrl1) wrote :

Kevin,
If you plan on making these changes, please consider using webkit-gtk instead of webkit. The reason for this request is because the normal webkit has very little accessibility. On the other hand, webkit-gtk works very well with Orca.

Changed in pithos (Debian):
status: Unknown → Confirmed
tasse77 (tasse77)
Changed in pianobar (Ubuntu):
status: Triaged → Confirmed
assignee: nobody → tasse77 (tasse77)
Revision history for this message
Christopher Eby (kre3d) wrote :

I found a way to get the other audio formats with the JSON API, so it should now be feature-complete. Please test it if you can.

Luke Faraone (lfaraone)
Changed in pianobar (Ubuntu):
assignee: tasse77 (tasse77) → nobody
Revision history for this message
Tom Voss (gridironsolutions.com) wrote :

Kevin, if you're serious about creating an HTML5 client I'd recommend creating a different project or finding a way to distinguish it from Nuvola Player (http://projects.fenryxo.cz/Nuvola_Player/Main_page/). Pithos is great at what it does and I haven't found an alternative I can live with. Nuvola Player is a pain because it plays ads and asks if you're still listening and pausing for any length of time all but assures your session will timeout. But right now it works and my Pithos client doesn't. :/

Revision history for this message
Jeremy Jongsma (jeremy-jongsma) wrote :

Pianobar just closed their issue, seems a solution has been found.

Luke Faraone (lfaraone)
Changed in pianobar (Ubuntu):
status: Confirmed → Fix Committed
status: Fix Committed → Confirmed
Changed in pianobar:
status: New → Fix Committed
Revision history for this message
askuhn (askuhn) wrote :

I've been testing the latest build of Pithos available on git that contains a proper fix and it appears to be working better than ever! Congrats and thanks for a fix! (hopefully it won't be broken any time soon)

https://github.com/kevinmehall/pithos

Changed in pithos:
assignee: nobody → Nicholas long-henke (ipwnin3d)
assignee: Nicholas long-henke (ipwnin3d) → nobody
assignee: nobody → Luke Faraone (lfaraone)
Changed in pithos (Ubuntu):
assignee: Luke Faraone (lfaraone) → nobody
Revision history for this message
Stephen Ostrow (isleshocky77) wrote :

I'm confused. Is Pithos now being developed in github rather than launchpad's BZR repo, and when did this happen?
P.s. I did a clone of the git repo and it appears to be working perfectly.

Revision history for this message
Luke Faraone (lfaraone) wrote :

Nicholas and tasse77: Please don't modify bug assignees unless you know that somebody is or is not working on a bug. Don't add yourself as an assignee unless you're going to work to resolve the issue yourself.

Changed in pithos:
assignee: Luke Faraone (lfaraone) → nobody
Changed in pianobar (Ubuntu):
assignee: nobody → Luke Faraone (lfaraone)
Changed in pithos (Ubuntu):
assignee: nobody → Luke Faraone (lfaraone)
Revision history for this message
askuhn (askuhn) wrote :

Stephen Ostrow: I think that development is now handled on git and imported to launchpad at regular intervals (this is just a guess on my part, anyone feel free to correct me). See also: https://code.launchpad.net/~kevin-mehall/pithos/git-import for the related BZR repo.

Revision history for this message
Tony Maro (tonymaro) wrote :

I'm confused as well. I'm not an idiot - I've compiled kernel's since Red Hat 5 and Mandrake days, but I can't for the life of me figure out how to run the code you download with bzr. It says you need python-distutils-extra, which I attempted to install but it says it is missing setuptools. In fact it reminds me of RPM package hell we used to experience back in the day. Is there not going to be another Ubuntu package for this?

Revision history for this message
Luke Faraone (lfaraone) wrote :

Of course there will be. But there has to be a release first, which will get packaged, then backported.

The bug status will be updated when that occurs.

Changed in pithos:
status: In Progress → Fix Committed
assignee: nobody → Christopher Eby (kre3d)
Revision history for this message
Kevin Mehall (kevin-mehall) wrote :

I've released 0.3.17, which thanks to Christopher Eby, implements the JSON API. It's in the PPA, on the releases page, and on GitHub now. It will be a little while until packaged in Ubuntu and Debian repositories.

@Stephen: Yes, development moved to GitHub (https://github.com/kevinmehall/pithos) as of 0.3.16. The lp:pithos git-import branch is a mirror in bzr.

@Tony: If you're unable to build the package with the latest code and the instructions on http://kevinmehall.net/p/pithos, please report a bug with the full error.

Changed in pithos:
status: Fix Committed → Fix Released
Changed in pithos (Debian):
status: Confirmed → Fix Released
Revision history for this message
Alex K (zedbloc) wrote :

Does this fix pianobar as well, or just pithos?

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pithos - 0.3.17-1

---------------
pithos (0.3.17-1) unstable; urgency=low

  * New upstream bugfix and UX improvement release
    - Switch to JSON API. (closes: #670676, LP: #988395)

 -- Luke Faraone <email address hidden> Thu, 03 May 2012 23:48:44 -0400

Changed in pithos (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Luke Faraone (lfaraone) wrote :

pianobar has not been fixed; when it is, the status will be reflected in that package at the top of this page.

Changed in pithos (Ubuntu Oneiric):
assignee: nobody → Luke Faraone (lfaraone)
status: New → In Progress
Changed in pithos (Ubuntu Precise):
assignee: nobody → Luke Faraone (lfaraone)
status: New → In Progress
Changed in pianobar (Ubuntu Oneiric):
status: New → Confirmed
Changed in pianobar (Ubuntu Precise):
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pianobar - 2012.05.06-1

---------------
pianobar (2012.05.06-1) unstable; urgency=high

  * New upstream version.
    - JSON api support (closes: #670483, LP: #988395)

 -- Luke Faraone <email address hidden> Sun, 06 May 2012 14:24:34 -0400

Changed in pianobar (Ubuntu):
status: Confirmed → Fix Released
Changed in pianobar (Debian):
status: Confirmed → Fix Released
Changed in pithos:
assignee: Christopher Eby (kre3d) → victor carralves (vcarralves-r)
Revision history for this message
Luke Faraone (lfaraone) wrote :

Please do not change the bug assignee unless you are.committing to fix the bug
 As this bug has already been fixed, the change is most definitely not appropriate

Revision history for this message
Luke Faraone (lfaraone) wrote :
Changed in pithos:
assignee: victor carralves (vcarralves-r) → Christopher Eby (kre3d)
nicole cohen (nicohen)
Changed in pithos:
assignee: Christopher Eby (kre3d) → nicole cohen (nicohen)
Luke Faraone (lfaraone)
Changed in pithos:
assignee: nicole cohen (nicohen) → Christopher Eby (kre3d)
SunWoof (sunwoof)
Changed in pithos:
assignee: Christopher Eby (kre3d) → SunWoof (sunwoof)
Changed in pianobar:
assignee: nobody → SunWoof (sunwoof)
Luke Faraone (lfaraone)
Changed in pianobar:
assignee: SunWoof (sunwoof) → nobody
Changed in pithos:
assignee: SunWoof (sunwoof) → Christopher Eby (kre3d)
Changed in pithos:
assignee: Christopher Eby (kre3d) → Joshua Alan Stein (asmodeanm)
Reed Loden (reed)
Changed in pithos:
assignee: Joshua Alan Stein (asmodeanm) → Christopher Eby (kre3d)
Luke Faraone (lfaraone)
Changed in pithos (Ubuntu Oneiric):
assignee: Luke Faraone (lfaraone) → nobody
importance: Undecided → High
status: In Progress → Triaged
Changed in pithos (Ubuntu Precise):
importance: Undecided → High
status: In Progress → Triaged
assignee: Luke Faraone (lfaraone) → nobody
description: updated
description: updated
Revision history for this message
Stefano Rivera (stefanor) wrote :

Uploaded a backport of 0.3.17. Can't test it, as I'm in ZA, but Vagrant said it worked, in #1093865

Changed in pithos (Ubuntu Precise):
status: Triaged → Fix Committed
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

This bugfix upload seems to contain a lot of extra changes. The test case is really not sufficient, it needs to include a plan for verifying most of the program functionality and not just this bug. That said, since pithos is totally non-functional in precise at the moment, it seems better to accept this than keep it waiting.

Revision history for this message
Vagrant Cascadian (vagrantc) wrote :

> That said, since pithos is totally non-functional in precise at the moment, it seems better to accept this
> than keep it waiting.

So... What more needs to be done to move this forward?

Changed in pithos:
assignee: Christopher Eby (kre3d) → jeremy rakes (jeremy-rakes)
Luke Faraone (lfaraone)
Changed in pithos:
assignee: jeremy rakes (jeremy-rakes) → Christopher Eby (kre3d)
Revision history for this message
Stefano Rivera (stefanor) wrote :

> So... What more needs to be done to move this forward?

It's still in the review queue
https://launchpad.net/ubuntu/precise/+queue?queue_state=1&queue_text=pithos

I'll prod the SRU team

Changed in pithos (Ubuntu Precise):
status: Fix Committed → In Progress
Revision history for this message
Dave Walker (davewalker) wrote :

I'm looking at the SRU upload briefly now, I would be much happier processing a targeted fix for just the API issue. This seems to have a minimal patch on the upstream bug tracker. Please can you check to see if this is suitable.

Thanks.

Revision history for this message
Chris Halse Rogers (raof) wrote :

I'm rejecting pithos from the precise-proposed queue, sorry. We either need a better testing plan, giving us some confidence that most of the client works, or to have the minimal API patch applied instead of the backport.

Revision history for this message
Donald E Elman III (donaldelmaniii) wrote :

its say update and everything your sites prvide just run me in circles.. maybe there is something Im not getting.. im still new ubuntu can you please help?

Revision history for this message
Luke Faraone (lfaraone) wrote :

Hi Chris: I've uploaded a new version of the package to -proposed which only incorporates the minimal JSON API changes.

description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Kevin, or anyone else affected,

Accepted pithos into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/pithos/0.3.14-1ubuntu12.0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in pithos (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Vagrant Cascadian (vagrantc) wrote :

Confirmed that version 0.3.14-1ubuntu12.0.1 is able to log into pandora and play music.

tags: added: verification-done
removed: verification-needed
Revision history for this message
rommer (john-netrom) wrote : Re: [Bug 988395] Re: Pandora v34 API Update Required

Can confirm ability to login but can not load any playlists.

When ever I try to select a playlist I get :
WARNING:root:Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pithos/gobject_worker.py", line
34, in _run
    result = command(*args)
  File "/usr/lib/python2.7/dist-packages/pithos/pandora/pandora.py", line
250, in get_playlist
    songs.append(Song(self.pandora, i))
  File "/usr/lib/python2.7/dist-packages/pithos/pandora/pandora.py", line
274, in __init__
    self.audioUrl = d['additionalAudioUrl'][self.pandora.audio_format]
IndexError: list index out of range

Then if I try to play
ERROR:root:Gstreamer error: Resource not found., gstplaybin2.c(3824):
setup_next_source (): /GstPlayBin2:player
Traceback (most recent call last):
  File "/usr/bin/pithos", line 535, in on_gst_error
    self.current_song.message = "Error: "+str(err)
AttributeError: 'NoneType' object has no attribute 'message'

-----------------------------------------------------------------------
John Vozza
NetRom Internet Services
973-869-9256
http://www.netrom.com

On Thu, Apr 18, 2013 at 1:39 PM, Vagrant Cascadian <
<email address hidden>> wrote:

> ** Tags removed: verification-needed
> ** Tags added: verification-done
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/988395
>
> Title:
> Pandora v34 API Update Required
>
> Status in pianobar:
> Fix Committed
> Status in Pithos:
> Fix Released
> Status in “pianobar” package in Ubuntu:
> Fix Released
> Status in “pithos” package in Ubuntu:
> Fix Released
> Status in “pianobar” source package in Oneiric:
> Confirmed
> Status in “pithos” source package in Oneiric:
> Triaged
> Status in “pianobar” source package in Precise:
> Confirmed
> Status in “pithos” source package in Precise:
> Fix Committed
> Status in “pianobar” package in Debian:
> Fix Released
> Status in “pithos” package in Debian:
> Fix Released
>
> Bug description:
> == SRU Discussion ==
>
> [Impact]
>
> * Pithos fails to allow users to log in to Pandora, and has no useful
> functionality without logging in.
>
> [Test Case]
>
> * Install pithos 0.3.14-1
> * Run it
> * Provide login credentials
> * Attempt to log in
>
> [Regression Potential]
>
> * I know of no services running older Pandora APIs, so there's
> nothing to connect with using the old API, thus no regression
> potential, really.
>
> I've backported the JSON API patch to this release.
>
> == Original Report ==
>
> Pandora changed the authentication and login methods, breaking
> Pithos/Pianobar.
>
> Upstream in pianobar: https://github.com/PromyLOPh/pianobar/issues/236
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/pianobar/+bug/988395/+subscriptions
>
> !DSPAM:500,51703157271161985895729!
>
>

Revision history for this message
Kevin Mehall (kevin-mehall) wrote :

@rommer, That looks like bug #1009343, which is fixed in git. The workaround is to choose the "aacplus" audio format instead of "mp3-hifi" in the preferences dialog.

It is a separate change on Pandora's side, not related to this bug or Luke's patch.

Revision history for this message
rommer (john-netrom) wrote :

Awesome! That nailed it. Able to login and listen to music once again/

-----------------------------------------------------------------------
John Vozza
NetRom Internet Services
973-869-9256
http://www.netrom.com

On Thu, Apr 18, 2013 at 3:37 PM, Kevin Mehall <email address hidden>wrote:

> @rommer, That looks like bug #1009343, which is fixed in git. The
> workaround is to choose the "aacplus" audio format instead of "mp3-hifi"
> in the preferences dialog.
>
> It is a separate change on Pandora's side, not related to this bug or
> Luke's patch.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/988395
>
> Title:
> Pandora v34 API Update Required
>
> Status in pianobar:
> Fix Committed
> Status in Pithos:
> Fix Released
> Status in “pianobar” package in Ubuntu:
> Fix Released
> Status in “pithos” package in Ubuntu:
> Fix Released
> Status in “pianobar” source package in Oneiric:
> Confirmed
> Status in “pithos” source package in Oneiric:
> Triaged
> Status in “pianobar” source package in Precise:
> Confirmed
> Status in “pithos” source package in Precise:
> Fix Committed
> Status in “pianobar” package in Debian:
> Fix Released
> Status in “pithos” package in Debian:
> Fix Released
>
> Bug description:
> == SRU Discussion ==
>
> [Impact]
>
> * Pithos fails to allow users to log in to Pandora, and has no useful
> functionality without logging in.
>
> [Test Case]
>
> * Install pithos 0.3.14-1
> * Run it
> * Provide login credentials
> * Attempt to log in
>
> [Regression Potential]
>
> * I know of no services running older Pandora APIs, so there's
> nothing to connect with using the old API, thus no regression
> potential, really.
>
> I've backported the JSON API patch to this release.
>
> == Original Report ==
>
> Pandora changed the authentication and login methods, breaking
> Pithos/Pianobar.
>
> Upstream in pianobar: https://github.com/PromyLOPh/pianobar/issues/236
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/pianobar/+bug/988395/+subscriptions
>
> !DSPAM:500,51704d73317421303181727!
>
>

Revision history for this message
Scott Kitterman (kitterman) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pithos - 0.3.14-1ubuntu12.0.1

---------------
pithos (0.3.14-1ubuntu12.0.1) precise-proposed; urgency=low

  * Update to JSON API (LP: #988395)
 -- Luke Faraone <email address hidden> Wed, 10 Apr 2013 23:34:29 -0400

Changed in pithos (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

oneiric has seen the end of its life and is no longer receiving any updates. Marking the oneiric task for this ticket as "Won't Fix".

Changed in pithos (Ubuntu Oneiric):
status: Triaged → Won't Fix
Rolf Leggewie (r0lf)
Changed in pianobar (Ubuntu Oneiric):
status: Confirmed → Won't Fix
Revision history for this message
Steve Langasek (vorlon) wrote :

The Precise Pangolin has reached end of life, so this bug will not be fixed for that release

Changed in pianobar (Ubuntu Precise):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.