by Blake Hall on June 14, 2011 // Short URL

Introducing Videola

Open Source IPTV with Ecommerce: alpha ready for testing

Lullabot is happy to announce the alpha release of Videola, the Drupal-based IPTV platform that we’ve been building for Drupalize.Me.

We’ve had a lot of inquiries about this enterprise-level video management system and video delivery platform, so we’re excited to finally make Videola available. That said, this is the alpha version, and we invite you to test it, submit issues, and help contribute to the next version.

We're currently hosting the Videola codebase on Github. For those of you developers who can't wait to dive in, the easiest way to get started (assuming you have relatively recent versions of drush, drush make and git installed) is:

drush make videola

This will download Drupal, the Videola installation profile, and all the other required modules to a videola directory on your machine.

Videola in a Nutshell

While planning Drupalize.Me, we knew we wanted to build a flexible, general use video platform that we could turn into a distribution. As a baseline we wanted it to be capable of both e-commerce and IPTV allowing paid-access or free-access video websites which can serve video to the desktop, mobile, or television-based devices.

Our goal is that using the distribution, you could create your own Netflix On-Demand style (subscription), Hulu style (ad supported), or Blockbuster / Amazon style (rental) streaming video websites with your own video content. Videola is currently oriented toward curated, editorial, some-to-many video sites – as opposed to many-to-many user generated content sites such as YouTube. We're also building IPTV layers in the form of apps for mobile and television-based devices such as the Roku player.

Here's a rundown of where we are now:

Videola does:

  • Ecommerce setup for recurring subscription payments
  • ImageCache presets to resize your video stills
  • Video node types
  • Video views and organization - by date (recent first), by popularity, by category
  • Per-user Video queue
  • Ejector Seat and Session Limit modules can be used to prevent account sharing

Technologies we're using:

  • Drupal 6 - Yes, we will eventually move to Drupal 7. You're welcome to help with this effort.
  • Ubercart
  • Local video hosting - Videola supports pluggable video backends, so support for Ooyala, Brightcove, etc is possible (with more examples forthcoming)

Videola doesn't (yet) do:

  • CDN integration
  • Pay-per-view access
  • On-demand purchasing
  • Support in-stream advertising and branding bumpers

How We Created Videola

To get Videola off the ground, three members of the Drupalize.Me team: Joe, Michelle and myself, got together with Matt and Jeff at the Lullabot Activity Center™ in Providence for a three day sprint. We started by coming up with a list of basic features we needed to include in our first alpha release and setting up a drush make file.

Bots hard at work

Features allowed us to export quite a bit of the basic configuration needed for Videola to code. The Videola Core feature contains the Imagecache presets used for video stills, a global context, and the popular videos view. This feature also relies on two new custom modules (already available on github, soon to be released on Ejector Seat and Session Limit. In combination, they are used to ensure that each user on the site is only allowed to have one active session at any given time and automatically logs the user out if a new session is started from a different browser/location.

The Videola Video feature provides the most important content type for the site. In this alpha release, the included video content type contains fields for stills, video length, chapter markers -- and most important -- a file upload for the video file itself. Videola is designed so that this feature is swappable, provided the replacement feature implements a content type with the machine name "video." Future versions of Videola may include features that support streaming providers such as Ooyala or Brightcove. This module also provides a couple of hooks so that the total number of hours or minutes of video on the site can be used as an input filter tag, and another hook to alter jwplayer configuration.

Three other features provide the bulk of the video display and organization. The Videola Browser feature captures the taxonomy used to categorize videos and the views used to display them. The Videola Dashboard feature provides both anonymous and authenticated front page views. The Videola Queue feature provides a flag users can use to place videos in their queue, which is prominently displayed on the dashboard.
Videola video browse view

The one major piece of Videola that couldn't be nicely captured using Features is Ubercart configuration. The Videola Ubercart feature is equal parts Strongarm settings and install hook setup code. As part of the installation process for the Ubercart feature, a subscriber role is set up, a subscription product class is created along with a Membership node, its attributes and options.
Membership subscription node

An extra configuration screen during the install process allows a custom price to be set for monthly, bi-annual, and annual subscriptions.

Install profile configuration screen

Your Turn

We've tried to provide solid documentation for what's what in Videola in the README and INSTALL files that come with the profile. This includes directions for getting started with Drush make, or the list of modules you'll need to get started. For now, we’ll be using the issue tracker within GitHub to manage issues and handle pull requests. If you've got questions, bugs, or you'd like to contribute to the project with fixes, suggestions, and code for new features, we'd love your involvement! Just jump in with issues, fixes, and ideas, documentation. We'd look forward to hearing from you.

For more information, check out and let us know what you think!

Blake Hall

Senior Developer

Want Blake Hall to speak at your event? Contact us with the details and we’ll be in touch soon.



Drush command didn't work

I couldn't get the command to work properly. I get an "unable to clone" error.

At first I thought there was a typo and that the site should be "" however, even with that change, I get an error "You need to specify and API version to two in your make file."

I'm using drush 4.4 and make 6.x-2.2


Luke McCormick

"unable to clone" error.

I ran into the "unable to clone" error zoonunit noticed; I was able to get past it by adding the line "projects[] = drupal" near the beginning of the videola.make file, like this:

core = 6.x
api = 2
projects[] = drupal

This enabled me to get further, but it kept dying when it tried to download "ejectorseat" from github:

Unable to clone ejectorseat from git:// [error]

I commented out the four ejector seat lines in videola.make, and then was able to download videola successfully with this command:

drush make videola.make videola

It sounds like I can live without the functionality provided by Ejector Seat for at least a little while, based on the description here:

I'm working on a video site, and I'm interested to see if Videola is a useful place to start.



Git installed?

Do you have Git installed? I'm guessing that Drush would spit out an error like this if Git wasn't working.


Chris Burgess

Git version

I can confirm that I see this error with Git 1.5.x (Debian), while with Git 1.7.x the installer works correctly for me.

If I hit this error, I end up with a Drupal install and an empty profiles/videola folder.

Would love to hear more about the pluggable video backend aspect; considering adding support for Kaltura hosting service as we have customers using that already.

I'm @grobot on, Twitter if you want to get in touch.



Just for clarity...

On my server I've installed this profile with drush 4.4 (and a dev checkout), drush make 2.2, and git 1.7.4.



Statistics Advanced

Great functionality! You are rocking this world :)
I see you are using Statistics Advanced module (at least it is included in the Drush make script). From my experience it causes huge performance issues as it requires you to have accesslog enabled and it checks this accesslog DB table on every page request (to power the "Only track 'unique' views of content" feature). These SELECTs were a huge performance hit for the Forums site at (not saying about the INSERTs into accesslog if you have it enabled).
What are you using Statistics Advanced for? I would recommend to check on alternative ways to get the same stats like Google Analytics and Google Analytics API module.



