pianobar(1)
π NAME π
okay so bestie, meet pianobar β a console music player for pandora.com π§β¨ like, it plays your personalized internet radio right there in the terminal, no browser, no nonsense. This page is pianobar(1) from the General Commands Manual, and yeah it's long, but we're getting through it together. π
πΈ SYNOPSIS πΈ
pianobar
that's it. one word. no flags, no arguments. iconic behaviour honestly. π
π¦ DESCRIPTION π¦
pianobar is a lightweight console music player for the personalized online radio pandora.com. π
π FILES π
$XDG_CONFIG_HOME/pianobar/configor~/.config/pianobar/configβ your per-user configuration file, bestie. See CONFIGURATION below, it's a whole section, we'll get there. π/etc/libao.confor~/.libaoβ the global / per-user audio output configuration. The libao documentation lives athttp://xiph.org/ao/doc/config.htmlif you wanna go read the source of truth. π
βοΈ CONFIGURATION βοΈ
So the config file is just simple key = value lines, each one ending with a newline (\n) character. And heads up: keys are case sensitive. so Foo and foo are NOT the same thing, not even close, don't do that to yourself. π
The act_* keys are what control pianobar's key-bindings. Every one-byte character is allowed here β except \x00 and the special value disabled. That's the whole rule. β¨
β¨οΈ key-bindings β¨οΈ
act_help = ?β show keybindings. πact_songlove = +β love the currently played song. πact_songban = -β ban the current track. It will not be played again, and it can only be removed using the pandora.com web interface. so like, be sure. πact_stationaddmusic = aβ add more music to the current station. You'll be asked for a search string β just follow the instructions. If you're clueless, try?(without quotes). π«Άact_bookmark = bβ bookmark the current song or artist. πact_stationcreate = cβ create a new station. You have to enter a search string and then select the song or artist of your choice. πact_stationdelete = dβ delete the current station. πact_songexplain = eβ explain why this song is being played. the way it has a whole reason... πact_stationaddbygenre = gβ add a genre station provided by pandora. πΌact_history = hβ show history. π°οΈact_songinfo = iβ print information about the currently played song/station. βΉοΈact_addshared = jβ add a shared station by id. the id is a very long integer without theshat the beginning. no cap, that leadingshis not invited. π«act_managestation = =β delete artist/song seeds or feedback. π§Ήact_songnext = nβ skip the current song. βοΈact_songpause = Sβ pause playback. βΈοΈact_songpausetoggle = pβ pause/resume playback. πact_songpausetoggle2 = <Space>β pause/resume playback. yes, there are two of these, they do the same thing, and honestly? slay. πact_songplay = Pβ resume playback. βΆοΈact_quit = qβ quit pianobar. bye bestie πact_stationrename = rβ rename the currently played station. βοΈact_stationchange = sβ select another station. The station list can be filtered like most lists, by entering a search string instead of a station number. πact_songtired = tβ ban the song for one month. it's not forever, it's just... a break. π€act_upcoming = uβ show the next songs in the playlist. πact_stationcreatefromsong = vβ create a new station from the current song or artist. π±act_stationselectquickmix = xβ select quickmix stations. You can toggle the selection witht, select all witha, or select none withn. ποΈact_voldown = (β decrease volume. πact_volreset = ^β reset volume. ποΈact_volup = )β increase volume. πact_settings = !β change Pandora settings. π οΈ
π the rest of the config π
at_icon = @β the replacement for%@in the station format string. It's" @ "by default. β¨audio_quality = {high, medium, low}β select audio quality. pick your fighter. π΅audio_pipe = /path/to/fifoβ stream decoded, raw audio samples to a pipe instead of the default audio device. Usesample_rateto enforce a fixed sample rate. π°autoselect = {1,0}β auto-select the last remaining item of a filtered list. Currently enabled for station selection only. π―autostart_station = stationidβ play this station when starting up. You can get thestationidby pressingi, or whatever key you defined inact_songinfo. πban_icon = </3β icon for banned songs. πbind_to = {if!tunX,host!x.x.x.x,..}β this sets the interface name to use as the outgoing network interface. The name can be an interface name, an IP address, or a host name. (fromCURLOPT_INTERFACE) π
It can be used as a replacement for control_proxy in conjunction with OpenVPN's option route-nopull. π
buffer_seconds = 5β audio buffer size in seconds. β³ca_bundle = /etc/ssl/certs/ca-certificates.crtβ path to the CA certificate bundle, containing the root and intermediate certificates required to validate Pandora's SSL certificate. πcontrol_proxy = http://user:password@host:port/β non-american users need a proxy to use pandora.com. Only thexmlrpcinterface will use this proxy. The music is streamed directly. πΊοΈdecrypt_password = R=U!LH$O2B#β the original doesn't say what this does, so I'm not making anything up. just leave it alone bestie, iykyk. π€«device = android-genericβ again, no description in the original. don't touch it. πencrypt_password = 6#26FRL$ZWDβ same deal, no description. hands off. βevent_command = pathβ file that is executed when an event occurs. See the EVENTCMD section. π£fifo = $XDG_CONFIG_HOME/pianobar/ctlβ location of the control fifo. See the REMOTE CONTROL section. π‘format_list_song = %i) %a - %t%rβ the song list format. Available format characters are:%iβ song number%aβ song artist%tβ song title%rβ rating icon%dβ song duration%@β theat_icon%sβ the song's station, if it's not the current station. πΆ
format_msg_none = %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_info = (i) %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_nowplaying = |> %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_time = # %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_err = /!\ %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_question = [?] %sβ a message format string:%sgets replaced with the actual message. π¬format_msg_list = %sβ a message format string:%sgets replaced with the actual message. π¬format_nowplaying_song = "%t" by "%a" on "%l"%r%@%sβ the now-playing song message format. Available format characters are:%tβ song title%aβ song artist%lβ album name%rβ rating icon%@βat_iconif the station is quickmix, empty otherwise.%sβ real station name if quickmix%uβ song detail url π€
format_nowplaying_station = Station "%n" (%i)β the now-playing station format. Available format characters are:%nβ station name%iβ station id π»
format_time = %s%r/%tβ the time format.%eβ elapsed time%rβ remaining time%sβ sign%tβ total time β±οΈ
gain_mul = 1.0β Pandora sends a ReplayGain value with every song. This sets a multiplier so that the gain adjustment can be reduced.0.0means no gain adjustment,1.0means full gain adjustment, and values in between reduce the magnitude of the gain adjustment. ποΈhistory = 5β keep a history of the last n songs (5, by default). You can rate these songs. π°οΈlove_icon = <3β icon for loved songs. πmax_retry = 3β max failures for several actions before giving up. πpartner_password = AC7IBG09A3DTSYM4R41UJWL07VLN8JI7β no description in the original. it just is. π€partner_user = androidβ no description either. leave it be. π€password = plaintext_passwordβ your pandora.com password. Plain-text. yeah, plain-text, we know, bestie, we know. π¬password_command = gpg --decrypt ~/passwordβ use the output of the command as the password. This setting is overridden by specifying a password withpassword. ποΈproxy = http://user:password@host:port/β use a http proxy. Note that this setting overrides thehttp_proxyenvironment variable. Only "Basic" http authentication is supported. π§¦rpc_host = tuner.pandora.comβ no description in the original. don't ask me, I don't make the rules. π€·rpc_tls_port = 443β no description in the original either. π€·sample_rate = 0β force a fixed output sample rate. The default,0, uses the stream's sample rate. π§sort = {name_az, name_za, quickmix_01_name_az, quickmix_01_name_za, quickmix_10_name_az, quickmix_10_name_za}β sort the station list by name, or by type (is quickmix) and name.name_azfor example sorts by name from a to z, andquickmix_01_name_zasorts by type (quickmix at the bottom) and name from z to a. π€timeout = 30β network operation timeout. β²οΈtired_icon = zZβ icon for temporarily suspended songs. π΄user = your@user.nameβ your pandora.com username. πͺͺvolume = 0β initial volume correction in dB. Usually between-30and+5. π
π‘ REMOTE CONTROL π‘
pianobar can be controlled through a fifo. You have to create it yourself by executing:
mkfifo ~/.config/pianobar/ctl
Adjust the path if you set up a $XDG_CONFIG_HOME or changed the fifo setting. Afterwards you can write commands directly into the fifo. Example (next song):
echo -n 'n' > ~/.config/pianobar/ctl
n is the keybinding for "next song". If you customized your keybindings, you have to use these characters to control pianobar.
β οΈ This behaviour may change in the future! so don't get too attached, bestie. π
Another example:
while true; do;
nc -l -p 12345 -s localhost localhost > ~/.config/pianobar/ctl;
sleep 1;
done
echo -ne 'n\x1a' | nc -q 0 127.0.0.1 12345
π£ EVENTCMD π£
pianobar can report certain "events" to an external application (see CONFIGURATION). This application is started with the event name as its first argument. More information β like the error code and description, as well as song information related to the current event β is supplied through stdin. π«§
Currently supported events are:
artistbookmarksettingschangesettingsgetsongbansongbookmarksongexplainsongfinishsonglovesongshelfsongstartstationaddgenrestationaddmusicstationaddsharedstationcreatestationdeletestationdeleteartistseedstationdeletefeedbackstationdeletesongseedstationdeletestationseedstationfetchgenrestationfetchinfostationfetchplayliststationgetmodesstationquickmixtogglestationrenamestationsetmodeusergetstationsuserlogin
An example script can be found in the contrib/ directory of pianobar's source distribution. π§
π AUTHOR π
Lars-Dominik Braun <lars@6xq.net> β thank you for this masterpiece, we are obsessed. π«Ά
and that's the whole page, bestie!! π this was pianobar(1) from the General Commands Manual, and you made it all the way to the bottom, which is honestly main character energy. go make a station and love some songs. β¨ππ¦
π¦ where this page comes from
- alpine 3.24: pianobar-doc 2024.12.21-r2 Β· MIT
- arch rolling: pianobar 2024.12.21-3 Β· MIT
- debian trixie: pianobar 2024.12.21-1 Β· MIT
- fedora 43: pianobar 2024.12.21-2.fc43 Β· MIT
- fedora 44: pianobar 2024.12.21-4.fc44 Β· MIT
- nixos 26.05: pianobar 2024.12.21
- nixpkgs unstable: pianobar 2024.12.21
- ubuntu questing: pianobar 2024.12.21-1
- ubuntu resolute: pianobar 2024.12.21-1build1 Β· MIT
- ubuntu stonking: pianobar 2024.12.21-1build1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms