from Hacker News

Pianobar command-line Pandora client

by nirmal on 1/27/11, 9:27 PM with 19 comments

  • by swirlee on 1/27/11, 11:55 PM

    Interesting. As gilesc points out, this is only possible by reverse-engineering (i.e. decompiling) the Flash client to get the encryption and decryption keys (crypt_key_input.h and crypt_key_output.h [1]). It's actually pretty easy to do this--I did the same thing a few years ago as a weekend project. So why didn't I release it? Well, IANAL, but I think there are potential legal repercussions to this kind of reverse-engineering.

    And, as gilesc also points out, Pandora regularly changes their encryption keys, which makes maintaining this kind of software kind of obnoxious. (The solution to that problem, I think, is to make the software download and parse the .swf file on startup or just on failure to yank out those fresh encryption keys itself, but I never tried it.)

    I just cringe a bit when I see these sorts of apps, not because I think they shouldn't exist (seriously, Pandora, just release a goddamn API), but because I'm just picturing the lawsuit hammer coming down on the well-intentioned developers who are just Pandora fans.

    Regardless, I applaud PromyLOPh's work and am keeping my fingers crossed for his continued lack of legal fees.

    [1]: https://github.com/PromyLOPh/pianobar/tree/master/src/libpia...

  • by nuclear_eclipse on 1/28/11, 12:36 AM

    If you're running Linux and/or Gnome, I have two projects to plug:

    Pithos is a Gtk client that uses the core libraries from Pianobar to provide a very nice GUI client for Pandora that fully integrates with the latest Gnome/Ubuntu desktop. http://kevinmehall.net/p/pithos/

    The second is a set of scripts that I wrote that build on top of the Pianobar client itself to implement media keys and notify-osd support for Ubuntu, although it is incomplete because I myself have switched to using Pithos instead. https://github.com/jreese/pianobar-python

  • by nirmal on 1/27/11, 9:29 PM

    Should probably have linked directly to the github repo https://github.com/PromyLOPh/pianobar
  • by mickdarling on 1/27/11, 11:15 PM

    I use it as well, and have been meaning to dig into the code to setup automatic login and playing. I think the stream that it accesses is completely advertising-free too. But I would gladly listen to the pandora ads on it since it runs with SO MUCH LESS memory and CPU than any other player.
  • by siong1987 on 1/28/11, 12:28 AM

    If you have homebrew installed, just simply "brew install pianobar".
  • by gilesc on 1/27/11, 11:02 PM

    I like and use it, but it's based on reverse-engineering Pandora's encryption keys, so every once in awhile (when Pandora changes the keys), it breaks the client, which is annoying.
  • by naner on 1/28/11, 3:03 AM

    I've used the pianobar client for a long time. (I'm on Linux and there's no official native client.) It breaks every so often and you have to wait a day or so for it to get fixed. A 'feature' of this unofficial client is that it doesn't play any of the ads on free Pandora accounts. So Pandora probably isn't very happy with that.
  • by dcreemer on 1/28/11, 3:50 AM

    I love pianobar- I use it daily and love the fact that it uses very little emory especially compared to the Flash-based official clients.

    I'm not sure what the official Pandora position regarding pianobar is, but I did hear from an employee that they have worked to disable it in the past.

  • by mhd on 1/28/11, 12:19 AM

    In a similar vein, shell-fm[1] is a command line client for last.fm streaming. Supports remote control, too (IIRC it uses a socket whereas pianobar uses a named pipe).

    [1]: http://nex.scrapping.cc/shell-fm/

  • by carterschonwald on 1/28/11, 12:17 AM

    its worth mentioning that mac homebrew already has a formula for installing this, and it builds and runs without a hitch.
  • by SageRaven on 1/28/11, 12:04 AM

    Damn, I love this site! It's even in FreeBSD's ports -- how awesome is that? Kudos to the developer!
  • by talleyrand on 1/27/11, 10:09 PM

    Love pianobar! Use it daily.