Tuesday, April 27, 2010

At last, a better way to watch Hulu on Linux

If you've read my previous posts about setting up a Linux-based HTPC then you know the issues I've run into trying to play videos from Hulu full screen - issues primarily due to the Adobe Flash Player application.

Well, I found out there is a Linux-native version of "Hulu Desktop" available from Hulu Labs (actually two versions for both 32 and 64 bit Ubuntu/Debian). I installed it and lo and behold I can now watch Hulu videos full screen on my Linux box.

Of course there are a couple of caveats:

1. Just like playing through the Flash Player browser plugin, there can't be ANY other OpenGL applications running. So if I want to watch Hulu then I have to exit XBMC.

2. I can only get smooth playback by using the "Low Quality" (480p) setting. That may be more of a bandwidth issue, but I seem to be able to play high quality video from other sites so maybe its got more to do with the codec? I don't know. It's not a huge issue since I don't (yet) own an HDTV and 480 looks quite nice on a 32" standard definition screen.

The "closed captioning" option is quite nice for watching un-dubbed anime - especially since you can control the font! The default font is a little "thin" in my opinion, so it's nice to be able to change the size and typeface.

Ok, I realize this is a program that's still in development so I'm going to forgive some things, but hope they fix them. The "10-foot interface" is more like a 3-foot interface even on a 32" TV screen. Some of that may be the lower resolution (as compared to a computer monitor), but the thumbnails and text are a little small and I didn't see any way to change them in the preferences. Also, it's not very intuitive in how you get back to a previous screen to, say, watch a different video. It seemed, at first, the only way to do that was to "exit" the video you were watching and relaunch the program. A simple "Back" or "Home" button would be nice. Also, the "splash" screen shows whatever TV show they're showcasing and seems to ignore your quality preference settings in favor of "High Quality" - which means if you set it lower due to your system's ability to play the video streams you're greeted by a slide show (it automatically starts playing the video).

But overall I'm happy with it because now it means I can actually WATCH the videos from Hulu on my Linux HTPC.

Is there a future for XBMC Plug-ins?

If you've used XBMC (or any of the third-party derivatives) you've no doubt run across the problem of plug-ins and scrapers that just stop working. Odds are, if nothing on your system has changed, it's the site from which you were getting the content that changed - and likely changed specifically to BLOCK the plug-in(s) you were using.

The reasons so many sites actively block scrapers/plug-ins like XBMC's has to do with:

1. Advertising
2. Bandwidth

