My Mac Mini HTPC saga: TV tuners

 

Do I really *need* a tuner?

One of the major hang-ups I had – in making the switch from Windows Media Center to a Mac Mini – was worrying whether I’d be able to plug in enough TV tuners into the Mac Mini to be able to record all the TV I usually watch.

However, after having been *without* an HTPC for almost a year, it’s amazing how little I feel like I *must* get record whatever current-run TV shows are being played.  What with the availability of almost every TV season on Netflix instant watch, or a full season on DVD, or (theoretically) a quick download via bittorrent, there’s almost no sense of urgency left to the act of watching TV, and if we happen to miss it – oh well, I’m sure I’ll be able to get it real soon. I’ve caught up on a year’s worth of The Big Bang Theory just recently, and I’m about to re-orient myself to two years’ worth of Supernatural (so I have the possibility of watching current-run episodes within the next few weeks).

All that said, I can’t quite bring myself to give up my ability to accumulate a “taped” copy of the shows that were broadcast to me, for later viewing when I have more time.  Breaking the cycle of dependence between me and the timeslot the broadcaster decides to air the show is a powerful mental leap to make, and makes me feel less like a prisoner of the networks (and their increasingly hostile attitude towards their audience).  If only to make myself feel like I have a modicum of control over my TV habits, I’ve decided to drop another $200 on an Elgato EyeTV 250 Plus tuner.

Why that brand and model?  Couple of reasons:

  1. My research into Mac-based HTPC’s and Mac-compatible tuners seems to mention the Elgato products more than any other brand.  It feels like what I saw with Hauppauge for Windows Media Center, and if my satisfaction with the Hauppauge products is any indication, the Elgato products should be good.
  2. It’s not just the hardware – apparently the EyeTV software is the best available for recording and managing playback of recordings on the Mac.

Finding all the digital channels available to be recorded with your tuner

If you’re going the OTA route, then this seems like a great way to see what all is available without a prescription (ha – I mean, subscription):

http://www.equinux.com/us/products/tubestick/tuningmap.html

If you’re stuck (like me) with wanting to get the few remaining channels that haven’t gone the full-streaming/Hulu/TV.com type of approach, and you *need* that subscription to bastards like Comcast, then your tuner has one of two uses:

  1. Analog tuner (receiving the analog output from a DTA box), in which case be prepared to buy an “IR blaster” (device that allows your HTPC to direct “change channel” commands to the IR receiver of the DTA box).  This way, you get all the channels to which you’ve subscribed – whether the cable company is encrypting those QAM signals or not.
  2. Digital tuner (receiving whichever unencrypted (aka “clear QAM”) channels your cable company hasn’t yet obfuscated with the 56-bit DES encryption that (so far) is only supportably-decryptable by the DTA and/or full cable box solutions they hook up on your behalf).  This way, you get all the channels your cable company hasn’t yet encrypted – usually including the “extended basic” channels, and probably a few others that might not be high on their list of “must-have” channels.

The EyeTV software that comes with Elgato products includes a feature called “Exhaustive Scan”, which picks up the digital channels that aren’t sent out on the typical frequencies that are publicized by Comcast.  I was able to find about 80% of the non-local channels that I normally watch (and a bunch that I’ll *never* watch, no matter *how* high-def they are).  However it took me most of the afternoon to map those channels out.

Be careful though: I don’t know why, but somehow all the configuration that I did to map those channels went up in smoke the next time I rebooted the Mini. Now maybe the system crashed before shutting down EyeTV – but is this software *really* so fragile that it doesn’t cache these settings as soon as they’re configured?  And make sure that the file that stores these settings doesn’t get wiped out by an errant half-open write operation or something?

 

Future question:

Is there a similar Plex plug-in for EyeTV as is available for Boxee?

What do you like? Your ratings in multiple places – do you want to sync them?

The modern “what do you like?” systems are driving me nuts lately.  Every time I turn around, there’s a website offering to help me socialize, and what better way to find new friends (and new recommendations for media to consume) than by accumulating a bunch of ratings for the media I’ve already consumed?

Friends (and hopefully, to some degree) passers-by can then peruse my virtual “media shelves”, see what I’ve rated and how, and either (a) get or (b) give recommendations for stuff that’s related to what they/I have already seen/read/heard and liked.

Web 1.0: Amazon Recommendations

I’ve got > 1000 ratings for graphic novels accumulated on Amazon.com – which was a great way for years for me to get recommendations on other books by the same authors, but even more importantly and gratifyingly – to get recommendations on other books by authors I hadn’t yet read.  (I’ve always assumed some sort of Bayesian analysis that results in “people who liked your 4- and 5-star books also bought/owned/rated these items”.)

