Grand projects often start from humble beginnings. When the folks at Lullabot (news, site) decided to offer their training through streaming video, they had no idea of the can of worms they'd open, or where it would take them.
How It Happened
The whole thing started with a simple observation. Their virtual training was available in two forms: A packaged DVD or by download. As time went on, they started to notice that the download version was outselling the physical version ten to one.
Well, if your customers prefer a virtual product, you're smart to give them what they want. So Jeff Robbins, co-founder and CEO of Lullabot, says they began looking into how it might offer a third option. Why not stream courses on the Web? Better yet, why not offer some kind of subscription service, kind of a Netflix for Drupal (news, site) training?
As they started planning the site, they did their due diligence, examining the usual suspects such as Netflix, Lynda.com, YouTube and Hulu. Common patterns started to emerge, with all of these sites offering similar:
- Ways to discover videos
- Ways to find similar videos
- Conventions around watching videos
The more they tossed around ideas, the more they realized that they could do so much more with the idea of Drupal and video. So much so that they scrapped their architectural process and focused on generalizing the platform for different scenarios, such as:
- Paying to get access to an archive of videos, following the new Netflix model
- Eschewing a paywall and monetizing videos through advertising, following the old Hulu model
- Offering digital video rentals that expire, such as those offered through iTunes and Amazon
- Streaming videos to devices rather than to full computers, whether it's an Apple TV or a phone
The Back End
Setting up such a site for their own purposes was certainly doable. In fact, it's already done, in the form of Drupalize.Me. Creating a Drupal distribution, treating Drupal as more of a platform with all that it entails -- that's harder.
But they're doing it. Videola, while still in development, is on track to be the go-to distribution for Drupal-based IPTV (Internet Television). At least, that's the back-end component. You can't deliver onto devices without an app for each to receive the content, so those have to be written too.
Some of the important server-side functionality comes straight from Drupal, while for other issues the team needed to create custom modules. Features available in Videola include:
- Tagging and categorization
- Content blocks based on similar properties such as Views-based blocks showing related content
- Popularity algorithms so searches can be sorted by the most popular results, with modules such as Radioactivity giving you granular control over what types of actions make something more or less popular
- Session limiting for those who want to prevent the same user from logging in from more than one location simultaneously, though to do this for video it's necessary to add session checks that run in the background, because Drupal normally only checks at page load time (videos can be open for hours)
- User queues, following the Netflix concept
- Handling subscription access, including those thorny issues of recurring payments
- Creating different types of users who can access different sets of videos, through permissions
- Integration with Content Delivery Networks (CDNs) such as Akamai and BrightCove, so your videos are streamed from servers close to the users requesting them and you can spread the load for popular videos so no one experiences poor service
- Pluggable video handling so you can choose whatever back-end solution you want
- Adaptive bitrate streaming so if the user has limited bandwidth on their mobile device, the server will adjust what it sends
- Video playback analytics and user history, which are important to users who want to remember what they've watched, and to hosts who want to do silly things like pay royalties
- Easy administrative interfaces
- A set of best practices for guidance, because the Videola team has learned a lot of lessons the hard way
The Front End
One aspect Robbins emphasized is the growing marriage of mobile devices and IPTV. Both technologies, he says, are fairly similar and use many of the same drivers. For example, IPTV runs on Apple's iOS, as does the iPad and the iPhone. Google TV runs on Android, as well.
He discussed the fact that mobile apps offer special challenges due to the limited screen real estate. Digging through a site to look for interesting videos could prove challenging to do attractively. An ideal app for mobile users might focus on the ability to navigate the user's queue more easily. People would watch videos while they were out and about, taken from their queue, and add more items when they have access to a computer.
What Needs to Be Done
At this point, they're dealing with challenges that affect most who want to take a homegrown solution and expand it into a more general product: in this case, a Drupal distribution. They also have to decide if they want to release Videola as it is now, on Drupal 6, because they needed e-commerce and that functionality just wasn't going to be ready for Drupal 7 in time for Drupalize.Me. If they decide on Drupal 7, Videola will require re-engineering.
There's also the issue of funding this amount of work. This point came up in multiple talks throughout Drupalcon 2011: Creating Drupal distributions is expensive. Robbins points to the fact that Acquia's new stack installer appears to be stripped-down compared with its previous version for Drupal 6, and that Development Seed (news, site) sold off its OpenAtrium (news, site) distribution as examples of this problem. In Lullabot's case, he says it needs to decide on a business model around Videola to support the work that remains.
In the meantime, with so many companies and groups focusing on Drupal distributions, that experience should feed back into the core Drupal project to help drive architecture and other issues to make the process easier. And soon, maybe this year, someone might launch the next Netflix on Drupal.