Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ADR#2: Gain Feature parity using Video.js functionality TBD

NFR: [DRAFT] New video player architecture (React-based Video Player)

Frontend for video player (React component to wrap Video.js)

...

Courses for beta testing.
http://edx.org
Under feature flag

Video Bumper -> https://github.com/openedx/edx-platform/blob/master/xmodule/video_block/bumper_utils.py
FEATURES.get('ENABLE_VIDEO_BUMPER')

...

https://github.com/openedx/edx-platform/blob/master/xmodule/video_block/video_utils.py#L39C5-L39C2

Video Player Backend

Current installation process for video block:
Included in setup.py https://github.com/openedx/edx-platform/blob/master/setup.py#L36

Transcripts Processing

Goal:

Video.js uses VTT files for transcripts/text-tracking, while our transcript files are currently stored in SJSON format. Therefore, my main concern is to discuss and gain insights on how we can tackle the problem of converting SJSON files to VTT files.

Background:

Existing transcripts utils for video xBlock include conversion of sjson to srt.:

https://github.com/openedx/edx-platform/blob/master/xmodule/video_block/transcripts_utils.py Current installation process for video block:
Included in setup.py

Ideas for transcripts transformation:

RG/Appsembler Video-block approach

All this conversion are happening in the Mixin class - https://github.com/raccoongang/xblock-video/blob/master/video_xblock/mixins.py#L64

Only SRT to VTT conversion is possible easily in Python.

Libs:

https://pypi.org/project/webvtt-py/

https://github.com/sandflow/ttconv

https://pypi.org/project/pywebvtt/

Existing utilities and python libraries can be taken as the base, and enhance it to use as utility library for example, so it can be used in several places in Open edX

it can be placed in https://github.com/openedx/edx-platform/blob/master

...

/cms/djangoapps/contentstore/video_utils.py or custom plugin extension to edx-platform

Transform transcripts on Client side

Status
colourRed
titleNeed Investigation

UI for transcripts

Goal:

We should implement the ability to display the video transcript alongside the video, similar to our old LMS video player.

...

Enable right sidebar with transcripts for VideoJS player

There are plenty of videojs plugins written in vanilla JS that can be enabled
such as this for video player
https://github.com/raccoongang/xblock-video/blob/master/video_xblock/static/js/videojs/videojs-transcript.js
https://github.com/walsh9/videojs-transcript/tree/master
https://github.com/7Ds7/videojs-vjstranscribe

It was decided to investigate if any of this plugins are compatible with the latest version, and if not, fork the code and include it into xBlock implementation

Public sharing

Additional feature for sharing preview publicly, allowing users to watch video via iframe with branding applied.

Default video controls

...

Always enabled:

  • Play / Pause

  • Time / Duration

  • Speed option

  • Sound

  • Full screen

Optional:

  • Closed captions

  • Transcripts

  • Handouts below the video

Events support

Video block hooks:

save_user_state

Default video controls

...

Optional Features (waffles and Flags) in Old Video block

...