[I’d further tried to accumulate lists of ratings for music (for CDs I’ve purchased), but Amazon’s interface for this wasn’t nearly as sophisticated or predictive for music as it seems to be for books, so I’ve never gotten quite the same gratifying experience for music on Amazon.com.]

Web 1.0: Netflix Recommendations

I’ve got > 1000 ratings for movies accumulated on Netflix.com – which was a great way for years for me to get recommendations on other movies I’d like that have many of the same ephemeral qualities I enjoyed in the movies I rated most highly.  (Netflix has had a highly-publicized contest – which recently wrapped up – to come up with new ways of improving user recommendations, which to me meant that they’d exhausted all the available research into Bayesian and other mathematical analysis of the huge aggregations of data on what people liked, didn’t like, watched and marked “not interested”.)

Long before I was a Netflix subscriber though, I was (and am) a diehard advocate for IMDB.com.  [Hell, I was one of the lunatic adopters in the early days back when you had to submit queries to the IMDB via email.  Yeah, imagine browsing your favourite actor’s movies [and forget about TV – that didn’t count] by submitting a cryptically-formed email message and waiting the minutes it took for their servers to generate a response.  Fred Flintstone-style browsing.]  I’ve occasionally submitted a rating for movie through that site too, though I haven’t gotten any real benefit from it (except the knowledge that I’m helping to build the geek-slanted ratings that are the killer data set available from IMDB).

Web 2.0: social + recommendations

In the past year or so, I’ve fallen deeply in love with Facebook, Twitter and all the most interesting integrations with these “social platforms”.  With these platforms have come brand-new applications that allow you to rate movies/TV/books/music/whatever and not only get some kind of recommendations back from “the system”, but also to get much more specific and immediate feedback from those of your friends (or even “friends”) who’ve also signed up to use the application.  They see what you’ve rated, then respond with comments/replies/their own ratings, and can make much more specific (and personal, though statistically less predictive) suggestions of other stuff they want you to see/read/hear.

I love these – and while I’ve experimented with a bunch of these apps, I’ve gravitated to those apps that appear to have the greatest critical mass.  Not so much because I want a horde of strangers to help me find stuff, but because I’d like to reconnect with as many friends as possible and I hope they’re also at the apps I’ve picked.

So I’ve got ratings slowly accumulating at Goodreads.com, Flixster and a couple of others.  Goodreads has a great mobile site that makes it dead-easy to post a rating “on the go” with very few excess clicks, and the Flixster iPhone app is awesome *and* easy.  And there are dozens of other great sites where lots and lots of people are accumulating lots and lots of ratings data.

Problems: stale data, incomplete data, spread-too-thin efforts

After a while, I’ve noticed I’m spread thin across multiple places where these ratings are being accumulated.  It’s an unfortunate consequence of the abundance of such great sites and platforms, that I’m finding it hard to keep my ratings “in sync” between multiple places at once.  I have good intentions – and occasionally I’ll even follow through on those good intentions. 🙂

For example, I’ve got a ton of movie ratings in Netflix, but my primary interest for “sharing” movie ratings is moving to the Flixster app – mostly because it gives me a chance to get immediate feedback from a larger group of friends who catalogue their ratings and mini-reviews there via either Facebook or the iPhone app.  However, while I’m getting immediate gratification for my posts to Flixster, it’s not doing me any good in terms of system-generated (Bayesian) recommendations for other movies I want to watch. And when I go to my Netflix queue to add movies, I sometimes forget whether I’ve seen something (since I haven’t always rated those movies I’ve seen recently).

Similarly, the primary place I currently capture my ratings for graphic novels is in GoodReads (usually via the mobile-optimized web site that I access from my iPhone).  I’m not even getting any instant feedback from friends there, nor have I found any way to use the “crowd” of GoodReads users as a source for new recommendations.  However, there’s no alternative in my Web 1.0 world: Amazon doesn’t seem to have any way to add ratings on the go.  If you’re not going through their full browser, then you’re SOL.  (The Amazon iPhone app doesn’t do squat here, and neither does the mobile browser version – it’s almost as if they don’t care whether their customers like what they bought.)

I’m now split between worlds, and I suspect the world of Facebook/social media and other Web 3.0 apps will only make this worse – there’ll be more and more sites that all want you to provide some “sticky” information, that lures in more users ‘cause there’s a “crowd” there, and yet those ratings won’t be re-usable elsewhere.

