The DvbCronRecording is a plugin for Trac.
This plugin is based on the LinuxTV dvb-apps command line utilities, especially "szap" and "gnutv". The actual recordings are performed from the cron-daemon.
Trac is primarily used as a web frontend - it does maintain a database of recordings that can be edited online with web browser. Upon "Activate!" it creates a recording script that is pushed to /etc/cron.d/*. The actual recording is performed by a tuning the LinuxDVB device started by cron.
With the help of Trac you can administrator priviledges like adding tuning channels, removing old videos and starting a new entry for a recording that shall be started later on.
There are a few extensions like detection of overlap, the definition of secondary recording times to use, and a few other tricks. Having a web UI eases the handling considerably.
The system grew out of some local command-line scripts that would convert a list of recording times, channel info and program title into a matching recording script along with a CronTab entry. Transforming it into a TracPlugin allows for easier installation on a remote recorder box as well as sharing the recorder by multiple persons with just a web access to the recorder box.
Code drops are available at the Opensuse Build service at:
You can download a complete set of Trac RPMs that will allow to install the plugin for immediate usage. There is also an announcement page at trac-hacks, see
- https://sourceforge.net/apps/trac/dvbcronrec/wiki - for further documentation
- only tested with DVB-S (satellite), it is probably not easy to be used for other digital broadcasting types - but you could try (as I don't have a chance for that).
- the code is prepared to tune multiple cards but that feature is broken upon first release. Actually you can select different adapters explicitly but I had wanted that the adapter is used automatically.
- the code is prepared for localization but while it speaks English in the code the user interface is only run in German on my own site, so may be there are couple of rough edges. Sorry.
So, I could really need some help with this - it is feature complete for my own usage but if you need another feature done then please don't ask - just send patches (or "pull requests" pointing to your public code). I publish this code so that you have a good start for your own ideas.