1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
.\" Continuation line for .TP header.
.de TQ
. br
. ns
. TP \\$1\" no doublequotes around argument!
..
.TH pianobar 1
.SH NAME
pianobar \- console pandora.com music player
.SH SYNOPSIS
.B pianobar
.SH DESCRIPTION
.B pianobar
is a lightweight console music player for the personalized online radio
pandora.com.
.SH FILES
.I $XDG_CONFIG_HOME/pianobar/config
or
.I ~/.config/pianobar/config
.RS
Per-user configuration file. See
.B CONFIGURATION.
.RE
.I /etc/libao.conf
or
.I ~/.libao
.RS
Global/per-user audio output configuration. See libao documentation at
http://xiph.org/ao/doc/config.html
.RE
.SH CONFIGURATION
The configuration file consists of simple
.B key = value
lines, each terminated with a newline (\\n) character. Keys are case sensitive.
act_* keys control
.B pianobar's
key-bindings. Every one-byte character except for \\x00 and the
special value
.B disabled
are allowed here.
.TP
.B act_help = ?
Show keybindings.
.TP
.B act_songlove = +
Love currently played song.
.TP
.B act_songban = -
Ban current track. It will not be played again and can only removed using the
pandora.com web interface.
.TP
.B act_stationaddmusic = a
Add more music to current station. You will be asked for a search string. Just
follow the instructions. If you're clueless try '?' (without quotes).
.TP
.B act_bookmark = b
Bookmark current song or artist.
.TP
.B act_stationcreate = c
Create new station. You have to enter a search string and select the song or
artist of your choice.
.TP
.B act_stationdelete = d
Delete current station.
.TP
.B act_songexplain = e
Explain why this song is played.
.TP
.B act_stationaddbygenre = g
Add genre station provided by pandora.
.TP
.B act_history = h
Show history.
.TP
.B act_songinfo = i
Print information about currently played song/station.
.TP
.B act_addshared = j
Add shared station by id. id is a very long integer without "sh" at the
beginning.
.TP
.B act_managestation = =
Delete artist/song seeds or feedback.
.TP
.B act_songmove = m
Move current song to another station
.TP
.B act_songnext = n
Skip current song.
.TP
.B act_songpause = S
Pause playback
.TP
.B act_songpausetoggle = p
.TQ
.B act_songpausetoggle2 = <Space>
Pause/resume playback
.TP
.B act_songplay = P
Resume playback
.TP
.B act_quit = q
Quit
.B pianobar.
.TP
.B act_stationrename = r
Rename currently played station.
.TP
.B 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.
.TP
.B act_songtired = t
Ban song for one month.
.TP
.B act_upcoming = u
Show next songs in playlist.
.TP
.B act_stationcreatefromsong = v
Create new station from the current song or artist.
.TP
.B act_stationselectquickmix = x
Select quickmix stations. You can toggle the selection with 't', select all
with 'a' or select none with 'n'.
.TP
.B act_voldown = (
Decrease volume.
.TP
.B act_volreset = ^
Reset volume.
.TP
.B act_volup = )
Increase volume.
.TP
.B act_settings = !
Change Pandora settings.
.TP
.B at_icon = @
Replacement for %@ in station format string. It's " @ " by default.
.TP
.B audio_quality = {high, medium, low}
Select audio quality.
.TP
.B autoselect = {1,0}
Auto-select last remaining item of filtered list. Currently enabled for station
selection only.
.TP
.B autostart_station = stationid
Play this station when starting up. You can get the
.B stationid
by pressing
.B i
or the key you defined in
.B act_songinfo.
.TP
.B ban_icon = </3
Icon for banned songs.
.TP
.B bind_to = {if!tunX,host!x.x.x.x,..}
This sets the interface name to use as outgoing network interface. The name can
be an interface name, an IP address, or a host name. (from CURLOPT_INTERFACE)
It can be used as a replacement for
.B control_proxy
in conjunction with OpenVPN's
option
.B route-nopull.
.TP
.B ca_bundle = /etc/ssl/certs/ca-certificates.crt
Path to CA certifiate bundle, containing the root and intermediate certificates
required to validate Pandora's SSL certificate.
.TP
.B control_proxy = http://user:password@host:port/
Non-american users need a proxy to use pandora.com. Only the xmlrpc interface
will use this proxy. The music is streamed directly.
.TP
.B decrypt_password = R=U!LH$O2B#
.TP
.B device = android-generic
.TP
.B encrypt_password = 6#26FRL$ZWD
.TP
.B event_command = path
File that is executed when event occurs. See section
.B EVENTCMD
.TP
.B fifo = $XDG_CONFIG_HOME/pianobar/ctl
Location of control fifo. See section
.B REMOTE CONTROL
.TP
.B format_list_song = %i) %a - %t%r
Available format characters:
.B %i
Song number
.B %a
Song artist
.B %t
Song title
.B %r
Rating icon
.B %d
Song duration
.B %@
The at_icon
.B %s
Song’s station, if not the current station.
.TP
.B format_msg_none = %s
.TQ
.B format_msg_info = (i) %s
.TQ
.B format_msg_nowplaying = |> %s
.TQ
.B format_msg_time = # %s
.TQ
.B format_msg_err = /!\\\\ %s
.TQ
.B format_msg_question = [?] %s
.TQ
.B format_msg_list = \\t%s
Message format strings.
.B %s
is replaced with the actual message.
.TP
.B format_nowplaying_song = \[dq]%t\[dq] by \[dq]%a\[dq] on \[dq]%l\[dq]%r%@%s
Now playing song message format. Available format characters are:
.B %t
Song title
.B %a
Song artist
.B %l
Album name
.B %r
Rating icon
.B %@
.B at_icon
if station is quickmix, empty otherwise.
.B %s
Real station name if quickmix
.B %u
Song detail url
.TP
.B format_nowplaying_station = Station \[dq]%n\[dq] (%i)
Now playing station format. Available format characters are:
.B %n
Station name
.B %i
Station id
.TP
.B 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.0 means no gain adjustment, 1.0 means full gain adjustment, values inbetween reduce the magnitude
of gain adjustment.
.TP
.B history = 5
Keep a history of the last n songs (5, by default). You can rate these songs.
.TP
.B love_icon = <3
Icon for loved songs.
.TP
.B max_retry = 3
Max failures for several actions before giving up.
.TP
.B partner_password = AC7IBG09A3DTSYM4R41UJWL07VLN8JI7
.TP
.B partner_user = android
.TP
.B password = plaintext_password
Your pandora.com password. Plain-text.
.TP
.B password_command = gpg --decrypt ~/password
Use output of command as password. This setting is overridden by specifying a
password with
.B password.
.TP
.B proxy = http://user:password@host:port/
Use a http proxy. Note that this setting overrides the http_proxy environment
variable. Only "Basic" http authentication is supported.
.TP
.B rpc_host = tuner.pandora.com
.TP
.B rpc_tls_port = 443
.TP
.B sort = {name_az, name_za, quickmix_01_name_az, quickmix_01_name_za, quickmix_10_name_az, quickmix_10_name_za}
Sort station list by name or type (is quickmix) and name. name_az for example
sorts by name from a to z, quickmix_01_name_za by type (quickmix at the
bottom) and name from z to a.
.TP
.B timeout = 30
Network operation timeout.
.TP
.B tired_icon = zZ
Icon for temporarily suspended songs.
.TP
.B user = your@user.name
Your pandora.com username.
.TP
.B volume = 0
Initial volume correction in dB. Usually between -30 and +5.
.SH REMOTE CONTROL
.B 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
.B n
is the keybinding for "next song". If you customized your keybindings you have to use these characters to control
.B pianobar.
.I This behaviour may change in the future!
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
.SH EVENTCMD
.B pianobar
can report certain "events" to an external application (see
.B CONFIGURATION
). This application is started with the event name as it's first argument. More
information like error code and description, was well as song information
related to the current event, is supplied through stdin.
Currently supported events are: artistbookmark, songban, songbookmark,
songexplain, songfinish, songlove, songmove, songshelf, songstart,
stationaddgenre, stationaddmusic, stationaddshared, stationcreate,
stationdelete, stationdeleteartistseed, stationdeletefeedback,
stationdeletesongseed, stationfetchinfo, stationfetchplaylist,
stationfetchgenre stationquickmixtoggle, stationrename, userlogin,
usergetstations
An example script can be found in the contrib/ directory of
.B pianobar's
source distribution.
.SH AUTHOR
Lars-Dominik Braun <lars@6xq.net>
|