This Ratings Data Ain’t Portable, My Friends

Yeah.  Twitter might have finally gotten religion that you “own” your Tweets, and Facebook *looks* like they’re convinced that you can and should have the ability to control your personal information/updates, but good luck trying to convince the thousands of little start-up apps out there, all hoping to lure you into their little walled garden and *keep* you there.

I expect that in 5-10 years, all these systems will be able to freely consume and re-use this data – the business world will have finally gotten over thinking this is their only “value add” (and will have found some even more sexy way to separate you from your money).

However, for the forseeable future, these multiple ratings systems will continue to live as non-interoperable data islands.  That means heavy “data generators” like me will have to make some pretty dopey (and unavoidable) decisions:

  1. When you find a new, even-more-attractive place to catalogue your consumption and how much you enjoyed it, do you abandon all the invested effort you put into the last one?
  2. If you don’t want to abandon all that “legacy data”, how will you migrate it to the new system? Just devote a freakin’ weekend to the prospect of clicking like a spastic lab rat, replicating each rating from one system to the other?  Or do you go even further down the rabbit hole and learn how to export the data (if that’s supported) from one and import to another – or go completely over the cliff edge into writing yourself some web-scraping scripts that pull the data by force out of systems that don’t have a supported import/export interface (API)?
  3. And if you actually *want* to maintain a presence in more than one system – e.g. if you find some ongoing benefit in having current presence in both Netflix and Flixster?  Well gods help you then – you’re screwed into a life of regular repeated self-inflicted punishment.

I’ve really lost my mind – thinking there’s got to be some way to actually pull off (3) without feeling like a character in a Kafka novel (and no, I’ve never read Kafka, so don’t crucify me for a misspoken cultural reference).

How’s About a Ratings Sync App?

Yeah, why the hell not?  Why not just burn the next years’ worth of weekends writing an extensible framework for us to be able to download, manipulate, upload and synchronize (i.e. manage and resolve the inevitable conflicts) the ratings data?  Isn’t is just like me, to think of doing some thankless job like this, in the hopes that some morsel of thanks comes through from some other hapless geek like me?

Sure, what the hell.

In fact, I’ve invested a whole bunch of time into this harebrained notion already.  Yes, I’ve written myself a bunch of code that attempts to provide an extensible, pluggable framework in which multiple “ratings” providers could be wired in, and between which synchronization could occur.

I actually dream that one day, users like me could:

  • Fire up this app
  • Connect to one of their ratings aggregating web sites
  • Download all ratings for whatever “things” are rated on that site
  • Select another compatible ratings web site (e.g. another books-rating web site if you just download book ratings)
  • Configure a translation between the two web sites (e.g. one site rates 1-5, the other site rates 1-10, so map 1 = 2, 2 = 4, 3 = 6, 4 = 8, 5 = 10; or if you’d prefer, 1 = 1, 2 = 3, 3 = 5, 4 = 7, 5 = 9)
  • Upload the translated ratings to the second site, thus synchronizing your ratings from one site to the next

This’ll require mapping out the APIs for each ratings-aggregating site, implementing an incredible flexible and robust local schema for the data, and figuring out all the different ways that different sites identify what to the human mind is an easy-to-identify product.

[And to think, this whole idea came about as a way to figure out how to migrate the ratings from my old Netflix account (to which I’ve still got access, but only just barely – due to the grace of an old housemate) to a new one that *I* own, and from which I could actually do Netflix Instant Watch in my own personality (and with my own IW queue).  I’m seriously considering just paying them for their subscription for the rest of my life, so I never have to lose those 2956 movie ratings.]

 

Anyone out there got a better idea?

Anyone else crazy enough to want to help out with this?

Anyone out there want to see this app see the light of day?

My Mac Mini HTPC saga: software & configurations

Now that I’ve done the whole hardware upgrade and full, clean install of Mac OS X 10.6, I have to start all over again (this time with a little practice under my belt) on getting all the stuff assembled for a well-oiled home theatre machine.

Plex, Boxee, EyeTV, VLC, Transmission, Silverlight, MacTheRipper

Lots of software, so little attention span. 🙂

Plex

  • As my chosen media front-end, I intend to do as much as possible from here, and only veer into the other apps I’m using when necessary
  • I choose to install the following apps: Hulu, Apple Movie Trailers, South Park, Netflix, The Daily Show, Pandora, PBS, Picasa Web, Trailer Addict, YouTube

