Extracting video from a TiVo Series 1 with Mac OS X

I'm writing this article to help other TiVo owners set up a Mac OS X solution for extracting video. I was frustrated with the lack of information available on TiVo Community and Deal Database forums for Mac owners. The only solutions I found on these boards were overly elaborate and involved either Virtual PC or an additional wintel box.

Here is a quick guide to Mac OS X video extraction.

Required:
TiVo Series 1 with Telnet, FTP access and an ethernet card (if you haven't gotten this far, it's very easy to do...check out the forums on TiVo Community).
Apple computer with Mac OS X
Quicktime Pro 6 - available from apple. (or VideoLanClient for viewing these files)
Video Extraction Software

FTP this.
You will need two pieces of software on your TiVo to (1) pull the program data off your TiVo and (2) send it to your Mac. Install Sendstream and NetCat (nc) that are included in the TiVo Files folder. Place them in a directory such as: /var/hack/bin

TiVo Web - Get your FSIDs here.
Your TiVo uses unique identifiers called FSIDs to reference shows in its file system. One of the easiest ways to get this information is through TiVo Web. Get it here: http://tivo.lightn.org/
I have 1.9.4 beta 5 running on my TiVo.

You'll need to modify the standard installation of TiVo Web by replacing this file on your TiVo

/var/hack/tivoweb-tcl/modules/ui.itcl

with this file included in the TiVo Files directory you downloaded earlier: ui.itcl

Log onto your TiVo through a web browser (type in the IP address of the TiVo) and restart the web service. Next time you view the details of a TV program through TiVo Web, you will also see one or more FSIDs. You'll need this info later.


Don't forget about your Mac.
You will need two new programs for your Mac as well. Place NetCat (nc) and tyconvert in a directory such as:
/Users/yourname/bin

Both of these programs have been compiled for Mac OS X and are included in the stuffed archive of files in the Mac Files directory.

Telnet to TiVo, Telnet to Mac.
Now, open up two terminal windows on your Mac. In the first one, navigate to the /User/yourname/bin directory on where NetCat and tyc live, and type the following without hitting enter:

mac#: ./nc -l -p 1200 > /Users/yourname/Documents/programStream.ty

On the second terminal window, telnet to your TiVo
(the -K will get rid of double characters that sometimes occurs with telnet clients that automatically login to servers)

mac# telnet -K 192.168.1.101
bash-2.02#

and navigate to the /var/hack/bin directory where nc and sendstream are located. Type the following without hitting enter:

bash-2.02# ./sendstream -s FSID1 FSID2 ... | ./nc -n -w 5 XXX.XXX.XXX.XXX 1200

Replace the FSID1, FSID2, etc with the FSIDs you found earlier through TiVo Web.
Replace the XXX.XXX.XXX.XXX with the IP Address of your Mac.


Hit enter on the first terminal window to start the Mac listening for data. Hit enter on the second terminal window to begin sending the stream.

Streaming the data across your network should take some time. A status will show up in percentages while the data is sent to your mac. Make sure you have enough space on the volume you are extracting to.

Once the send stream program has completed, on the second terminal window, type the following:

mac#: ./tyc -s < programStream.ty > programMpeg.mpg

This will convert the TiVo stream to an Mpeg 2 format. This process should go by quickly since the TiVo stream is pretty much just an Mpeg 2 format wrapped with some extra data.

Happy extracting!





tivo@fajkowski.com