• The kmediad project
kmediad — a cross-platform, browser-based audio player
kmediad is an open-source project to develop a browser-based audio player
which will run on Linux and Windows servers. The main application is in
multi-room audio, but kmediad can be used as a conventional desktop media
player. It supports collection indexing and searching, album art,
multi-lingual tags, and many features expected of a modern media player.
But having no user interface of its own (or only a very trivial user
interface on the Windows platform) it has minimal system requirements, and
can be left to run unobtrusively in the backround.
Because kmediad is HTTP-based, it can easily be controlled by clients
other than web browsers. Many operations can be controlled simply by sending
an HTTP request using wget or curl, for example. A specific command language
is provided in addition to the human-readable HTML interface, based on
JSON objects. The user of JSON makes it relatively to interface the server
kmediad embeds the Xine media player engine, and can therefore play
a large range of audio formats. It should build on most modern Linux
implementations, and on Windows under MinGW.
Using kmediad with a Web browser
kmediad works with most modern Web browsers, including up-to-date
mobile browsers (e.g., the built-in browser provided with Android).
To use the browser interface, simply enter the URL in the form
http://host:port. The default port number is 30000, but this
can be changed in the server configuration. The home page will ask
the user to select between the desktop interface and the mobile interface;
the difference is that the mobile interface is optimized for
portrait-orientation displays, so generally only a single column of
data is shown.
The kmediad server
The heart of the kmediad system is the server process. For
more details, including how to build and install the server,
The kmediad C API and interface
kmediad can be controlled by any C/C++ program, using the API and
interface. The API provides functions for, for example, querying the
track database, adding tracks to the playlist, and getting playback
status. The interface takes care of the low-level protocol operations
needed to communicate with the server.
For more details, see here.
The kmediad ncurses interface
This is a very simple console-mode program for controlling the kmediad
server. It is based on the C API and interface described above.
For more informace, see here.
The kmediad command line interface
There is a fairly flexible command-line interface to kmediad, which can be
used remotely. This is particularly helpful for scripting, and for embedded
systems that can't run a web browser. For more information see
kmediad runs on Raspberry Pi
kmediad builds cleanly and runs well on the Raspberry Pi, provided you
install Xine, the relevant Xine plugins, and the Xine development
libraries. Of course, to build on the Pi you'll also need to install
the C compiler and associated utilities.
Because the Pi is so cheap, it really is feasible to have one in every room.
kmediad can play music from a local memory stick (connected to the USB
port, for example, or from some central server).
In due course, I'm hoping to document in detail how to set up a Rasberry
Pi from scratch to host kmediad.
kmediad streaming radio support
kmediad 0.5.0 has preliminary, and very rudimentary, support for streaming
radio stations. See here for more details.