For some reason the Tivo to Go software doesn't work for me. The video comes out upside down. I don't know why, and since there exists a command-line Tivo to Go client for linux, I don't much care that the official software hates me.
During the course of investigating the functionality, I noticed something odd about the download URLs that the Tivo's web server provided. The URLs are of the form:
Obviously the IP number or hostname has to stay the same. And the download part seems important too. But the Tivo pays no attention to the show name. In fact, you can put just about anything between /download/ and .TiVo. My personal favorite is /download/I.Love.My.TiVo?Container... The only restriction seems to be that it must end in .tivo (case unimportant). Multiple .tivo substrings are allowed. The Container argument also seems unimportant. The argument can be replaced by apparently arbitrary text as in Container=barrel_of_monkeys, or it can be omitted entirely. Ultimately, despite the formatting that Tivo's web server provides, the actual URL format appears to be:
There are some restrictions on what somestring may contain. It must contain at least one character preceding .tivo. This substring of at least one character must look like a filename or path. It need not be a valid filename or path, and may contain all manner of wierdness. /download////../../0.tivo is perfectly valid, while /download/.tivo is not. Immediately following .tivo must be a question mark followed by another string. This string is in the format of & delimited parameters. The string may contain any number of parameters of any type, however it must contain at minimum the id=some-number argument. If id= is not the start of this string, & must immediately precede id= to separate it from any prior characters. Similarly, if some-number is not the last part of the string, it must be immediately followed by & to separate it from following characters. The string may contain multiple id= parameters: the first such parameter is accepted and future ones ignored.
At bare minimum then, the following is required to fetch a recording from a Tivo using Tivo to Go: