how to hack your tivo using mac os x

December 4th, 2006


(This guide assumes you a) have your TiVo networked via ethernet or wifi and you’ve assigned the TiVo a fixed IP number, b) are running at least Mac OS X 10.4, and c) have Apple’s XCode development tools installed on your machine; if you do not have XCode installed, download it from here.)

  1. Find out your TiVo’s Media Access Key. This is found by going to “TiVo Central”, then “Messages & Settings”, then “Account & System Information”, then “Media Access Key”. It’ll be the ten-digit number at the bottom of the screen. It’s unique to your TiVo — write it down, you’ll need it in steps 2 and 5.
  2. Download and configure the Dashboard Widget “Now Playing“. This will be what you use to get the .TiVo files off your TiVo. You’ll have to put the fixed IP address of the TiVo and the Media Access Key of the TiVo into the widget. After that, you can use the widget to browse the contents of your TiVo, and by clicking on the name of a TV show, you’ll be able to download the TiVo file to your computer. Pick a file to download and download it. It’ll take a while, .TiVo files are encrypted MPEG-2 files and thus honkingly huge.
  3. Download the “tivodecode” program from SourceForge; specifically, download the .tar archive for UNIX. Double-click the .tar file to open it and expand a “tivodecode” folder to your desktop. (It’ll likely have some version numbers after it, too; at time of writing this how-to, the folder is specifically named “tivodecode-0.1.2”.)
  4. Use the terminal to navigate to inside the new “tivodecode” folder created on your desktop:

    cd Desktop/tivodecode-0.1.2

    Then type:

    make

    …and the Mac OS X compiler called gcc (added to your system via the XCode install!) will compile the new “tivodecode” binary and put it inside a newly created “objects.dir” folder*. So then type:

    cd objects.dir

    …and while you’re there, type:

    sudo cp tivodecode /usr/bin

    …to copy the tivodecode binary to your /usr/bin directory.

  5. And now here’s where the magic happens: let’s say my TiVo’s Media Access Key was “1234567890” and I wanted to decrypt the file “Metalocalypse.TiVo” on my desktop. The command to do that would now be (all in one line):

    tivodecode -v -m 1234567890 -o ~/Desktop/output.mpeg ~/Desktop/Metalocalypse.TiVo

    …and after the tivodecode program runs through your .TiVo file, you should have an unencrypted MPEG-2 file sitting on your desktop called “output.mpeg”.

  6. Use VLC to view the MPEG-2 file; use iSquint to convert it to MPEG-4 for your iPod.

…hopefully some enterprising soul will devise a clever Mac OS X app that combines all these odd and disparate steps into an E-Z, one-click process; but until then, this is a fairly decent way to do it.

ALSO: let me point out that with a slight hack to the plist of your Mac TiVo Desktop file, you can play those mpeg files back via your network onto your TiVo, thus enabling you to create a vast archive of television that takes up all the space on your Mac and not your TiVo.

~jeff

UPDATE: Nik Friedman TeBockhorst has come up with a great little dropscript that takes care of steps 3, 4, and 5. Many people point out that you can use Safari’s Bonjour function to download the .tivo files; I still think “Now Playing” (and a TiVo set to IP 10.0.1.202) is easier, but it’s your call, brother.

