Tivo HME SDK, Amazon, and Disappointment

So I says to myself “You know what would rock?”:

  1. You're watching Oprah on Tivo (yeah, I know, but bear with me)
  2. You click your little Thumbs-Up a couple times (still bearing with me, right?)
  3. And the Tivo says “People watching this episode of Oprah have bought: 'My Heroic Struggle: An Uplifting Story of Deep Inner Spirituality'. Purchase from Amazon.com?“
  4. You click your little Thumbs-Up and:
    1. Amazon gets the order and,
    2. (this is the part that rocks) I get the affiliate fee (now you get why the scenario involves Oprah)

(Obviously, the first person to buy something associated with an episode uses the little Tivo on-screen keyboard and has a frustrating time. But all subsequent people get the “People watching...bought...” logic, which is a nice win, especially since in Tivoland, “subsequent“ lasts for days and weeks and all repeats forever after.)

Okay, so it's ob-hack, but I thought I'd just spell it out. So I says to myself -- “To the Tivo SDK download site! Before someone else does this!” The Tivo HME SDK is Java-only, so I fired up my favorite IDE in the whole world (JetBrains' IDEA) and wrote a “Hello, World” in five minutes and...

Turns out the Tivo HME SDK is quite limited: it doesn't actually give you any access to data on the Tivo nor does it let you (for instance) put an icon on the screen over a videostream. Essentially, you write server programs that run on your desktop computer and data from these can be served to your Tivo and you can use your Tivo remote to interact with that server-side program. So, for instance, it's easy to put a weather report on your screen or, for that matter, a stand-alone Amazon client. But you can't find out what show the person is currently watching, which is the “killer” in this particular killer app.

Too bad. I wonder if I could do it in XP Media Edition? It would rock.

P.S. Tivo's Desktop component runs as a process called TivoServer and it oftens goes out-of-whack and consumes 99% of CPU time. Bad process! Bad!