Archive for the ‘TivoGrab’ Category


I mentioned previously that I was thinking of adding some new functionality to my BashPodder pages. I wanted something to help me keep track of information and new user contrib scripts there instead of me manually taking care of it all. The best solution I could think of was a forum. Then, I got thinking that I might just e able to use that forum to help me manage multiple software projects. A good idea was forming when Dann started to demand that I set everything up that way. Enough procrastination, he insisted. He wanted to jump right in and be the first to post HIS BashPodder modifications. I couldn’t go fast enough. If you know Dann like I know Dann, you realize you just don’t tell him no or “bad things may happen”.

I conceded and set everything up for Dann. The results can be found at

Seriously though, I set up a nice forum for a few projects that I work on regularly. You will be able to find information there for BashPodder, OSM, Rackspace and TivoGrab as well as others. Please wander over there and register if you use any of those projects. It will be a lot easier to keep things straight this way, not to mention being able to easily share information with not only me, but eachother as well.

Monday, January 19th, 2009

TivoGrab Howto:

For those of you who are following the whole TivoGrab script, a friend, Russ Wenner, wrote a nice howto for the program:

A Step-by-Step How-To on using the “TivoGrab” PHP script by Linc Fessenden (by Russ Wenner 8/14/08)

1. A few things you will need before you begin:
a. You will need to make sure your TiVo is “Network Enabled”.
b. You will need to know the IP address of your TiVo.
c. You will need to know the MAK (Media Access Key) for your TiVo.
d. You will need PHP v5.2.x or newer on your Linux box. It may work with an older version but this is recommend by the author of TivoGrab.
e. You will need ‘curl’ installed on your Linux box.
f. Depending on how many shows you download from your TiVo to your PC you may need a fair amount of free space on you hard disk or /home partition. Just make sure you have several free GB’s first.

2. Download TivoGrab from

3. Move tivograb.tgz to a location you want to store you converted files. I recommend you make a directory somewhere under /home.

4. Extract tivograb.tgz (Most GUI versions of Linux allow you to right click on the file and choose ‘Extract’)

5. Next, using a text editor open tivograb.php

6. At the top of tivograb.php inside the empty quotes ” ” you will need to insert the IP address and MAK for your Tivo.

// The IP address of your web enabled Tivo
// The MAK of your Tivo

7. Now, save the changes to tivograb.php.

8. Open a terminal window and navigate to the location you have the extracted files and type ‘php tivograb.php’

9. This will automatically create some additional files in the directory

10. Using a text editor open the file ‘’ and remove the shows you DO NOT want convert for use on your Tablet. You do this by high light everything between the #———————————————————— and hit the delete key.

11. Next you will need to make the file executable using the following command. At your terminal prompt type the following chmod +x (In most GUI Linux distros you can right click on the file and choose Properties>Permissions>check “execute file as a program”)

12. Note: This next part can take a long time (i.e. over night) depending on the speed of your network, CPU, and the number of shows you are downloading from your TiVo. You now need execute to download the shows from the Tivo. At the prompt type the following command (don’t miss the beginning dot)

13. You may now copy completed .avi files to you Nokia Internet Tablet

14. Last step…Enjoy!

I can’t tell you how much I appreciate this. Especially since I, like most OSS coders suffer from the condition known as Bad Documentationitis. This was a great idea on his part and I wish more people would take his queue and offer to do some documentation (or even revise/update what is already existing) for their favorite OSS project!

Since we’re on the subject and I have had, I guess, at least a few people who have contacted me saying they are running/using this script (and please let me know if you are), I think I ought to make a legitimate project out of it with a webpage, etc. The problem is, I just don’t dig the name, not to mention I am concerned about using “tivo” in the name due to this litigious society we live in. So, please do me the favor of sending me name suggestions, and if you have any ideas about logos, etc., too, that would be extra fantastic!

Saturday, August 16th, 2008


A while back I mentioned a little work I was doing investigating getting my recorded shows off of my new Tivo onto more portable media (I watch my shows on the train to work).

After talking about that, my friend Allan spoke with me about getting a script together and specifically, about getting a BashPodder type of setup working to download the shows automatically. Well, I did a little poking around with php and after some tweaking I have some up with just such a monster. Now Allan was supposed to beta the script out for me this weekend, and I haven’t heard anything from him yet, however, I have been running the script myself now for most of a week and have decided to release it into the wild after commenting the crap out of the code. So without further ado, I give you TivoGrab.

Now just for a little review: This php script is designed, similarly to BashPodder, to be run from command line, probably via crontab entry. I have designed and tested the script on php 5.x cli with simplexml, which I believe to be included standard with php 5. In a nutshell, this script downloads the shows.xml file from a web enabled tivo2 (and maybe others?), parses it out for downloadable shows, checks those shows against a log file it keeps of downloaded shows, and creates a bash script from the results. The bash script, called, will download the shows off the tivo, decode them, and convert them for further use.

Now this leaves a variety of ways open for this to be run, but probably the most popular would be by hand and through a crontab entry. By hand, you can run the php file “php tivograb.php”, generate the and then have the opportunity to look through it and delete any shows you really don’t want before running the shell script (it’s not hard to follow). As a crontab entry I would recommend running it out of a wraper shell script so you can launch the tivograb.php and then the afterwards. One small warning about that, though, would be to keep good track of that process as it can take a very long time to run – maybe once a day during the night would be a good time.

As always, I am interested in seeing what else people can do with this, so drop me a note and let me know!

Sunday, July 27th, 2008