Boxee

  • I hear this is the only way to get full streaming of the CBS TV shows in a 10’ UI experience (rather than fire up Safari/Firefox and click away directly)
  • So I logged into Boxee.tv, downloaded the Mac OS X alpha of Boxee (which is simply yet another XBMC fork/port) and started looking at the “Applications” – Videos > CBS > Full Episodes shows listings for How I Met Your Mother (which I watch) but not for The Big Bang Theory (which I *slavishly* watch)

CBS: Fail.

EyeTV

  • Once I decided to definitely get a tuner (more on that in another blog article), the overwhelming number of times I’ve heard Elgato’s products recommended (not just their tuner, but their pretty great EyeTV software app to manage the tuner) was the clincher
  • The trickiest part was upgrading EyeTV from 3.0.x to 3.2 (which just came out a few days ago).  It turns out that on systems running Mac OS X 10.6, EyeTV 3.0.x won’t even launch – Apple in the infinite wisdom intentionally put a “block” in place so that it won’t start.
  • It turns out there’s an “under the covers” way to bypass such Mac OS X “blocks”, by launching the application’s actual binary file, rather than using the “user friendly shortcut” that is presented in the Applications folder (and which I, like most Mac users, seem to happily use until something prevents us from getting in the easy way).
  • I found an article at Elgato’s site that outlined the process: http://support.elgato.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=3628
  • Once I got EyeTV 3.0.x (I think it was 3.0.3 that shipped with my EyeTV 250 Plus tuner) running, I was able to use the EyeTV “Check for Updates” menu option to get the 3.2 download and be back working like a charm.

VLC Media Player

  • I remembered that VLC was the easiest way to get access to all the significant codecs, and have a nice media player in the background in case any of the rest of ‘em weren’t working out for me.
  • Downloaded, installed, and already confirmed that VLC can play VOB files that were copied directly off a DVD (for backup purposes, naturally – who wants to scratch their only copy of Robot Chicken?)

Transmission BitTorrent client

  • Ever since hearing about PeerGuardian for Windows (a piece of software that prevents your computer from connecting to “blacklisted” IP addresses – e.g. those servers setup by the RIAA, government agencies and others to track what you’re doing with your downloads and other torrent-like activity), I’ve been dreading the conversion over to my Mac Mini
  • Then somehow today, my searches through Lifehacker’s archives for “p2p file sharing ‘mac os x’” turned up an article from 2008 on Transmission – a BitTorrent client for Mac OS X and Linux.
  • It turns out that the friendly and nice folks at Transmission have integrated the PeerGuardian functionality into their app, including automatic downloads of the Bluetack blocklists
  • That’s enough for me – I’ve already got Transmission installed and slurping down some great media for later watching.

Silverlight 3.0 (for Netflix)

  • Silverlight is necessary for playing the Netflix Instant Watch streaming movies, and it doesn’t seem to get installed “in the background” by Plex, Boxee or any of the other media-front-end apps that provide a Netflix wrapper
  • Makes sense now that I think about it, but I can’t say I wasn’t disappointed by the fact that the Mac software community hasn’t made all this stuff entirely hidden from my relatively novice eyes.

MacTheRipper

Great little app for making backup copies of your DVDs onto a local hard drive.  Essential in this day and age.

Issue: Mac OS X 10.6 intercepts all Apple Remote commands

As of OS X 10.6, the operating system itself intercepts all Apple Remote commands, and cannot be overridden by application-specific configurations (as was apparently the case with Plex and probably others in the past).  Instead, hitting the Menu button on the Apple Remote will always bring up Front Row; hitting the volume buttons will always change the system-wide volume, and other irritating effects (for an HTPC user who’s using third-party HTPC-oriented software) are seen as well.

While there’s no supported, by-design way in OS X to disable this “feature”, there are some known workarounds – which I’ve implemented:

http://forums.plexapp.com/index.php?showtopic=8658

  • edited the /System/Library/LaunchAgents/com.apple.RemoteUI.plist file (after making a copy of the file in the same directory, in case I later want to revert back to the original settings)
  • deleted the /System/Library/LoginPlugins/BezelServices.loginPlugin (after making a copy of the file – ibid)

http://www.tech-recipes.com/rx/2754/os_x_edit_file_using_textedit_as_root_superuser/

I had to use this article’s cluefulness to allow me to interactively edit the RemoteUI.plist file using TextEdit.

http://support.apple.com/kb/TA25121

I also got bit by the “blank admin password” problem – wasn’t able to fire up sudo when my current account had a blank password.  So I changed it, did the sudo-enabled edit, and changed the password back.

Next Steps…

Wondering – do I really *need* a TV tuner, to enjoy the world’s best offerings of TV and other media?