TiVo Gadget for Vista

TiVo Gadget for Vista

Rate This
  • Comments 85

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:

  1. In Vista, click the Windows Start menu, then navigate to All Programs, Accessories, then right-click on Command Prompt and choose Run as administrator. From the command prompt, type:

    notepad %SystemRoot%\system32\drivers\etc\hosts

    You need to add a new line at the bottom of the HOSTS file that associates your TiVo IP address with its service number (you can find the service number on your TiVo by navigating to Messages & Settings, then Account & System Information, then System Information). For example:

    192.168.1.104    123-0000-4567-7f7f

    Choose File/Save in Notepad. Then, File/Exit. Then close the command prompt window.
     
  2. Open IE7, pull down the Tools menu and choose Internet Options. Click on the Security tab, then Trusted sites. Click the Sites button, and where it says Add this website to the zone, type https://123-0000-4567-7f7f, but use your service number instead. Click Add, then Close, then OK.
     
  3. Still in IE7, navigate to https://123-0000-4567-7f7f/TiVoConnect?Command=QueryContainer (but with your service number).  When you receive the certificate warning, select Continue to this website (not recommended). Provide your user name and password as described in the post above and select OK. Right-click anywhere on the page (which should now contain some XML data), then choose Properties. Click the Certificates button, then Install Certificate... When the Certificate Import Wizard appears, click Next, then choose Place all certificates in the following store. Click the Browse... button, and choose Trusted Root Certification Authorities. Click OK, then choose Next. Click Finish, then Yes to confirm the certificate. You should receive a message stating that the import was successful. Click OK three times to close the dialog boxes.

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:

  • Configure Folders if you want shows from the same series to be grouped together (like Kitchen Nightmares in the screenshot).
  • When the gadget notices a new recording, it will ding (if you have sound enabled).
  • If you configure more than one TiVo, click the friendly name of the unit (like Downstairs in the screenshot) to switch to the next unit.
  • Click the name of the show to see its description. The details flyout will contain more data in a future version...just didn't have time to add it for the first release.
  • Your settings will survive a gadget removal/add thanks to Todd Northrop's handy Settings Manager for Windows Vista Sidebar Gadgets.
  • When the gadget refreshes its data, it will close any groups that are open. While not technically a bug, it is annoying, and I hope to improve this later.

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.

