openedx / openedx/openedx-platform
Improve video integration (VideoBlock, video_config, edx-val, edx-platform)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
We created the video_config service in edx-platform as part of the XBlock Extraction. The new service was a quick way of abstracting out the edx-platform-specific parts of VideoBlock, allowing us to extract the VideoBlock to a new repo.
But video_config is not a perfect interface, for a few reasons:
- It takes the entire VideoBlock as a parameter to some methods, and modifies the fields on the VideoBlock, which breaks the abstraction.
- It's more than just config: it's transcripts too.
- It's somewhat redundant/overlapping with edx-val.
- It handles Course videos and Library V2 videos in questionably different ways. For example, edx-val is used for Course transcripts but not for library transcripts. Why's that?
For this ticket, suggest refactorings to VideoBlock, video_config, edx-val, and/or the rest of edx-platform that would make the interface cleaner. Things to keep in mind:
- do we want to invest in edx-val or deprecate it in favor of something else?
- do we want videos to work without being tied to an xblock?
- do we want to start fresh with a new video xblock?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the VideoBlock, video_config, and edx-val interfaces and tracing how edx-platform handles Course and Library V2 videos, transcripts, and configuration. Done means documenting and proposing a cleaner boundary among these components, including a decision about edx-val, XBlock coupling, and whether a new video XBlock is needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100