Liquidsoap is a self-documented application, which means that it can provide help about several of its aspects. You will learn here how to get help by yourself, by asking liquidsoap. If you do not succeed in asking the tool, you can of course get help from humans, preferably on the mailing list
When scripting in liquidsoap, one uses functions that are either builtin (e.g.
output.icecast) or defined in the script library (e.g
out). All these functions come with a documentation, that you can access by executing
liquidsoap -h FUNCTION on the command-line. For example:
$ liquidsoap -h sine *** One entry in scripting values: Generate a sine wave. Category: Source / Input Type: (?id:string, ?duration:float, ?float)->source Parameters: * id :: string (default "") Force the value of the source ID. * duration :: float (default 0.) * (unlabeled) :: float (default 440.) Frequency of the sine.
Of course if you do not know what function you need, you’d better go through the API reference.
The server (cf. the server tutorial) offers some help about its commands. Once connected (either via a TCP or UNIX socket) the
help command gives you a list of available commands together with a short usage line. You can then get more detailed information about a specific command by typing
$ telnet localhost 1234 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. help Available commands: [...] | queue.ignore <rid> | queue.push <uri> | queue.queue [...] Type "help <command>" for more information. END help queue.push Help for command queue.push. Usage: queue.push <uri> Push a new request in the queue. END
Liquidsoap scripts contain expression like
set("log.stdout",true). These are settings, global variables affecting the behaviour of the application. Here, the first parameter identifies a setting its path, and the second one specifies its new value.
You can have a list of available settings, with their documentation, by running
liquidsoap --conf-descr. If you are interested in a particular settings section, for example server-related stuff, use
liquidsoap --conf-descr-key server.
The output of these commands is a valid liquidsoap script, which you can edit to set the values that you want, and load it (implicitly or not) before you other scripts.
You can browse online the list of available settings.
Several aspects of liquidsoap work with a notion of plugin: builtin scripting functions, audio decoders for files and streams, metadata decoders, protocols, etc. The list of plugins can be used to check that your build of liquidsoap has such or such feature, or simply to browse available functions – actually, the reference is built from that output.
You can get the pretty hairy list of all available plugins from the command
liquidsoap --list-plugins, or
liquidsoap --list-plugins-xml for a more parsable XML output.