Leave a Comment
  • Please add 5 and 3 and type the answer here:
  • Post
  • Mike -

    Sorry if this is a double post, but I got an error the first time.  In any case, you were right - I wasn't entering the service # in the "Tivo Address" box; I was using the IP address of the box instead.  N00b mistake.  But definitely would be clearer if you stated service # instead of address.  Meanwhile, downloaded 1.0.2 and it works great.  Thanks for your efforts!

  • I have been having issues getting the Tivo Gadget to work for me ;-(  I have followed the instructions closely and also trouble shooted the issue with all previous comments here to no avail.

    My gadget only displays "(unkown) (0)" for my series 2 tivo.  I think the issue has to do with the certificate because when accessing the test url I continue to receive certificate errors.  I say this because I had to run IE 7 as administrator in order to even install the certificate.  In fact the "install certificate" buttons are greyed out when I load the url as my user account.

    Check List:

    1.  added [tivo ip address] and [tivo service number] to hosts file

    2.  added https://[tivo service number] to "Trusted Sites"

    3.  browsed to https://[tivo service number]/TiVoConnect?Command=QueryContainer (test url) and received xml data.

    4.  right clicked on blank space on this page and install certificate to the "Trusted Root Certification Authorities"

    5.  installed the gadget and click the configuration wrench...

    6.  added [tivo service number] (only the number without anything else)

    7.  added my media access key

    If anyone else has had experience with this issue your help would be greatly appreciated.

  • Hey Mike - I have it working with no problems on my 2 TivoHD units. Beautiful work! Thanks so much.

  • I'm having the same problems as Jacko157.  Getting "unknown (0)" I have installed the certificates twice, and have tried to install both ver 1.0.1 and 1.0.2. I have a Ser 2 and a HD Tivo and have also tried to use only one of the service numbers instead of both, no luck there either.  I don't understand your reply to Patrick and Jen.  Can't wait to get the gadget working!

  • I have a TivoHD and vista and followed the instructions and got the "unknown(o)" thing also.  I rechecked things and my service number with the last 4 digits/letters I wasn't sure if it was the letter or numeral zero.  I changed it to the numeral o and all worked just fine.

  • I can't wait to get this gadget working, but I believe I'm having the same problem as Jacko157.  No matter how many times I install the certificate to Trusted Root Certification Authorities, it doesn't seem to "take."  The wizard tells me that the import was succesful, but when I refresh the site it continues to give me a certificate error.

    If anyone has a suggestion, I'd appreciate it.

  • You 'd Man!  Thanks.  struggled through it some but finally got it working.  It might help if you put a sample Tivo Address under the config.  I kept thinking you meant the IP there and of course it did not work.

  • Mike Swanson写了一款Vista边栏小工具, TiVo Gadget for Windows Vista ,它非常适合放在TiVo用户的桌面上。你可以在这里下载这一小工具。即使你家中有很多个TiVo,你也可以应用这一小工具查看“正在播放列表”。这一工具可以把节目按照系列放在一起,有新的节目时它会发出“叮”的声音提醒你。对于有很多TiVo的家庭,你可以给它们编辑各种名称以便区分,比如“Downstairs”或者“Den”等等。当你在gadget上点击电视节目名称时,就能看到节目的相关信息。在小工具中编辑TiVo的名称还需要一些步骤,因为TiVo不同于其他的网络设备,它不能在网络中共享名称(又称服务代码)。但是不用担心,Mike已将这些步骤清楚地写在了他的博客上。一旦知道了服务代码,你就可以进入,并进行设置,TiVo上的“正在播放列表”就显示在桌面上

  • This is great.

    As long as one can follow instructions it's pretty easy to install.

    My only recommendation would be to change the field label "Tivo addresses" in the config. Tivo has its own IP address and it took me a rereading to figure out I needed to enter the service number.

  • Great little gadget!  I might have over looked these 2 items, but I thought I'd mention them here: 1) Seperate multiple TiVo address with a ";"  and 2) Use the TiVo Service Name.

    Also, if there was a choice to shrink font sizes that would be a nice little addition.

    I'm using this on a TiVo 80 hour Series 2 (240 series) and a 40 hour Series 2 (540 series). Both are networked with TiVo wireless adapters and your instructions were spot on here.

  •  Anyone figure out the problem with not getting the certificate to take?  I am using Vista 64bit and even though it says import successful, it doesn't (reload brings up the certificate error).  Any suggestions would be VERY helpful.  Really want to use this.

  • I just installed this on a new Vista Home Premium machine as per the directions without any trouble.  I am able to see everything on my TIVO.  Wonderful gadget!  Now if you can jsut get it to transfer them for me, I can remove the rediculous TIVO desktop software...  :)

    Thank you for sharing your success with the rest of us....

  • Very cool, Mike!  Right up there with Galleon but with a Vista-worthy UI.  I salute you!

    Since you clearly know what you're doing with regards to the TiVo's undocumented internal web server, let me ask you this:  

    How may I enable the user to "skip" the login credentials part?  Be patient- let me explain...  

    <rant>Yes, I understand the serious legal and slightly-less-serious security rasons not to do this, but let's face it: in 3-5 years we'll all be sharing and recommending our DVR'd shows via the international free WiFi mesh network, and the big media companies will have all survived the painful transition and accepted the loss of their direct control of content distribution (haven't we already done this with music :) ??) At this point the revenue will probably come from ad-supported enabling software.</rant>

    Having said that, here is the environment: I've forwarded ports 80 & 443 on my router to one of my TiVo Series3 boxes, and it's pretty damn cool, if I may say so myself.  Think of a sling box, just not live.

    So on what level would this problem be approached?  I tried the good old fashioned https://user:pass@host.domain.tld, with no luck, and then attempted https://host.domain.tld/?user=tivo&pass=P455w0rD, but no luck either.

    Am I thinking too narrowly about this?  Should I be appending information via the router, or using a sort of proxy server?

    Cool blog.

    Kind regards,

    Crockett Dunn

    http://cdllc.la

  • Greetings.  Great job!  Might I recommend a software mod though.  The TiVo server only returns the first 128 shows.  From this snippet, you can see that my TotalItems is 134 but my ItemCount is limited to 128.

    Here's a TiVo forum thread about it.

    http://archive2.tivocommunity.com/tivo-vb/showthread.php?t=235563

    Thanks again!

    <TiVoContainer>

    <Details>

    <ContentType>x-tivo-container/tivo-videos</ContentType>

    <SourceFormat>x-tivo-container/tivo-dvr</SourceFormat>

    <Title>Now Playing</Title>

    <LastChangeDate>0x47F72376</LastChangeDate>

    <TotalItems>134</TotalItems>

    <UniqueId>/NowPlaying</UniqueId>

    </Details>

    <SortOrder>Type,CaptureDate</SortOrder>

    <GlobalSort>Yes</GlobalSort>

    <ItemStart>0</ItemStart>

    <ItemCount>128</ItemCount>

    <Item>

  • I was able to install this per your detailed instructions in Vista Ultimate 32 bit last week for a Series 2 DT, and just now for my new TivoHD.  Great idea for a gadget, I'm so happy I have it!

Page 4 of 6 (85 items) «23456