Skip to content

[Refactor] Slash-n-Burn Video BuiltIn XBlock #539

@irfanuddinahmad

Description

@irfanuddinahmad

See parent epic: openedx/openedx-platform#37819


Rollout Position

Step 7 of 8 — High complexity (~11K LOC + large asset directory). The Video block has tight CMS integration (transcript handlers, public video sharing), a large xmodule/assets/video/ directory, and two entrypoints to remove (video and videoalpha).


Block Details

Toggle USE_EXTRACTED_VIDEO_BLOCK in openedx/envs/common.py
Shim class _BuiltInVideoBlock in xmodule/video_block/video_block.py
Entrypoints video = "xmodule.video_block:VideoBlock" and videoalpha = "xmodule.video_block:VideoBlock" in pyproject.toml

Checklist

Pre-condition

  • Review PRs merged into the built-in Video XBlock code in edx-platform after the extraction work was done — port any bug fixes or improvements to xblocks-contrib if not already there.
  • Confirm CMS transcript handlers and public video sharing feature are covered by the extracted block.

Steps (single PR)

  • Remove the toggle — delete USE_EXTRACTED_VIDEO_BLOCK from openedx/envs/common.py and all usages.
  • Remove the shim — delete _BuiltInVideoBlock class and the from xblocks_contrib.video import VideoBlock as _ExtractedVideoBlock import from xmodule/video_block/video_block.py.
  • Remove both entrypoints — delete video and videoalpha entries from pyproject.toml.
  • Remove remaining assets:
    • xmodule/video_block/ (entire directory: video_block.py, video_utils.py, video_xfields.py, __init__.py)
    • xmodule/assets/video/ (entire directory, 9K+ LOC of JS player assets)
    • xmodule/js/src/video/08_video_auto_advance_control.js
    • lms/templates/video.html, video_modal.html, public_video.html, public_video_share_embed.html
    • xmodule/static/css-builtin-blocks/VideoBlockDisplay.css
    • xmodule/static/css-builtin-blocks/VideoBlockEditor.css
    • Webpack entries VideoBlockDisplay / VideoBlockEditor in webpack.builtinblocks.config.js
  • Run smoke tests on the extracted Video block to verify nothing is broken, including transcript upload and public video sharing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions