Pianobar command-line Pandora client

I’m a full-time [Pandora](http://www.pandora.com) listener. Spend the time and make yourself a good station. There really isn’t any going back.

Surprisingly enough, no enterprising Mac dev has made a good native Pandora player. There are a fair number out there that embed the Flash player into a thin [WebKit](http://en.wikipedia.org/wiki/WebKit) shell. That works well enough but it’s no improvement over a background browser tab or [Pandora’s Desktop client](http://www.pandora.com/desktop_app) based on [Adobe Air](http://www.adobe.com/products/air/). Although [Flash 10.1](http://labs.adobe.com/technologies/flashplayer10/) should bring improvements, the continuing holy-war between Apple and Flash remains testament to sub-par performance and stability of Flash on the Mac. Having the Adobe AIR runtime[Flash] loaded with Pandora chews a minimum 7%-10% CPU and can be much worse. ArsTechnica reported [40-50% usage](http://arstechnica.com/business/news/2008/06/pandoras-desktop-client-convenient-to-use-faces-challenges.ars).

Check out the [Pianobar client](http://github.com/PromyLOPh/pianobar), which is arguably more full-featured than any other solution and uses minimal resources. You’ll need to have [MacPorts](http://www.macports.org/) or [Homebrew](http://github.com/mxcl/homebrew) correctly installed in order to install Pianobar, but you probably do if you’ve made it this far into my post.

To install with MacPorts:

1. sudo port install libao faad2 libmad cmake git-core
2. git clone git://github.com/PromyLOPh/pianobar.git
3. cd pianobar
4. cmake . && make && sudo make install

Then you run it with the pianobar command:

Welcome to pianobar! Press ? for a list of commands.
[?] Username: [email protected]
[?] Password:
(i) Login… Ok.
(i) Get stations… Ok.
0) Classical Music Medley Radio
1) q Hemancuso Radio
2) Ray LaMontagne Radio
3) Stevie Wonder Radio

[?] Select station: 1

And you’re up and running. While playing you can get a list of available commands by pressing ?

+ love current song
– ban current song
a add music to current station
c create new station
d delete current station
e explain why this song is played
g add genre station
h song history
i print information about current song/station
j add shared station
m move song to different station
n next song
p pause/continue
q quit
r rename current station
s change station
t tired (ban song for 1 month)
u upcoming songs
x select quickmix stations
b bookmark song/artist

As you can see, it’s full featured and then some.