29 Responses to “how to hack your tivo using mac os x”

  1. Josh Rosen says:

    You actually dont need a fixed IP of the Tivo to get the files off the Tivo, since Tivo actually supports Rendevoux/Bonjour networking. You can obtain the .local name of the tivo by opening Safari and looking under the Bonjour Bookmarks area in the bookmarks pane or bar. Once you have that name, just type https://tivo:MediaAccessKey@your_tivo/ where your_tivo is replaced by whatever MyTivo_SomeNumber.local that you obtained from Safari. I belive the IP can also be obtained fairly easily with Bonjour Browser or other utilities.

  2. DaMacGuy says:

    Hmmm. It won’t build for me.

    mkdir -p objects.dir
    gcc -Wall -O3 -D_FILE_OFFSET_BITS=64 -c -o objects.dir/hexlib.o hexlib.c
    make: gcc: Command not found
    make: *** [objects.dir/hexlib.o] Error 127

    I’ve got the latest Xcode, and gcc is in /usr/bin/

    :-(

  3. Rob says:

    Then /usr/bin isn’t in your path or gcc is a broken symlink.

  4. Jody says:

    I’ve followed the instructions and everything works except for when I type tivodecode -v -m 1234567890 -o ~/Desktop/output.mpeg ~/Desktop/Metalocalypse.TiVo I get

    tivodecode: command not found

  5. Jody says:

    I got it fixed.

    1) it should be ./tivodecode …

    2) I needed to fix some spaces in the name of my .TiVo file

  6. Ben says:

    I’m not sure /usr/local/bin is in the standard $PATH. Perhaps the last command in step 4 should be “sudo cp tivodecode /usr/bin” and the command in step 5 should be “tivodecode” not “./tivodecode” (since /usr/bin is in the path).

    DaMacGuy: try ls -l /usr/bin/gcc… it’s probably a symbolic link as Rob said to gcc-3.3 or gcc-4.0, which doesn’t exist. This happens when you upgrade Xcode versions and choose not to install gcc 3.3 or 4.0 (whatever the discrepancy is) and the symlink doesn’t get updated. Try “ln -s /usr/bin/gcc-3.3 /usr/bin/gcc” or “ln -s /usr/bin/gcc-4.0 /usr/bin/gcc”

  7. warrenpeace™ says:

    This is all amazing. Glad someone figured it all out. I just hope that someone creates an application to drop the ‘.tivo’ file on ’cause my Unix skills suck. ;)

    I have a Humax DVD Burning model TiVo, but would love to be able to save the occasional show as a Divx file to play at a later time on my Divx dvd player or on my iMac.

    I love how the tivodecode download has already been updated since this post was written.

  8. Jeff says:

    Thanks Ben, I added your suggestions to the how-to.

    Rob, I enjoyed that article, but I’ve had trouble with Galleon in the past, so I avoid it.

  9. DaMacGuy says:

    Yep. Looks like it’s a symlink to gcc 4.0, and it ain’t there. I’ll reinstall Xcode at the office. Thanks!

  10. Carrie says:

    Isquint? Hillarious name.

  11. Nick says:

    This also assumes you have a television, which I do not. Thank me for sharing.

  12. Aaron Lewis says:

    So I covet, but do not have a TiVo.

    Does TiVo work with digital cable signals (Say, Comcast in the East Bay), or only analog cable?

    What’s the status of HD TiVo, and which models of TiVo do these directions apply to?

    -Aaron

  13. Jon Land says:

    Besides using the “Now Playing” widget, you should be able to use something to the effect of

    https://dvr-0ffb.local./nowplaying/index.html

    in any old browser to cut out the middle man. When it prompts you for your login use u:tivo / p:YOUR MAK

    That might make life easier for writing a one-step script. Or not.

  14. Jerry Z says:

    Has anybody had any audio/video sync issues once the muxed mpeg2 file is converted?

    My TiVo files also playback as mono although I believe the other track is actually there.

    any help appreciated

  15. PhillyMac says:

    Has anyone encountered the issue of white “staticy” lines that display across the top of the video (not on the picture itself, but above in the black space right against the top edge) after converting from .tivo to mpg using the droplet? Any fixes?

  16. Jerry Z says:

    Seemed that the sync issue was only for 1 file. Could be that file was downloaded to the Mac while TiVo was recording a show?.?.

    Still have the mono track issue. Converted using VisualHub and selected mono as an option. Not great, but was a quick fix.

  17. amaxware says:

    The Staticy lines have been referenced in a few posts (one is mine) the current “theory” is that it has something to do with Closed Captioning.

    I have had the same issue on PC using Direct Show Dump.

  18. dangwoodle says:

    Some detailed information about closed captioning can be viewed at:

    http://www.robson.org/capfaq/technical.html

    I have to wonder if the mpeg-2 compression renders the captioning information unreadable by a caption-decoder. I think it would have been interesting if Tivo had implemented an on-screen caption display option. My display does not have closed caption functions :( Plus it’d have been fun to see the captions as a transcription.

  19. Anonymous says:

    How To Hack Your TiVo Using Mac OS X…

    This page gives bla bla bla…

  20. […] I just saw that someone wrote up a page on how to build and run the software on Mac OSX.    http://ldopa.net/2006/12/04/how-to-hack-your-tivo-using-mac-os-x/ […]

  21. […] official solution is always going to increase motivation for users to find their own answers.EDIT: Here’s a guide to using this on a Mac and another one for automatically using it with Galleon on a Mac.EDIT: This landed on Digg – albeit […]

  22. […] good example why learning to use Linux or other Unix inspired systems is a benefit to end-users.) Sample command: tivodecode -v -m 1234567890 -o ~/Desktop/output.mpeg […]

  23. […] 16:23 I just saw that someone wrote up a page on how to build and run the software on Mac OSX. http://ldopa.net/2006/12/04/how-to-hack-yo…using-mac-os-x/ […]

  24. New Movie Reviews…

    I couldn’t understand some parts of this article, but it sounds interesting…

  25. […] Here’s a guide to using this on a Mac and another one for automatically using it with Galleon on a […]

  26. […] http://www.dabcc.com/article.aspx?id=6696 [Found on Google, Windows Live, Yahoo! Search, Ask.com] 2. ldopa.net " archive " how to hack your tivo using mac os x Use the terminal to navigate to inside the new "tivodecode" folder created on your […]

  27. […] Here’s a guide to using this on a Mac and another one for automatically using it with Galleon on a […]

  28. att says:

    idk what to type when i type make: i have xcode