Mike Swanson

December, 2007

  • Mike Swanson's Blog

    TiVo Gadget v1.0.2 Enables Video Download

    • 11 Comments

    I made a very minor update to my TiVo Now Playing gadget that allows you to download recorded shows to your computer. While viewing the show details window, simply click on the title to begin the download. Because the video files are protected, you'll be prompted for a user name and password. The user name is always tivo, and the password is your media access key (check the Remember my password checkbox if you get tired of re-entering this information). If you need help configuring your gadget or finding your media access key, be sure to read my earlier TiVo Gadget for Vista post. Download the TiVo Now Playing v1.0.2 gadget (182KB).

  • Mike Swanson's Blog

    Silverlight Slide.Show

    • 13 Comments

    Our friends at Vertigo have created a free application for Silverlight 1.0 called Slide.Show. If you have Silverlight installed, you should see a slide show of my photos within the body of this blog post. Most of them are from my collection of wallpaper images, and a few are from a cruise to Italy and Croatia this past summer.

    To incorporate the photos in the body of this post, I followed the instructions in the Quick Start Guide and had my slide show up and running within about 10 minutes. I borrowed some of the style settings from the guide and from Vertigo's own sample, and I tweaked them from there. I know there are more settings available ("hundreds of color, font, size, position, and behavior options" according to their feature list), and I can't wait to read the forthcoming user guide for the details.

    To embed the Slide.Show application in this blog post, I used the following IFRAME tag:

    <iframe marginwidth="0" marginheight="0" src="http://www.mikeswanson.com/Slide.Show/default.htm" frameborder="0" width="480" scrolling="no" height="300">

    If you hover near the bottom of the frame, you'll see some thumbnail images and other navigation options. I only configured a single album for this example, but you can configure many. And, since I don't typically name my photos, I didn't include the SlideDescription module. Slide.Show also includes a FlickrDataProvider. As the name implies, it uses the Flickr API to retrieve and display photos for a specified user. Some of the other features include multiple transition types (fades, wipes, slides, etc.), cross-browser support (IE 6 and 7, Firefox 2, Safari 2 and 3, both Windows and Mac), and a full-screen mode.

    To get started with your own show, check out the Slide.Show project on CodePlex. And if you're interested in writing some code, I'd love a simple utility that allows me to easily generate the XML data file.

    Great job, Vertigo!

    Update: Ben Hoffman has blogged about a free tool he's created that will read metadata from your images, resize them, and easily edit the data that gets included in the slideshow. Awesome!

  • Mike Swanson's Blog

    TiVo Gadget for Vista

    • 85 Comments

    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.

Page 1 of 1 (3 items)