f you aren't already a DVR addict, someday you likely will be! Being able to turn on your TV, push a button, and get a menu of shows that you want to watchwithout surfing through hundreds of channels of junkis a very pleasant experience. It really is TV on demand. TiVO, pioneers and ongoing innovators of this technology have recently released an open source SDK that lets you take the next step in innovating on their platformthe Home Media Engine (HME).
The HME is an extensibility platform for the TiVO unit that allows you to build applications to enhance it. However, at present it doesn't support the full DVR platform; unfortunately, the main missing part is the DVR functionalitymeaning your applications can't interact with live videoso no program guide or TV show access for your applications yet. However, even with that lacking, there's still a lot left to explore.
This article is a guide to get you started in building HTM applications to run on a TiVO. This is the perfect excuse to go out and buy the hardware! Alternatively, if you don't want to buy the hardware, or already own a competing platform, get the SDK anyway, because it comes with a complete emulator so you can try your inventions out without investing any of your hard earned cash!
You can download the HME from tivohme.sourceforge.net. When you do that, you get a ZIP file that you simply extract to a folder on your hard drive and unzip it. Figure 1 shows the HME directory structure created when you unzip the file.
The doc directory contains (surprise, surprise) the documentation for the SDK, which consists of a couple of PDFs containing a developers guide and a protocol guide for streaming information to and from your PC (more on this later) as well as a zip file of the javadocs for HME applications.
For this article, start in the samples directory, which contains several cool samples that will give you an idea for the kind of things that you can do with the SDK.
One caveat is that the simulator only appears to work if you are connected to a network. It doesn't bind happily to 127.0.0.1 if you are disconnected. To try out the sample applications, first make sure that you have a Java SDK installed (I used 1.4.2_07), and double click the simulator.jar file to execute the emulator. After you have done this, and the emulator is running, it will appear as shown in Figure 2.
In the 'Samples' directory, you'll see a runsamples.bat (or runsamples.sh for Linux/Unix users), which launch the sample applications. These applications will give you a good feel for the kind of things you can do with the SDK, including slide shows, music and even an excellent Connect-4 style game (seen in Figure 2).
Figure 1. The Directory Structure of the HME SDK: When you download and unzip the HME SDK, it creates this directory structure on your hard drive.
Figure 2. Running the Emulator: The figure shows the TiVO emulator running one of the sample applications, a Connect-4 game.