For awhile, I've wanted to try my hands at writing a gadget for the Windows Sidebar in Vista, but I could never come up with a project idea that was small enough to accomplish and useful enough to justify. Since we recently added two TiVo HD units to our home network, I thought it'd be handy to expose their Now Playing lists. I knew the data was available over our home network, because the TiVo Desktop software displays a lot of it. Turns out, the TiVo Developer Resources section of their site contains just enough to get going.
Without going into too many details, recent versions of the TiVo software on certain units (TiVo HD and TiVo Series3 HD, I think) contain a small web server that can be issued requests. These requests are passed via the query string and return their results as XML. For example, our downstairs TiVo unit has an IP address of 192.168.1.104 (you can find the IP address of your TiVo by navigating to Messages & Settings, then Settings, then Phone & Network). If I open my web browser and navigate to https://192.168.1.104/TiVoConnect?Command=QueryContainer, I'll receive an XML response that includes information like the title of the unit and a URL to obtain the current Now Playing list.
If you try this same request with your own TiVo (using the correct IP address, of course), you will first run into a security certificate warning. If you decide to continue, you'll then be asked for credentials. The user name is always tivo, and the password is your media access key. Your media access key can be found in the right column by logging in to your TiVo account online or by navigating to Messages & Settings, then Account & System Information, then Media Access Key on your TiVo. For a more "friendly" Now Playing list, you can also navigate to https://192.168.1.104/nowplaying/index.html using a similar procedure.
When I started writing the TiVo gadget, I could not successfully complete an XMLHttpRequest for the XML data because of the certificate warning (which I couldn't see, since this was all happening behind the scenes of the gadget). I soon figured out that the actual certificate is issued to the service number of the TiVo unit, but since the requests are being made to an IP address instead, the mismatch causes the warning. It's kind of like saying that I trust Mike Swanson, but I don't trust Swanson, Mike (same person, but represented differently). Ideally, then, I would want to issue my request to the service number of the TiVo so that the certificate would match.
On most networks, you can reach a machine by its IP address and its name; that's because the machine shares its name on the network. Unfortunately, the TiVo doesn't share its name (the service number) on the network like other devices. To resolve this issue requires a few steps, and if you decide to download and try the TiVo Now Playing gadget, you'll need to perform them:
Whew! Sorry that you had to go through all of that, but I'm not aware of any other method (short of possibly installing a custom ActiveX control) to get around this certificate issue. TiVo could solve the issue by broadcasting its service name on the network. Perhaps they'll do that in a future version of their software.
Assuming you've made it this far, you can download the TiVo Now Playing v1.0.1 gadget (182KB) and install it on your Windows Sidebar. Click the little "wrench" icon to configure the gadget. Enter your service number in TiVo address(es), and your Media access key. If you have more than one TiVo on your home network, you can enter multiple service numbers separated by semicolons. Note that all TiVos in a single household share the same media access key, so you only need to enter one of those.
This post is already rather long, so I'll quickly summarize the current gadget features:
I'm sure there's more I could say, and I'll probably say it in a future post. Please enjoy the gadget, and pass along any comments, suggestions, or questions via e-mail or by leaving feedback.
Update: If you downloaded version 1.0 of the gadget and you're not seeing any of your programs listed, please try version 1.0.1. Hopefully, this will fix the issue.
hello, i would like asking u ... will u helpin me please... beacuse i did add insall already but it not work ... i don't understand this satution... it hard for me ...
Mike (and fellow Swanson, though unrelated I imagine),
Your gadget works for TiVo Series 2 as well. Your detailed and easy to follow instructions made setting up this tool easy and fun, far better than I had hoped or even expected. Thanks.
Any insight in how to do this using Firefox instead of IE?
My Gadget has stopped working after many months of enjoyment. I restarted the TiVo HD unit. Still doesn't work.
Something changed and I don't know what, but not having this is kind of a pain. :-)
Ron...my guess is that your TiVo was assigned a new IP address when it was reset. If you follow the steps to determine its new IP address, you can simply update the HOSTS file as mentioned in the list of steps.
For anyone using Vista who might be having the failure when browsing using the service number as suggested (there are intermittent issues with the the way the browser parses the amount of hypens):
Include the 443 port number ALONG WITH the https in the URL. Worked for me after trying everything else:
I searched tivo gadgets on a whim and hit the jackpot with your great gadget. great job and thanks
Trying to figure out what went wrong as I couldn't get it to work, then came across the 1/13/08 post by buckholz that pointed out my error. I too had assumed IP address(es) meant IP address, not Service Number, so once that was fixed, it started working great.
Thanks for a very useful gadget!!!
The gadget says address(es) and I've tried adding multiple gadgets using the different code for each tivo however, when I reboot all of them display whichever tivo I setup last. So how do you use it for multiple tivos?
@Matthew...enter multiple addresses in the configuration, separated by semicolons. Then, to switch TiVo units with the gadget, just single-click the blue/purple name right underneath the TiVo character.
Wondering if you can sort the list? Love to get the two items recording showing at the top.
This works great! Excellent job!
The following is not a critique, but more of a 'wouldn't it be nice if...':
I don't know how difficult this would be, or if it's possible, but wouldn't it be great if you could use this gadget to place items in your transfer queue for the TiVo Desktop?
Once again, love the gadget, just a suggestion.
I followed your instrections, but I can't seem to get the gadget to work on my system. The problem seemt to be that, though I added the entry with my Tivo's IP address and system number to the hosts file on my system, when I try going to "https://[tivo service number]/TiVoConnect?Command=QueryContainer" in my browser, it doesn't seem to find my Tivo. I just get an "Internet Explorer cannot display the webpage" error message.
Russ... replace [tivo service number] with the IP address of your tivo (192.168.1.8, for example). And the gadget only works after you install the certificate to the correct cert store. The default is to the 'personal' store, which will not do.
Super gadget. Installed 1.0.2 and love it. One thing that I haven't gotten to work is clicking the name and picking up my second TiVo. I can access seperately by changing the address. Any ideas?