DRadio - DR netradio

DRadio is a Danmarks Radio netradio, podcast, and TV player. It is a terminal based frontend to MPlayer that collects the available channels/podcasts for convenient browsing.

curses dradio interface

Download

Install by issuing 'configure && make install'.

Packages are known to be available for Debian, Ubuntu and Arch Linux via their respective Package Management Systems. Thanks to the maintainers of these packages!

System Requirements

DRadio requires mplayer, libncursesw, libexpat and libcurl. On Linux (Debian) the requirements can be met by running:

$ apt-get install mplayer libncursesw5-dev libexpat1-dev libcurl4-openssl-dev

Usage

For usage see manual page dradio(1) or run

$ dradio --help

Configuration

The channel menu list is populated from the ~/.config/dradio/menu.xml configuration file. This file should be edited, to reorder, to remove, or to add playlist URL's to fit your preferences.

$ cat ~/.config/dradio/menu.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<menu>
  ...
  <!-- Example of audio stream -->
  <item label='P1' src='http://www.dr.dk/netradio/Metafiler/asx/dr_p1_128.asx' type='playlist'/>
  ...
  <!-- Example of video stream -->
  <item label='DR1 TV' src='mms://video.dr.dk/dr1' type='direct' />
  ...
  <!-- Example of audio podcast -->
  <item label='Harddisken' src='http://podcast.dr.dk/p1/rssfeed/harddisken.xml' type='rss'/>
  ...
  <!-- Example of video podcast -->
  <item label='So ein Ding' src='http://vpodcast.dr.dk/feeds/soeindingrss.xml' type='rss'/>
  ...
</menu>

See also, manual page dradio(5).

A script, dradio-config, is provided to help keep the DRadio menu list up-to-date. It screen scrapes the DR streams or podcasts pages, and outputs the resulting XML on stdout.

Invoke it as, e.g.

$ dradio-config > radio.xml

$ dradio-config --rss > podcast.xml

See also, manual page dradio-config(1).

Troubleshooting

To play TV and video podcasts smoothly, it may be necessary to experiment with caching, e.g.
$ dradio -cache 8192 -cache-min 99

ChangeLog

2009-10-31  Jess Thrysoee

	* version-info: 3.8

	* src/dradio.c: Remove screen artifact and improve feedback when
	downloading RSS.

2009-10-18  Jess Thrysoee

	* version-info: 3.7

	* src/configuration.c: Improve charset error message,
	from:
	   "ANSI_X3.4-1968: CODESET is not supported"
	to:
	   "US-ASCII (ANSI_X3.4-1968): locale character encoding not supported.
	   Supported character encodings are: UTF-8, ISO-8859-1 and ISO-8859-15."

	* src/configuration.c, src/dradio.c, src/dradio.h, src/gui.c: Make sure
	no zombie mplayer process is left behind, if errors occur while parsing
	configuration files. Reported by Cristian Ionescu-Idbohrn (Debian
	bugreport 551178).

2009-10-11  Jess Thrysoee

	* version-info: 3.6

	* src/dradio.c, src/dradio.h, src/mplayer.c: fix problem with pause in
	the mplayer popup window when streaming TV or playing video podcasts.

	* doc/dradio.1: clarify that it is the menu item name dradio tries to
	update in the title/icon of the terminal. It would be more useful if it was
	the currently playing track, but DR does not post metadata in their streams.

2009-10-03  Jess Thrysoee

	* version-info: 3.5

	* doc/dradio.1, src/dradio.c, src/dradio.h, src/gui.c, src/mplayer.c:
	try to update the title/icon text of the terminal with the currently
	playing item. Added '--notitle' option to disable this feature.

2009-09-23  Jess Thrysoee

	* version-info: 3.4

	* doc/dradio-config.1, doc/dradio.1, doc/dradio.5: escape hyphens in
	manpages. Patch by Alejandro Garrido Mota.

	* src/configuration.c, src/gui.c: make sure to null terminate strings
	copied with strncpy.

2009-09-07  Jess Thrysoee

	* version-info: 3.3

	* all: Added INSTALL and COPYING files. Upgraded license to GPLv3.