Thanks for the info!

Thanks for the info! This is actually a legacy module which we were using before we discovered the awesome Radioactivity module. We're removing it from Videola as I write this.

Also, just a reminder to people reading this in the future: please post bugs, suggestions, etc, in the issue tracker. Our attention to the comments on this article will drift as the article becomes older.



Aegir not supported?

This "extra configuration screen during the install process" makes it broken in Aegir, as it is not smart enough (yet) to submit any extra forms on install.

I hope it is OK to remove this from the install and make it some standard, post-install configuration option/requirement?



Configuration form during install

The extra form during the installation process sets the value for the monthly, bi-annual, and annual membership product attributes. Take a look at the function videola_profile_form_submit() in videola.profile if you'll need to manually run the code after install. It's also be possible to edit the product price attributes via the UI after install.


Nicholas Roberts

Aegir Ecology

Thanks for checking this Grace. I'd be interested in the fix for Aegir, too. Obviously in-site video storage is going to be interesting for VPS style hosting, might be better in the cloud..



Transcoding supported?

Very interesting project. Do you support (or plan to do) and transcoding services/tools? I might have over-read it, but are you actually using the video module?




Great work!

Would be really good to get this on the marvellous omega8cc Aegir hosting platform!



How to install Videola??? I

How to install Videola???
I tested all installations. All variants contain errors: some modules have another versions, can't find chaptermarkers and ejectorseat etc.

When I'm trying to install using command line:
I'm receiving the error message:

Notice: Undefined index: chaptermarkers in D:\xampp\htdocs\drupal\profiles\videola\libraries\profiler\ on line 34

Notice: Trying to get property of non-object in D:\xampp\htdocs\drupal\profiles\videola\libraries\profiler\ on line 34

Notice: Undefined index: ejectorseat in D:\xampp\htdocs\drupal\profiles\videola\libraries\profiler\ on line 34

Notice: Trying to get property of non-object in D:\xampp\htdocs\drupal\profiles\videola\libraries\profiler\ on line 34

Any ideas?




thank you for this solution
Im intressted on VIDEOLA, BUT..
I would like to learn it in localhost. is it possible?
Do I must install Drupal before?
I know what is php and mysql but what is drush?
Is there any video tutorial to explain how we can install and use the Videola plateform.
Coulf you excuse my english because I m frensh..?



It's completely possible to

It's completely possible to set up Videola on a local installation. Videola is still rather new, so previous Drupal experience is very helpful.

Drush is a command-line set of scripts for managing Drupal. Using Drush you can run commands to download, set up, and configure Drupal.

Drush Make is similar to the "make" command used to compile software on Unix platforms. It takes a series of commands and uses them to build a Drupal-based site; in this case, Videola.



This worked for me: git clone

This worked for me:
git clone git:// videola
cd videola/profiles/
git clone git:// videola
cd videola
drush make --no-core videola.make



hi all

I trying install videola. but I have error that Required modules:
Missing modules: Chaptermarkers
I can't found this module anywhere. Help me