xblock-video
xblock-video copied to clipboard
Universal Video XBlock with pluggable backend for many video hosting providers
xblock-video
The Video XBlock is for embedding videos hosted on different video platforms into your Open edX courses.
Supported video platforms:
- Brightcove
- Html5
- Vimeo
- Wistia
- Youtube
The idea of crowd-funded universal video-xblock was proposed by @natea (Appsembler) at the Open edX Conference 2016 at Stanford. It was well-received and several companies offered to sponsor the initial development.
Appsembler initially contracted with Raccoon Gang to build the wistia-xblock as a prototype (see the Github repo), and later created a new Video XBlock featuring universal pluggable interface with several video hosting providers support:
Appsembler and Raccoon Gang will be co-presenting a talk about the video-xblock at the Open edX Con 2017 in Madrid.
We welcome folks from the Open edX community to contribute additional video backends as well as report and fix issues.
Thanks to InterSystems and Open University for sponsoring the initial version of the Video XBlock!
Installation
sudo -sHu edxapp
source ~/edxapp_env
# Install VideoXBlock using pip
pip install --process-dependency-links -e "git+https://github.com/appsembler/xblock-video.git@dev#egg=video_xblock"
Enabling in Studio
You can enable the Video xblock in studio through the advanced settings:
-
From the main page of a specific course, click on Settings, Advanced Settings in the top menu.
-
Check for the Advanced Module List policy key, and add
"video_xblock"in the policy value list.
-
Click on the Save changes button.
Usage
To embed a video simply copy & paste its URL into a Video URL field.
Sample supported video URLs:
- Brightcove: https://studio.brightcove.com/products/videocloud/media/videos/12345678 or https://studio.brightcove.com/products/videos/12345678
- HTML5: https://example.com/video.mpeg|mp4|ogg|webm
- Vimeo: https://vimeo.com/abcd1234
- Wistia: https://raccoongang.wistia.com/medias/xmpqebzsya
- Youtube: https://www.youtube.com/watch?v=3_yD_cEKoCk and others.
Brightcove
To successfully use videos hosted on Brightcove Videocloud service one must
provide valid Brightcove account_id associated with the video. To find out
your account_id go to Videocloud studio -> Admin -> Account Information.
Connect to Brightcove Platform
-
Grab your BC_TOKEN from Brightcove Videocloud:
- Login to Videocloud Studio as you normally do.
- With any page in Studio open, open the developer tools for the browser, go to the Console, and paste in the following code:
var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = []; for (i = 0; i < cookiesArray.length; i++) { tmpArray = cookiesArray[i].split("="); if (tmpArray[0].indexOf('BC_TOKEN') > -1) { cookiesObj.BC_TOKEN = tmpArray[1]; } } window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);and press
<return>.- You should see a prompt appear that contains your BC_TOKEN.

-
Open Video XBlock settings, Advanced tab. Scroll down to
Video API Tokensection. -
Put
BC_TOKENtaken from Brightcvove intoClient Tokenfield. -
Click on
Connect to video platformbutton.
Enable content encryption and/or autoquality
Given you've connected XBlock to Brightcove platform and have a Video XBlock with a video from Brightcove. You can enablevideo content encryption and/or auto-quality.
To do so:
- Go to Advanced settings tab.
- Scroll down to
Brightcove content protectionsection. - Select
AutoqualityorAutoquality & Encryption. - Click
Re-transcode this videobutton.
Re-transcode is performed by Brightcove's Videocloud and takes few minutes. After it's done Brightcove Video tech info section will be updated.
Wistia
How to disable captions auto uploading in Wistia plugin
- Open your Project in Wistia Platform.
- Open video which you want to use with Video XBlock.
- Click the
Video Actionsdrop-down menu -> Select theCustomizemenu item. - On the left side of the screen find the
Captionsmenu item. - Turn the trigger to
Offto disable native captions display in the Video XBlock.

Set default values in config files
Now it is possible to indicate prepopulated values for any xblock field per site installation (see note below).
Sample default settings in /edx/app/edxapp/cms.env.json:
"XBLOCK_SETTINGS": {
"video_xblock": {
"threeplaymedia_apikey": "987654321",
"account_id": "1234567890"
}
}
Note: here above each provided key corresponds to SITE_NAME environment variable value.
Allowed Handouts file types
- images: .gif, .ico, .jpg, .jpeg, .png, .tif, .tiff, .bmp, .svg,
- documents: .pdf, .txt, .rtf, .csv,
- MSOffice: .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pub,
- openOffice: .odt, .ods, .odp,
- archives: .zip, .7z, .gzip, .tar,
- other: .html, .xml, .js, .sjson,
- transcripts: .srt, .vtt
Development
Prereqs: NodeJS >= 4.0
Install development tools and dependencies:
> make tools deps-test
Run quality checks:
> make quality
Run tests:
> make test
VideoXBlock is bundled with a set of XBlock-SDK Workbench scenarios. See workbench docs for details.
License
The code in this repository is licensed under the GPL v3 licence unless otherwise noted.
Please see LICENSE file for details.