Deliver Videos Securely in Open edX Courses with the New Video XBlock
TL;DR: In partnership with our sponsors, InterSystems and Open University, along with the team at Raccoon Gang, we are excited to announce the beta release of the new Video XBlock, an extension to Open edX which lets you securely deliver video content to your learners via web and mobile. Want to partner up and help develop new Open edX features? Get in touch and learn more about our Sponsored Feature Development program.
If you’ve ever wanted to securely deliver video content to both your desktop and mobile learners, then you might already know that the default functionality provided by Open edX is lacking in this area. As I mentioned in my previous post about video XBlocks, this can be a challenge, especially in a corporate learning environment.
We are excited to announce the official beta release of the Video XBlock, an extension to Open edX which allows you to securely deliver video content via web and mobile.
Here’s a short video that shows off some of the functionality:
Why do we need a new video XBlock?
The default video module that comes with Open edX only supports YouTube and URLs to serve raw video files. The inability to deliver video content securely with Open edX’s default video module is particularly a problem for companies who are sharing their intellectual property in courses. In the past, you had three options for delivering video, and none of these options were ideal:
This has been the traditional way of serving up video in Open edX because the built-in video module supports YouTube out-of-the-box. You simply paste in the YouTube URL, and Open edX does the rest, including pulling in subtitles from YouTube.
The problem: Due to YouTube’s advertising model, you can’t really deliver videos securely. The best you can do is make them “unlisted,” but they aren’t really protected. It’s still possible for the videos to be shared with outside parties who aren’t supposed to have access.
2) Amazon S3
An alternative to uploading your videos to YouTube is to upload them to Amazon S3.
The problem: With the S3 option, you could only serve up one rendition of the video file. This meant that you’d either need to optimize for mobile users by offering lower quality video files while sacrificing ideal viewing for desktop users, or you’d need to optimize for desktop users and offer a higher quality video file, while sacrificing ideal viewing for mobile users.
As an aside, if you wanted to serve downloadable videos for offline viewing on the mobile app, then you would have had to upload the video files to S3. Now with the latest version of the mobile app, it’s required for the videos to be on S3 for both streaming and downloading. Serving video content to mobile app users via YouTube is no longer supported.
3) Use the HTML embed code from your video hosting provider
All the major video hosting providers (Brightcove, Wistia, Vimeo, Ooyala) can give you an HTML embed code for the video that you want to use in your online course. When using Open edX’s raw HTML component, you can paste in this embed code and Open edX will render the provider’s native video player.
These native video players have the advantage that they will adapt to the bandwidth and screen size of the client. If a mobile user on a slow connection is viewing the video, the players will negotiate with the client to serve up an appropriately-sized video and avoid buffering issues. Similarly, if they detect a high-speed bandwidth connection, they will serve up a high-quality video to the client.
The problem: With this approach, you’d potentially end up with dozens or hundreds of these unique embeds sprinkled throughout the course. If you wanted to change the properties of all the videos, you would have to manually update the embed code of each video in your course.
— Appsembler (@appsembler) May 25, 2017
Sponsoring the development of new Open edX features
You can imagine that after being asked repeatedly by our customers about how to securely deliver video content and serve mobile users, while not sacrificing video quality for web users, we realized that there had to be a better alternative to the limitations of the above options.
This led to a broader discussion with some of our customers, who expressed their need for a better video solution. The end result was a plan to develop a new video XBlock that would have feature parity with the existing video module that’s built-in to Open edX, while addressing these particular gaps around security and video quality.
Rather than structuring the development of the Video XBlock as a work-for-hire to be delivered to a single customer, we structured it as a sponsored feature that would not only be co-funded by multiple customers, but would also be shared with the broader community as an open-source project.
The advantage of this sponsored model for our customers is that by cost-sharing, no one customer bears the brunt of funding all the development, and by co-creating the solution with other customers, there are multiple stakeholders who share in the vision. This increases the chances that the project will live on with a healthy community of contributors.
Our long-time customer InterSystems offered to be the first sponsor, and later our customer Open University also joined as a sponsor.
When we looked around for a development partner to work with, the choice was clear in Raccoon Gang. Since they were the original creators of the video module for Open edX, they were already familiar with all the idiosyncrasies that go along with delivering video in Open edX. They’ve been an excellent partner and we want to thank Peter and his team for all the fine work they’ve done to get the Video XBlock to where it is today.
How the new Video XBlock is different
The main difference between the Video XBlock and Open edX’s built-in video module is that the new Video XBlock allows you to use multiple video providers such as Brightcove, Wistia, Vimeo and HTML5 video files. Unlike the built-in video module which only supports YouTube videos, the new Video XBlock lets you copy/paste the URL of your videos hosted on other video hosting providers.
In a similar fashion to the video module’s handling of YouTube URLs, it will automatically figure out from the URL which video you want to embed, and render the appropriate player from that video hosting provider.
Key features of the new Video XBlock:
- Secure video hosting using Brightcove, Wistia* and Vimeo* , which can be added simply by pasting the URL
- Video encryption using Brightcove
- Interactive transcript and multi-lingual captions including downloadable transcripts
- Speed up / slow down controls
- Set start / end time
- Downloadable handouts
- 3PlayMedia integration to fetch subtitles that are stored at 3PlayMedia
- Secure video content by providing Brightcove credentials (when authoring)
- Ability to specify a particular Brightcove player ID on a per-block basis.
- “Pluggable” backend meaning that additional video hosting providers can be added
- Upload subtitle files or retrieve default ones
* Still under development — see below for ways you can get involved!
What’s next for the Video XBlock
While this beta release is not yet recommended for production use, we welcome testers to try it out in the demo site, give us feedback, and report bugs. GitHub repo. We still need some additional sponsors to push it towards a final release.
While learners can use our responsive theme to view the course content on a mobile browser, we’d like to add support in the iOS and Android mobile apps to render the Video XBlock’s video player within the mobile apps rather than taking you to the web browser to view them. If this is something you’d like to see, please see below for sponsorship opportunities!
The Brightcove support is the most mature because that is what our customer InterSystems uses, and while there’s preliminary support for Wistia and Vimeo, the feature set is not as complete as with Brightcove. We’d also like to add support for more providers such as Kaltura and Ooyala.
Where can you learn more
We welcome you to visit the GitHub page which has a README describing the XBlock in more detail. If you want to install it on your own Open edX site, we’ve provided instructions for doing that as well.
Peter (from Raccoon Gang) and I also gave a lightning talk at the Open edX Conference in Madrid to introduce the new Video XBlock. Click below to watch the video.
How can you get involved
Whether you are a course creator, a developer, a potential sponsor and someone who works at edX Inc, there are ways for you to get involved in the Video XBlock project!
We’re very excited for you to try out the Video XBlock yourself and share your feedback. You can visit the demo site and try it out for yourself! View the README for instructions on how to add the Video XBlock to your course.
You can submit bug reports to the GitHub issue tracker, and feature requests can also be submitted to the Github issue tracker.
If you’d like to contribute bug fixes or new features, please follow the instructions in the README to get a local running copy on your computer. You can use the Github issue tracker to report bugs and submit pull requests via Github. If you’re new to XBlock development, we recommend that you start with the XBlock tutorial to get familiar with the basics.
If you’d like to see the Video XBlock reach a final production-ready release faster, we strongly encourage you to become a sponsor. You’ll be able to influence the future direction of the product, help with prioritizing features, and be recognized as a contributor in the AUTHORS file, on this blog and within the wider community of Open edX developers. If you have any questions, drop them into the comments section below!
If anyone from edX is reading this, we’d love to have a discussion about how to incorporate the Video XBlock into the core edx-platform, to make these capabilities available to everyone using Open edX. Let’s work together to knock down the technical debt in the existing Video module!
We think that Open edX will be more widely adopted if organizations don’t have to choose between securing their videos or delivering a high quality video experience to both desktop and mobile users. YouTube may be fine for a MOOC site, but the vast majority of organizations want to secure their video content and not make it publicly available.