Skip to content

[DEPR]: Multi-speed YouTube video links in VideoBlock #36888

Open
@ormsbee

Description

@ormsbee

RFC Start Date

2025-06-10

Target Plan Accepted Date

2025-06-24

Target Transition Unblocked Date

2025-06-24

Earliest Breaking Changes Unblocked Date

2025-07-24

Earliest Open edX Named Release with Breaking Changes

Ulmo - 2025-10

Rationale

The VideoBlock is really complex relative to the amount of functionality that it delivers, and a big part of that is the sheer number of different permutations of video content that it needs to handle. This would reduce that complexity while not actually harming any real-world usage.

Removal

The following fields were created near the beginning of the project, to allow video playback to happen at multiple speeds:

youtube_id_0_75 = String(
help=_("Optional, for older browsers: the YouTube ID for the .75x speed video."),
display_name=_("YouTube ID for .75x speed"),
scope=Scope.settings,
default=""
)
youtube_id_1_25 = String(
help=_("Optional, for older browsers: the YouTube ID for the 1.25x speed video."),
display_name=_("YouTube ID for 1.25x speed"),
scope=Scope.settings,
default=""
)
youtube_id_1_5 = String(
help=_("Optional, for older browsers: the YouTube ID for the 1.5x speed video."),
display_name=_("YouTube ID for 1.5x speed"),
scope=Scope.settings,
default=""
)

The following fields and any code handling them would be removed:

  • youtube_id_0_75
  • youtube_id_1_25
  • youtube_id_1_5

Any functions specifically built to handle these fields should also be removed, like youtube_speed_dict:

def youtube_speed_dict(item):
"""
Returns {speed: youtube_ids, ...} dict for existing youtube_ids
"""
yt_ids = [item.youtube_id_0_75, item.youtube_id_1_0, item.youtube_id_1_25, item.youtube_id_1_5]
yt_speeds = [0.75, 1.00, 1.25, 1.50]
youtube_ids = {p[0]: p[1] for p in zip(yt_ids, yt_speeds) if p[0]}
return youtube_ids

This allowed authors to specify entirely different YouTube videos for 0.75x, 1.25x and 1.5x speeds. The idea was to offer faster speeds for students to more efficiently view videos and offer the slower speed to aid people who were not taking the original prototype in their native language.

All of this is completely redundant now, because YouTube has long supported variable speed control in their embedded player. Nobody should be uploading separate speed YouTube videos.

Replacement

YouTube-native speed controls should still work when just specifying the youtube_id_1_0 field, and we should verify that this remains completely functional after this code is removed.

Deprecation

No response

Migration

No response

Additional Info

No response

Task List

No response

Task List

No response

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21

Type

No type

Projects

Status

Breaking Changes Unblocked

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions