The PC-Based Tivo Emulator

There's Linux code to turn an old PC into a personal video recorder. Some people don't like that idea at all.
Illustration by Tavis Coburn

We may earn revenue from the products available on this page and participate in affiliate programs. Learn more ›

Take one digital video capture card, a big cheap hard disk, a home-brew infrared receiver, and a seven-year-old PC out of your nearest closet or dumpster. Add some free software and-voila!-you have a personal video recorder, your own homemade Tivo. As with Tivo, watch what you want, when you want. Thumb your nose at the head of Turner Broadcasting or whoever else is angry that you have broken your “contract” to sit through commercials and are “stealing” programming if you don’t. Know that you have built this insidious entertainment appliance yourself.

Which you can do if you’re literate enough to run a few basic Web searches, do not run for cover at the mention of Linux, and know which is the business end of a Phillips-head screwdriver. Of course, you could buy a similar personal video recorder (PVR) unit from Sony or Philips or Sonic Blue. Or wait for your cable company to install one. Or buy software from Snapstream or Showshifter or one of the other companies that’s sprung up to let you convert your new $1,000 PC into a good imitation of a $200 VCR. But where would be the fun in that?

Klaus Schmidinger runs a small software company about an hour from Munich. He and 90-odd of his closest friends on the Net have spent thousands of hours-“Do you ever sleep?” asks one e-mail correspondent-developing open-source software, and a little bit of hardware, to let any Linux box record and play back digital TV signals (for an overview and the download, go to

You can do all the things you can do with the commercial versions, such as scrolling through lists of programs and selecting the ones you want. Plus, you can make new copies of recorded programs with the commercials edited out (or, for that matter, create video files with nothing but commercials). And if there’s a feature you want that’s not there, you can fire up a text editor, rewrite the code, and fix it.

For now, whatever you do with your Linux recorder, with the exception of rebroadcasting or selling digitized shows, is still mostly legal. That may change (in the United States at least) if entertainment industry lobbyists get their way: On tap in the current Congress, for example, is one bill that would require any digital device capable of storing copyrighted material to abide by whatever restrictions publishers decide to impose on how the material can be viewed, played, or copied. Another would permit registered copyright owners to hack into any computer they believe might be involved in illicit reproduction of their property, to prevent that computer from sharing the owners’ copyrighted material. The move to increase the power of content publishers has raised the ire of the Electronic Frontier Foundation (, a nonprofit organization that battles restrictions to Internet information flow.

When he started the project back in late 1999, none of these issues really occupied Schmidinger’s attention. The idea of competing with the newly introduced Tivo or ReplayTV machines wasn’t important back then either, he says, although now he’s glad to have built a PVR that can’t be silently “up-graded” by the manufacturer to record shows you would never ask for or to record every button you press, for evidence in a lawsuit.

Schmidinger was working on a completely different hobby project-building a personal full-motion flight simulator-when he read in a German computer magazine that a couple of enterprising brothers, Marcus and Ralph Metzler, had written a Linux driver for a digital video card.

Five months later he had a prototype that could record video and play it back. Forty versions and two years after that, the first “official” version was done. Download it, compile it, install it on your Linux box, and the catchily named “vdr” program will help you build a list of programs to record-with priority rankings in case more than one show you want is scheduled at one time and you don’t have multiple video cards. Then whatever you can fit on your hard drive at the rate of 2GB per hour of video is yours to do with as you please. (VDR is the acronym for video disk recorder, which is what Europeans call our personal video recorders. Transatlantic incompatibility lives on.)

The VDR takes input from a regular PC keyboard. You can even control it from anywhere on the Internet, although Schmidinger’s manual advises caution and a short list of authorized hosts to log in from, else your hacking buddies can order you up a full day’s supply of Fishin’ with Bob Dillow while you’re on the road. You can also install $20 or so worth of infrared receiving gear and then use a remote like any normal television viewer.

Don’t worry about losing geek cred here: In addition to its usual functions, the remote will be able to call up a customizable Command menu that executes any program or script you have the temerity to put in its configuration file. Indeed, Schmidinger built his own remote-control receiver, complete with LED readout to display the current channel, before learning that other hackers (Linux Infrared Remote Control, at had come up with a better solution. “But then again I learned a few things by doing this myself,” he says with a rueful grin.

There are still some rough spots in the vdr software to be worked out. For example, the apostrophe in Dawson’s Creek stuns the Unix parsing algorithm that sets up files for programs to be recorded, and you can’t easily record multiple shows at the same time during bad weather because a signal dropout on one channel can cause the software to reset all of its feeds. (Reading e-mail discussions at gives you new respect for the programmers of commercial PVRs.)

Other glitches aren’t the fault of Schmidinger’s team. Most broadcasters, he says, have yet to master the arcane task of starting and ending shows at their scheduled times, so the software has to build in a few minutes’ margin of error on either side. And although there’s an international standard for transmitting the electronic program guide (EPG) data that tells your computer which programs will air when (plus what they’re about and who stars in them), getting that right eludes broadcasters too. Worse yet, it’s almost impossible to buy a computer case that looks even remotely attractive in your living room.

For those who have found that grail, or have resigned themselves to kicking back in a living room that looks like the back office of a defunct dotcom, a machine that is running vdr can become a complete multimedia hub-much like the ones you’ll be able to get soon from about half a dozen competing manufacturers.

Schmidinger is revamping the structure of his code to accept plug-in modules that will graft on whatever functions hackers want to write without bloating the basic system. Already you can find open-source patches to modify vdr for playing DVDs and MP3 files.

As all this code continues to evolve, you’ll be able to feel the warm glow of firing up hardware components made by high-tech giants to play video and music produced and distributed by megaconglomerates-but with the software, at least, firmly under your design and control.


Klaus Schmidinger’s recipe for getting going


1 PC with a large hard drive (at least 10GB) running Linux (kernel 2.4.10 or higher)

1 VDR program from

1 Digital Video Broadcasting driver (from either or

1 (At least) “full featured” DVB card (either DVB-S, DVB-C, Or DVB-T for satellite, cable, or terrestrial reception, respectively)

1. Install the DVB card in your PC.

2. Download the driver and VDR software and compile the vdr source code.

3. Load the driver and run vdr (as explained in the Install files that come with the software).

4. Connect a TV set to the A/V output of the DVB card. You may have to adjust the channel settings (in VDR/channels.conf) to your local broadcasters.

With this basic setup, you control the VDR via the PC’s keyboard. For a more practical setup, you’ll need to get yourself a remote control and install the LIRC hardware and software (see