RSSTV: Syndication for your PVR

Andrew Grumet
$Id: index.html,v 1.6 2008/01/08 05:53:58 aegrumet Exp $

Motivation

When I first bought my TiVo, I thought the Suggestions feature was awfully clever. You tell TiVo what programs you like by clicking Thumbs Up or Thumbs Down, and based on your preferences TiVo tries to predict what new programs you might like. Disk space allowing, TiVo will record these Suggestions.

As much as I love my TiVo, the Suggestions feature never worked out. TiVo records lots of suggestions which don't look interesting and which I never watch.

And no, I'm not still watching re-runs of Gilligan's Island. We've been addicted to 24 since season 2, discovered the office before they picked up all those Golden Globes, and think that, yeah, maybe Curb Your Enthusiasm has indeed jumped the shark.

For the most part I learn about new TV programs (and decide to give up on old ones) by talking to friends. About three years ago I sent an email to the folks at TiVo, pitching a bunch of ideas including this one: Give customers the ability to push Suggestions into their friends' TiVos. Friends tend to be smarter than AI software, and you get viral marketing to boot. That was three years ago.

Today my TiVo is networked and programmable. Do-it-yourself PVRs are on the rise, and we know that the open source ones like MythTV are programmable. Perhaps some of the commercial ones are too. So maybe it's time for us to flex some programmer muscle and code up our PVRs to leverage the power of the Net. We ought to at least be able to add the ability to share our great taste with friends. But probably a lot more.

Proposed Format

This is not a spec, it is a proposal. For now it should be considered experimental and subject to change.

We propose to share program information by building on existing syndication infrastructure. Specifically, we'll add a number of namespaced elements as an extension to RSS 2.0. The value formats for these elements will be taken directly from XMLTV, a source of publically available program information.

<tvchannel> tells the PVR what channel to record. An example value is C61FOOD. An unresolved problem here is how to handle channel number differences on various cable systems. The Food Network may be Channel 61 on my system but Channel 33 on yours. We may be able to standardize on the 3-4 letter designators, e.g. "food".

<start> tells the PVR what time to start recording. An example value is 20040210010000 EST. This is an unusual date format. Can we live with it? The advantage is that RSSTV feeds are easier to conjure up from XMLTV data. The downside is that authors of RSSTV clients have to deal with yet another date format. We also have the more general problem of matching individual programs across timezones, particularly programs that do not air simulataneously in different parts of the country.

<stop> tells the PVR what time to stop recording. An example value is 20040210013000 EST.

<sub-title> tells the PVR the name of the episode being recorded, to e.g. distinguish between the "Old School Chopper 2/Comanche" episode from the "Tool Bike 1" episode of American Chopper.

The RSSTV file should place these tags in a namespace by adding the following declaration to the root RSS element

xmlns:tv="http://www.grumet.net/rsstv"

The standard RSS <title> tag is used for the title of the recording, and the <description> tag for the episode description. Here is what an RSSTV file looks like.

TiVo Client

Here is the source code. You must have a networked TiVo running Tivoweb and Tivo Control Station in order to make full use of the client.

The client can be pointed at a single RSS feed, and it will record programs listed in the feed provided that

Q and A

Q Why express program lists as RSS? Why not XMLTV?
A Mostly because there are already lots of RSS readers out there. This has two consequences. First, you can track what's coming in to your PVR by subscribing to the same feed with your regular newsreader. Second, programmers will be able to draw on existing code libraries when developing feeds and clients. That said, my vote is to stay as close as possible to sources of publically available program information, to try and avoid extra processing steps when converting that data to RSSTV.

Q Who benefits from RSSTV?
A In the short term, probably hacker types only. My hope is to change thinking about what we can do with PVRs (and RSS, for that matter). If we do a good job we may be able to generate adoption by the major consumer PVRs, and at that point the benefits can spread to a wider audience. Or, if they're just not listening, we form a startup ;-).

Q Can I use RSSTV to avoid buying the TiVo service?
A Not out of the box, no. But if you're motivated to put all the pieces together, I suppose you could. I don't recommend or endorse this. And if you're really that motivated, RSSTV isn't going to provide much over what's already out there. I coded up the TiVo client to expand its capabilities and change thinking about what we can do with PVRs, not to save a few bucks. RSSTV and the TiVo client should be thought of as enhancements, not an alternative, to the TiVo service. If you live in a country where the service is offered but are really hurting over that $10/month, you should probably be spending your time on cash-generating activities instead of watching TV.

Q Are copyrighted TV programs exchanged over the Net?
A No. Only schedule information is exchanged. That information may be derived from any number of sources, including XMLTV or even hand-typing the information into an HTML form while glancing at a TV Guide. RSSTV feeds will typically contain selective information, e.g. "here are the three programs worth watching on February 3rd", so manual-entry is a plausible option.

To Do

I'm looking for programmers with TiVos or DIY PVRs, and spec-writer types who want to evolve RSSTV into something real. The major tasks are to write the spec, clients and feed builders. The initial milestone is straightforward: person A builds and maintains a feed that person B's PVR consumes. From there we can add variables, e.g. MythTV instead of TiVo, working across cable providers and timezones, and so on and so on.

I may build a "Program my PVR" demonstration app that lets the public pick a limited number of shows to push into my TiVo. I've got 100GB of add-on storage to play with. Let's have fun! Update 2004-03-04 Check out Program My Tivo!.

Comments