Tivo, Linux, n800, Go!

  I have been asked a couple times now about how I use my new Tivo with my n800 and Linux. Since there really is no comprehensive document that I could find, I thought maybe I ought to put one online somewhere myself. This is just such an attempt. As in all things, your mileage may vary.

  Firstly, let me start off by providing some version information on what I am working with. I have a Dual tuner Second Gen Tivo. It is running Software Version 9.3-01-2-649 currently. This particular Linux box I am typing on now is running Ubuntu 8.04. And lastly, my n800 is currently running a stock OS2008.

  Now the very first thing you must do here, other than actually plug in your Tivo, is to make sure you have web services set up on it. Of course, this means you have your Tivo plugged into your home network and it's getting an address. If you are using phone lines and not hooking up through your network, this document won't help you. On my Tivo, I simply went to Tivo Central (press the Tivo button on your remote), I selected "Music, Photos, Products and More", and then "Enable Home Network Applications". Now to be fair here, if this is a new Tivo install like mine was, I actually had to wait 2 days for the OS to update and for those options and my Media Access Key (or MAK) to become available before I could get that far.

  Once you have you have your web services enabled on your Tivo, you should be able to browse to your Tivo at https://YourTivoIPAddress. For example, on my network it's at Make note of the (S) in https, that is necessary. On successful connect, you'll be prompted for a username and password. Your username will be "tivo" and your password is your MAK (Media Access Key). Once through the login you'll be presented with an ugly but functional page where you can see and download the shows that are on your Tivo. Hooray!

  Downloading things from this page is a snap, just click on the links, and there you go. A note here: Not all content is downloadable. Tivo follows programming requests for non distributable content and will not let you download it directly.

  Now the programming you download from your Tivo is an encrypted version of an mpeg file. It'll all have a ".tivo" extension on it just to remind you it's a proprietary format. You can still watch this content on a windows machine and possibly a mac (not sure), but there is *no* Linux client. Fortunately, some clever opensource folks have cleared that problem up for us (we always seem to have the clever folks on our side). There is a great little program on sourceforge called TivoDecode. This program is a little easy to use command line utility that will strip the Tivo proprietary stuff from the download and leave you with a plain old mpeg file you can work with. You can download the utility directly Here. Use it like "tivodecode -m YourMAK -o NameOutFle.mpg InputFile.tivo". It takes less than a minute to "fix" a 1.5gb (1 hour?) tivo file on my 2.mumble ghz laptop.

  While most people can just stop here in the document and enjoy watching their programming on their favorite Linux box, some lucky few like me have a Nokia 770, 800, or 810. These fantastic little devices will allow you to watch your captured television programming wherever you happen to be. For instance, I ride the train to work about 55 minutes each way, and I watch my TV while commuting. It's practically the only time I get to do so!.
In order to do that, we have to take that mpeg file and get it into a format that will play on the (in my case) n800. This is easily done with the use of another clever opensource program called tablet-encode, which is the current release of what used to be called 770-encode. Usage of this program is pretty simple and you can get your syntax by "tablet-encode --help". I personally like really good quality video, though, and will sacrifice the filespace for it, so I generally use the --preset=best options. My command line usually looks a lot like "tablet-encode --preset=best InFile.mpg OutFile.avi. Please make note that you are converting the file from an mpeg file to an avi file and shrinking it a bit. This is the end format your n770, n800, n810 can play. Normally my 1.5gb mpeg files shrink down to right around 400 megs, which means you can fit four and sometimes 5 on a single 2gb SD card (that fits nicely in the n800). Doing things this way makes the files a bit larger than they were when I was getting my tv content from bittorrent because the initial files there were smaller (usually already divx encoded), but this method definitely makes the video crisper and I have never yet had a problem with video/audio syncing.

  And that is the end of the tutorial. I hope you have as much fun playing with your Tivo, n800 and Linux machines that I do, and if there is something I missed, please let me know!

Addendum   The following was sent in by Russ Wenner as an addendum on how he got these instructions running under his new Ubuntu Hardy Herron install:
> > 1. I needed to install libc6-dev, g++, mencoder (all were available in
> > Synaptic Package Manager)
> >
> > 2. I had to go to http://maemo.org/downloads/product/PC/tablet-encode/
> > to get tablet-encode
> >
> > 3. I had to move tablet-encode to /usr/local/bin and add the read bit
> > to group and other using sudo chmod g+r tablet-encode and chmod o+r
> > tablet-encode
> >
> > I will be talking about how I got this working in episode 8 of "The
> > Techie Geek" podcast.
> >
> > My favorite TV show on my N800 with no Windows involved! Hurray!