[no slides yet]

One subscription .

Multiple products.

Scorm Supported
Theming Customisable
Branding Fixed
Embedded video Coming soon!
Price:$150 per ()
Please log in to subscribe

This product is part of a paid subscription that offers multiple products (details). Subscriptions are re-billed at the opted frequency until cancelled. Discounts are available for longer subscriptions.


The Media Scormification Ninja converts your streaming video or audio file to a SCORM package, so that you can get a completion after the user watches a certain amount of the media. It does not embed the file directly in the package - it still uses the same capabilities as supplied by the host when simply using their supplied Embed or Share codes, but in such a way as that it can track the amount of time that the media has played. Once you've set the place where you consider the media "watched" (we call a Marker), you can then download the ready-made Zip file which contains all the neccesary SCORM files.

Frequently asked stuff

Why would I want to track videos with SCORM?

Let's say your learners need to watch material in order to gain a Continuing Professional Development (CPD) credit. Their industries' rules state that they need to watch at least 45 minutes of a 1 hour video in order to gain 1 point.

The tool lets you do that. You can specify a video URL, set the completion requirement to 75%, and publish it as a SCORM package. You then just drop this into your LMS and start recording the completions.

We also record how much of the video has been watched. This has two benefits - for the learner it means they can exit the activity and come back another time and have the video pick back up where they left off; and for the trainer it means you can report on exactly how much of the media an individual is actually watching or listening to.

What SCORM version do you publish to?

We package using SCORM 1.2, as it is the most widely implemented version.

What are the video sizes?

It's generally recommended to use the Responsive size, as this means the video will scale to fit its container whilst maintaining a 16:9 aspect ratio.

Media sizes are taken from the default options for each of the players' embed options. These are:

  • YouTube - Small: 560px x 315px, Large: 853px x 480px, Responsive: 100% x 56.25%
  • Vimeo - Small: 500px x 281px, Large: 960px x 540px, Responsive: 100% x 56.25%
  • SoundCloud - Small: 100% x 166px (Standard layout), Large: 100% x 450px (Visual layout), Responsive: 100% x 56.25% (Visual layout)
  • BrightCove - Small: 512px x 288px, Large: 768px x 432px, Responsive: 100% x 56.25% (16:9)
Which Learning Management Systems do you support?

Any SCORM 1.2 compliant LMS, such as Moodle, Janison CLS,Course Cloud, Totara, Scorm Cloud, Blackboard, or hundreds of others.

What if a learner only watches some of the video and returns later to watch the rest?

They will resume the video or sound file at the exact moment they left the package when they return -and their completion will occur when they reach the desired percentage of media to be viewed.

What about privacy? I don’t want the whole world being able to access our videos.

You need to consult the options for your video host. For instance, some Vimeo accounts can restrict which domains are able to watch the video.

Do I need to download any software to use this app?

Since it is web based, it requires no installation or any plugins

How do I embed BrightCove video?

Ok, this one is a little involved. BrightCove has a concept called Players, which are skins for the various videos. Each video can be published with one or more skins, and you can set up multiple players. One of these is a HTML5 player, and in it you must also specify that the player use API's and HTML5 delivery. Please refer to the BrightCove documentation about how to do this.

Some brightcove player embed codes look like this: http://bcove.me/u4bjl68t - we can't support this format since it doesn't identify which player will be used (it *might* be one with an API enabled, but there isn't a way to know). So you have to use the javascript embed code, which you can find in the Quick Video Publish tool:

Why the Ninja?

Because it’s cool. We like ninjas.

Why only support streaming media?

BrightCove, YouTube, Vimeo and SoundCloud all work very hard to support the widest range of browsers and platforms for their content - its in their best interest. This means that your media will play in desktop, tablet and phone devices alike. We also use their standard players (not custom 'skins' or players) to ensure the maximum flexibility and compatibility. Conversely, embedding media means also embedding a range of possible players, skins, and script files to account for different devices, different browser capabilities, and so on (in most cases duplicating the media in multiple formats): it's much harder, more bug-prone, less customisable, and makes huge files which you then have to deal with.

Using streaming services is cheaper for you: It saves your servers bandwidth (data-transfer quota and costs per megabyte) from serving potentially large media files. Media is uploaded only once - but can be used in multiple courses and sites, in formats that are correct for the clients browsers or devices. If changes are made to the media, all courses and sites using that media will all automatically get the most current version of the material.

Under the hood

So you might be wondering what the innards of this thing actually are (how it works). It uses a minimal SCORM 1.2 based engine that, like most wrappers, expects the SCORM API to exist in a parent frame or window. It also has hand-coded listeners that tap the player API's that BrightCove, YouTube, Vimeo and SoundCloud expose on order to capture information about the media being played. These wrappers call SCORM commands as the media plays.

Click here for all the gory details
  1. onload:
    1. perform a scorm initialise (gets the api)
    2. read cmi.core.entry (set to ab-initio on first launch)
    3. read cmi.core.lesson_location (last position in video)
  2. on video start:
    1. set cmi.core.exit to "suspend"
    2. set cmi.core.lesson_status to "incomplete"
    3. perform a scorm commit
  3. periodically (as video is playing):
    1. set cmi.core.lesson_location to the number of seconds the video is up to. You can use this value to check how much a learner actually viewed through to.
    2. Check the required amount to be watched, and if it matches or is greater, perform a completion (see below).
  4. on pause, rebuffer, or end:
    1. Call LMS Commit to persist the changed data (e.g. seconds played)
  5. on completion:
    1. set cmi.core.exit to "" (blank string, effectively means "logout" according to the SCORM spec)
    2. set cmi.core.lesson_status to "completed"
    3. set cmi.core.score.min to "0"
    4. set cmi.core.score.max to "100"
    5. set cmi.core.score.raw to the required percentage
    6. perform a scorm commit
  6. onunload:
    1. perform a scorm commit
    2. perform a scorm finish

Effectively, this means the video is able to be resumed from the point the learner leaves, as lesson_location is being stored. It also means that the score required for completion in your LMS is the same percentage that needs to be watched.

Setting it up in a LMS

  • Make sure you are embedding this into a SCORM-compliant LMS.
  • Base your completion on the SCORE rather than a lesson_status (because the completed / passed status is buggy in a number of LMS's due to ambiguity in the SCORM specification).
  • Set the completion required score to the percentage watched that is set for the video (shown when you set a marker).

Contact us

We know you love Internet Explorer, but it just isn't supported anymore. Please use a modern browser instead.