• The kmediad project
kmediadcmd — a command-line, interactive interface to kmediad
What is this?
kmediadcmd is a command-line interface to the kmediad
music player. It is based on the
kmedia API. It allows the user to
select particular tracks or albums for playback, and to query the music
track database in various ways.
For more information, see the
kmediadcmd man page.
kmediadcmd can be used in batch or interactive mode.
In interactive mode, it prompts for commands and executes them.
kmediadcmd commands often take command-line switches
of their own, some care has to be taken to avoid getting these different
kinds of switches mixed up. In non-interactive mode, the general format
of the command line is
$ kmediad [program_options] [--] [command [command_options]]
The "--" token indicates that what follows is a command and its switches,
and that the switches apply to the command, and not the program in general.
For example, in this command:
$ kmediad -p 30001 — playlist -p
the first "-p" is an instruction to use port 30001 for communication with
the server, whilst the second is an option to the "playlist" command, telling
it to display file paths rather than track titles. The "--" can be ommitted
if the command takes no switches. For example:
$ kmediad play
Anything after a hash (#) is taken to be a comment, but hashes can be
used explicitly in searches, either by enclosing them in quotes, or
preceding them by a backslash. So the following are equivalent:
artists --title "mambo #5"
artists --title mambo\ \#5
In either case, quotes or escapes must be used around text strings that
# List all albums whose genre tab is "baroque"
albums --genre "baroque
# Play the album "Bach - Goldberg Variations". Not that the album title is
# case sensitive, and should be quoted if it contains spaces.
play-album "Bach - Goldberg Variations"
# Select and play an album at random that has "Christmas" (case insensitive)
# in its command tag
play-random-album --comment "christmas"
kmediadcmd can import and export the kmediad playlist. For example,
to store the current playlist in a file:
Iterms are written one-to-a-line in a fairly obvious format, suitable for
manipulating with (for example) a text editor. Use
to read the tracks back into kmediad.
titles command will also write data in a way that is suitable
for importing as a playlist (without or without editing). For example, to
make a playlist of every track by Frank Sinatra:
$ kmediadcmd — titles --artist=sinatra > sinatra.txt
$ kmediadcmd import-playlist sinatra.txt
kmediadcmd builds from a simple Makefile. It has dependencies
on the kmediad interface, and on KLib. It may be necessary to adjust the
Makefile to indicate the installation locations of those components.
- Searching is carried out on the kmediad server, and proceeds according to its
rules. Notably, search terms are generally case-insensitive, and must match
whole words. Search terms can be combined, in principle, but the results are
generally not well-defined.
- Long lists of results are passed to a pager, if output is to a terminal. The
pager can be selected, or disabled, on the command line (
volume command sends a set-volume instruction to the
kmediad server. Whether this has any effect depends on how kmediad is set
up, and the specific sound device.
Source code bundle