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.
HarryVT sent me the XML his TiVo is responding with, and I almost immediately saw what I think is causing the error. I'll update the gadget code sometime tonight and re-post. It should be a very small update to the gadget...no change to the process I outlined (thank goodness).
Got it to work with my series 3 and Vista Ultimate (though I think for a bit of clarity it would be worth mentioning that the Service number is located under the System Information menu, took me a bit to figure that out)
Also it would be awesome if we could select for download from this gadget as well.
Okay...I think I fixed the issue. I've created version 1.0.1 of the gadget and updated the post to point to the new version. For those of you who have already gone through steps 1-3 above, you should simply be able to install the new version of the gadget, enter your settings, and go. I'd love to hear if this fixes the issue for anyone who tried 1.0.
Oops...thanks for the tip, Brad. I had intended to include the path to the service number on the TiVo, but I must have forgotten. I've updated step 1 in the post accordingly.
Mike, you da man! New version works like a champ...
It works! I get all my recordings and folders!
If you feel like adding new features :), you might consider adding link to download the file directly from the description (just like it is possible from html generated by Tivo itself). Not that it is necessary - you did a fantastic job!
I tried it the old way and it didn't work. Now I just re-installed the new version and it works great.
Has anyone else gotten this to work under Vista 64?
Running version 1.0.1 Under Vista 64 - no problems to report!
My only request would be the same as szczesnyb - a download link on the description. Other than that this is the first truly useful gadget I've used!
Great idea...I installed under Windows Vista and I have 1 TiVo HD and all I get is (unknown)(0).
I can see the XML document showing the link for now playing in my browser so I know I can reach the TiVo...just can't seem to get it to work on my machine.
Just had to clean up after a hard drive crash and reinstalled the gadget and it works like a champ. Not sure if it works due to a clena install or the fix - but just glad it works - very cool stuff!
I like the gadget, I want the gadget, I have installed the 1.01 version. Vista will not allow me to change the security settings for the certificate. I have Vista 64-bit Home Media Edition, and yes, I am the administrator. When I get to the Certificates screen showing the Tivo certificate, the ONLY buttons that are not disabled are the OK button and the button to close the window. I've disabled my firewall, added both User and Computer Certificate control to the MMC, and still nada. Any suggestions?
Kelly...did you add https://[service number] to your trusted sites list in IE? I'm not sure this is the reason, but I know that I couldn't install the certificate until the URL was in my trusted sites list.
Yes, I made it through that step. It was actually the easiest one. But Vista will not allow me to even think about adding the certificate. If I use the certificate add-ons in MMC, when it comes to asking for the certificate file, it rejects the query as being a bad file format.
Totally awesome gadget Mike. Thanks much. Gave me a reason to start using the Sidebar again! One question, is there any way for me to make the gadget longer (re-size the gadget and pull it down to display more listings without using the scrollbar), or are all gadget sizes fixed?