Enable Question-Sets for video content

Introduction

Interactive Video is nothing but videos embedded with Question-sets. It is made to serve the purpose that the user will understand part of the video and answer the questions based on it. The following document explains the design and implementation to enable interactions in the video.

https://project-sunbird.atlassian.net/browse/SB-30516

Key Design Problems:

  1. How to show Question-Sets on top of the video ?

  2. Ensure proper view of the video and its functionalities along with the functionality of the Question-Sets.

Design:

Solution:

We are using the existing Quml-Player library to implement the Question-Sets on top of the Video along with the Video player library.

primaryCategory:  Interactive Video Question Set

  • In the API response there is ‘result’ , which has ‘content’ that contains ‘interceptionType’ and ‘interceptionPoints’. The ‘interceptionPoints’ contains ‘items’ which is an array of objects containing the Question-Set information. The number of objects is the number of Question-Sets.

"content": { ... "interceptionType": "Timestamp", "interceptionPoints": { "items": [ { "type": "QuestionSet", "interceptionPoint": 2, "identifier": "do_2135403630343946241444" }, { "type": "QuestionSet", "interceptionPoint": 4, "identifier": "do_2135403696701276161449" } ] }, ... }
  • Each object in ‘items’ has ‘type’ as ‘QuestionSet’ , an ‘interceptionPoint’ in seconds at which it appears in the video and ‘identifier’ which is the do_id of the Question-Set.

Sample config link is sunbird-video-player/data.ts at release-5.0.0 · project-sunbird/sunbird-video-player 

  • When ‘interceptionPoints’ are not available i.e. no Question-Sets are configured or ‘interceptionPoints’ is an empty object there will be no Question-Set markers on the Progress Bar will be visible and it will be treated as a normal video content.

  • Default behavior(not enabling Question-Sets)

    • In this case , there is no need to configure any Question-Sets; the player will just show the video without any Question-Sets. (‘interceptionPoints’ is an empty object)

"content": { ... "interceptionPoints": { }, ... }
  • Custom changes(enabling Question-Sets)

    • Here the Question-Sets are configured through the creation portal and the ‘interceptionPoints’ contains the required data.

"content": { ... "interceptionType": "Timestamp", "interceptionPoints": { "items": [ { "type": "QuestionSet", "interceptionPoint": 2, "identifier": "do_2135403630343946241444" }, { "type": "QuestionSet", "interceptionPoint": 4, "identifier": "do_2135403696701276161449" } ] }, ... }

 

Design Document 

Screenshots

Player Events

Telemetry Events

Interact event:

Impression Event:

 

Watch video on how to create an Interactive Video content on Portal here.