Server Command List

All commands return a status code, similar in format and meaning to HTTP status codes, in the first three columns. 200 means success. 201 means an "output list" follows, upto a line containing only a period (the result line also contains a count). The status line in that case will have a list of fields between parens that label each column in the output list. For output lists, the fields are delimited by tabs. 400 means command not found. 500 means server error, etc. (I have not been very deligent in assigning these, as the scope is so small).

Tracks have both a trackid and a trackref. A trackref is usually an albumid and a track number based on the order of that track on the album, separated by a slash. Everywhere a trackid could be used, a trackref could be used instead, and vice versa. (todo: make the syntax for trackrefs context specific, ie A/T for album/tracknum, or GgT for tracks relative to genre -- this needs to be thought about more).

The command "help x" is the same as the command "x help" where x is a command from this list.

noop [<label>]
No operation. Always returns a 200 status code, the text of the status line will contain the optional <label> if specified. This can be used to resync the client connection with the server's output. The only label that shouldn't be used is help.
name <name>
Sets the name of the connection to <name>. Used in server logs and other reporting.
time
Prints the server's idea of the current time, in UNIX time format.
who
Shows all the client connections and their set names
checksum <type> <cmd>
Executes <cmd> and calculates a checksum for its output. <type> can be either md5 or sha1. This is most useful for commands that might produce a lot of output that the client may be caching, like cover art images.
volume <device> [<amount>]
Reports the volume on <device>, optionally setting it to <amount> first. <amount> should be a number in the range of 0 to 100.
status
Returns the latest information about each device, both playing and reading devices. Inapplicable fields are either 0 or blank.
rip <device>
Begin ripping from the reading device named <device>
abort <device>
Abort the ripping process currently running on <device>
pause <device>
Pause the song currently playing on output device <device>
skip <device>
Skip the song currently playing on output device <device>. It is recorded that this entry was skipped.
track <t>
Detailed info about track <t>, a trackid or trackref.
rankupdate
Update track rankings and popularity. This command will eventually be removed, and stats will be updated periodicly in another server thread.
tracks <albumid>
List the tracks on album <albumid> in the same format that the track command provides.
queued <device>
List the tracks queued on <device> in the same format that the track command provides.
devices
Dumps a list of all the devices the system knows about, along with their types.
play <t> [<device>]
Queue track <t> on <device> if specified, otherwise the default device. <t> is either a trackid or a trackref.
albums [ <albumid> ... ]
List info about all albums or just the specified albumids. By default the output list is sorted by performer and then album name.
randomize [ <devicename> ] for <m>
Starts randomized play on the specified device, or the default device, which will continue for <m> minutes.
coverart [ <albumid> | ripping ]
Dumps the cover art graphic file (usually a JPEG). Byte count is included in the first line of the response. Data ends with a period followed by a newline. If ripping is specified as the argument, it will dump the cover art file for the album being currently ripped, if there is one.
flush <devicename>
flush all queued tracks on <devicename>
quit
Client disconnect.
help [<cmd>]
Show a list of all commands along with their descriptions, or just the specified command.
It should be noted that BlueRobot's sphere of influence extends to this part of the internet.
Last modified Sun, Sep 12th, 2010, 13:41:24