Most of the content providers (all of them that I've seen anyway) place ads on their web sites to help pay for things. In some cases these are ads embedded in the web page (simple images or Flash content) separate from the videos themselves. In other cases they are webmercials that play IN the embedded video player before or during the show your watching, but are inserted into the video stream by various methods that seem to REQUIRE the video be playing in the site's own video window.

When accessing a video from an XBMC plug-in you obviously are never going to see the ads sprinkled on the host site's web page (because you never see the web page). However, I've also noticed that whatever mechanisms sites are using to insert webmercials into video streams are ignored by XBMC's player - meaning you don't see THOSE ads either.

These two things mean XBMC viewers are getting commercial-free content, which eats into the host sites' ad revenues. Those ad revenues help pay for the content and keeping the site running, which leads us to the second issue:


Videos accessed with a plug-in are still consuming bandwidth from the host site. I'm reasonably certain the sites log files or stat files would be able to suss out how many videos were viewed without accessing the web pages in which they are embedded, which in turn means those viewers didn't see the ads. If I were running a video content site and saw a ton of direct video stream accesses like that I'd shut them down too, as it represents money out of my pocket for bandwidth usage without being able to recoup it by selling ads, since those viewers won't SEE the ads.

Solutions? Well, so far the solution most sites have chosen is to block access to the videos. The simple way is to simply "break" the plug-in by renaming the folder structure on the site, or moving videos into a different folder. But that only works until someone updates the plug-in to deal with the new file structure. The other way is to move the videos to a server that requires authentication and set it up so it will only deliver requests made from/through the main web site. Make it encrypted authentication and simple IP-spoofing ain't gonna defeat it.

A good example of the latter appears to be Animefreak.tv who seem to have moved their videos onto a server requiring authentication. The XBMC plugin can still find all the videos, but since it isn't an authenticating requester, you can't actually PLAY any of them. At least that's what it looks like is going on when I checked my XBMC log file.

But I have to ask, wouldn't it be better for these sites to CAPTURE those extra viewers, rather than alienate them? Clearly to do so the content sites will need to come up with a better way of injecting ad content into the main video streams - a method that XBMC plug-ins can't thwart. The only way I can think of, though, is to actually make the ads PART of the main video, which could actually be done on the fly by concatenating the ad files and content video files into a new video file, then simply write/overwrite it to the filename linked on the web site (and therefore the only video file the scrapers/plug-ins can find). Server intensive? Yep, but you wouldn't necessarily have to do it every access, it could be done in batch processes at set advertising cycles (for example, sell ads to run for a month and only regenerate the files as part of monthly site maintenance).

Another possibility is for developers to strike deals with certain sites, or better yet for the site owners themselves to release the plug-ins. Wouldn't it be great if there was a plug-in "App Store" (actually I'd prefer it be more like "Android Marketplace") serving up OFFICIAL plug-ins for XBMC/Boxee/iConsole/MediaPortal/Plex/Voddler/OpenELEC.tv/ElementOS/Sabayon (and any other derivatives I've forgotten)?

XBMC (and friends) would also probably need to change - or at least add to - the way it uses plug-ins. Currently they're all Python scripts you can open up and hack to your heart's content. That's fine for open source developers, but is a terrible idea for the content providers. If you wanted to entice them into releasing their own plug-ins there would need to be some kind of plug-in architecture for compiled and likely encrypted plug-ins - otherwise people would simply hack the script to remove any features they didn't like (such as code that pushes advertising).

Granted, derivatives using closed-source code (such as Boxee) would have a major advantage in doing something like that, since the entire plug-in architecture could be based on closed-source code, and much like Apple does with iPhone/iPad apps, Boxee could tightly control the SDK and approval. Also, content sites and services could simply CHARGE for the plug-in application (and why not? People buy plug-ins for programs like Photoshop). That would help recoup some of the cost of the added bandwidth, or maybe they sell the plug-in app in lieu of injecting ads into the content streams.

Of course there would be nothing preventing the developers of the "closed-source" plugin architecture from releasing that (for free or for money) as an add-on for XBMC itself, thus giving those using the open-source media center access to and the ability to install closed-source plug-ins. Plug-ins SOLD in an app store. Of course there would be tons of plug-ins using closed-source code OTHER than what was just in the closed plug-in architecture and those would only work with Boxee itself, but "free" versions or "feature-limited" versions could be released for XBMC - which could even work to convince some users it was worth their while to switch to Boxee. I'm just thinking of what advantage(s) there would be to Boxee (or any other mixed-source and monetized derivative) in supporting the XBMC community as well. Since I'm talking about a closed-source add-on you also wouldn't have to be locked into just ONE provider. Each company could release their own add-on tied to their own store. Imagine having XBMC installed, but being able to buy content plug-ins from Boxee, Voddler, and NBC-Universal or Funimation through their individual app stores because you installed their commercial closed-source app store add-ons.

If I knew I could keep my XBMC set-up and get a closed-source add-on that would let me spend a few bucks in an "app store" for a Anime site plug-in endorsed/released by the site itself - thus guaranteeing I'd be able to actually watch the videos without worrying about it being blocked - that would be worth it to me. Kind of like if you could buy access to cable TV channels a-la-carte, and if the actual TV networks got in on it you actually COULD by on-demand access to their content. Recurring subscriptions that keep a plug-in functional or pay-per-view would also not be out of the question for a closed-source add-on architecture.

Initially I suspect there would be a tendency for each content supplier to only provide their content via their own app store - until they realized what most product manufacturers realized a long, long time ago: it's better to have your product in as many stores as possible. For example, I could see the BBC initially only selling its plug-in in its own app store, and only to UK residents. But then realize they could also be selling it in the app stores of their production and distribution partners worldwide. I mean, their only reason for geo-blocking access to Beeb content outside the UK is that only people in the UK are paying the "Television Tax" that funds BBC programming - so nobody outside the UK has any "right" to watch it. Unless, of course, the BBC can charge people outside the UK for access. Which they could do via a for-pay plug-in app. On my side of the pond I could see a Hulu plug-in being sold in the NBC, Fox, and ABC app stores as well as directly from the Hulu site itself. That's probably a more realistic notion given that Hulu recently announced they are introducing a "subscriber" level of programming. They're already monetizing, and a plug-in would just be an extension of that to XBMC-based media centers.

Anyway, I'm just brainstorming here. I'd love to see the content sites actively SUPPORTING something like XBMC, rather than actively blocking it. I think I'm like a lot of folks who'd be willing to PAY for on-demand access to content I actually want to see - and I believe there would be a lot less resistance to paying if you were buying access via your television as opposed to a web site (since many of us have become accustomed to the idea of paying for Cable or Satellite television it's not a big mental leap to pay or content via our media center interface).

Lastly, one of the reasons Cable and Satellite TV providers "bundle" packages of channels (rather than letting you buy them a-la-carte) is based on the theory that niche programming can only survive if it's bundled with popular programming. For example, it isn't believed there are enough viewers to support the "Quilting Channel" so it gets packaged with a dozen other channels. Well, niche programming is taken to the extreme online - and media centers like XBMC and Boxee pull their content form online without the overhead of cable or satellite broadcasting. Even so, content providers could STILL bundle programming. Going back to the Hulu subscription example, they are talking about a $10 fee for access to all kinds of different programming - popular and niche - on their site. That's as opposed to Apple's iTunes store where you pay a buck an episode for a specific TV show. There's honestly no reason a content provider - via a plug-in app store type thing - couldn't sell their content one, the other, or both ways.