2009-08-30  Jess Thrysoee

	* version-info: 3.2

	* src/dradio.c: for podcasts, resume position/length counter after pause.

	* src/gui.c: adjusted centering of status text.

	* src/dradio.c, src/signals.c: silence -Wextra compiler warning.

2009-08-29  Jess Thrysoee

	* version-info: 3.1

	* src/dradio.c: handle signals earlier, so SIGCHLD is caught if mplayer
	is not found. Reported by Walter Harms.

	* src/mplayer.c: _exit() instead of exit() in child process.

2009-08-28  Jess Thrysoee

	* version-info: 3.0

	* all: Added support for RSS 2.0 podcast URLs.

	* all: added --nologo option.

	* all: added help window.

	* all: use same keys as mplayer for volume control, '/' and '*', instead
	of '+' and '-'.
	
	* ~/.config/dradio/menu.xml: deprecated the 'playlist' attribute and
	replaced it with the 'type' attribute.

	* configure.ac, configuration.c, mplayer.c: Removed all the
	rtsp-stream-over-tcp/libliveMedia stuff and replaced the rtsp://
	streaming TV links with mms:// links. It is still possible to play
	the H264 streams, just start DRadio with -rtsp-stream-over-tcp as
	an mplayer pass-thru option, e.g. 'dradio -rtsp-stream-over-tcp'. Thanks
	to Tomas Groth for the suggestion.

2009-05-29  Jess Thrysoee

	* version-info: 2.5

	* configure.ac, configuration.c, mplayer.c: Added configure option
	--disable-rtsp-stream-over-tcp, to make it possible to stream radio, but
	not TV, if mplayer was not compiled with RTSP streaming media over TCP
	support. See also http://thrysoee.dk/dradio/#troubleshooting .

2009-03-28  Jess Thrysoee

	* version-info: 2.4

	* all: Added experimental support for DR1 and DR2 TV.
	
	* ~/.config/dradio/out.log, ~/.config/dradio/err.log: redirect 
	mplayer child process stdout and stderr to these files.

	* ~/.config/dradio/input.conf: use mplayer input.conf file to change
	'q', ESC and CLOSE_WIN keys/button from quit to stop, so the TV popup
	window does not exit dradio.

2009-01-10  Jess Thrysoee

	* version-info: 2.3

	* src/mplayer.c: Fix segfault in commandline option handling.

2009-01-10  Jess Thrysoee

	* version-info: 2.2

	* src/dradio.c,src/mplayer.c: Pass dradio commandline arguments to the
	mplayer child process. Allows user control of e.g. stream options like
	-nocache. Requested by Mads Michelsen.

	* src/dradio.c, doc/dradio.1: Add help and version commandline options.

	* src/dradio-config: Ignore resolve entity warnings from xsltproc. Suggested
	by Mads Michelsen.

2009-01-06  Jess Thrysoee

	* version-info: 2.1

	* src/mplayer.c: For portability, do not use C99 booleans.

	* src/mplayer.c: Add '-nolirc' option to mplayer, this prevents screen
	garbage on startup. Reported by Klaus Alexander Seistrup.

	* src/configuration.c: create ~/.config dir if missing.

2009-01-05  Jess Thrysoee

	* version-info: 2.0

	* all: Link with libncursesw/libmenuw to support the UTF-8 charset
	(as well as ISO-8859-1, ISO-8859-15).

	* doc: Added manpages dradio.1, dradio.5, dradio-config.1

	* all: Configure and build with GNU Autotools.

	* src/configuration.c: Added ~/.config/dradio/menu.xml conf file. 

	* src/dradio-config: Added the dradio-config screen scaping script
	to help regenerating/updating the menu.xml configuration file.

2006-10-29  Jess Thrysoee

	* version-info: 1.4

	* dradio.c: Use posix shell redirection, so popen does not fail if
	/bin/sh is link to a dash shell. Reported by Thomas R. N. Jansson.

2006-04-26  Jess Thrysoee

	* version-info: 1.3

	* dradio.c: update stream links, pathes by Kåre H. Jensen and
	Thomas R. N. Jansson.