feat: AI-generated player content + regrouped Video Player options#10
Merged
Conversation
Add an "AI-Generated Content" section to the Widget → Video Player op that drives the player's on-demand AI generation (no caption files to author): - Generate Captions — auto-transcript shown as toggleable captions in the video's spoken language. Captions/title/description/chapters are unsigned actions enabled by default on most accounts, so they work with no setup. - Subtitle Languages — optional, comma-separated target codes for AI-translated subtitle tracks. Empty by default (original-language captions only), so the Google-Translate-add-on dependency is opt-in and never triggered out of the box. - Generate Title / Description / Chapters — AI metadata + chapter markers, with the chapters button gated on (and grouped under) Generate Chapters so it can't surface a button with no chapters source. These keys are emitted into player_config (the JS player.source() config), not the iframe embed URL, matching how the player exposes them. Rework the Video Player UI so the 19 controls aren't a flat wall. "Advanced Player Options" is removed; controls are grouped by intent into collapsible collections, with the source essentials kept top-level: Public ID · Type · Transformation · Poster · Source Types (top-level) ▸ Playback Autoplay · Muted · Loop · Plays Inline · Show Controls · Big Play Button ▸ Size & Layout Fluid · Width · Height · Aspect Ratio · Crop Mode ▸ AI-Generated Content Captions (+Label, Languages) · Title · Description · Chapters (+Button) ▸ Appearance Skin · Base/Accent/Text Color · Font Face ▸ Player Features Floating · HDR · Picture-in-Picture · Seek Thumbnails Also: Poster promoted to a top-level source essential (was a flat field); Source Types description rewritten to lead with plain meaning + an HLS/MP4 fallback tip while keeping the format-pin caveat; README documents the AI options with a Google Translate add-on setup CTA. Backward compatibility: the only version published to npm is 0.0.9, which has no Video Player operation at all — so regrouping these fields into collections (which renames their parameter keys) cannot break any saved workflow, since no released version ever exposed them. The backward-compatibility-check reports 0 breaking changes against the 0.0.9 baseline; all new params register as additive. This holds only while 0.0.9 remains the latest published version; once a release that ships the flat Video Player fields is out, further regrouping would require a typeVersion bump. Bumps version to 0.2.0 (additive feature). 234 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sveta-slepner
approved these changes
Jun 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two changes to the Widget → Video Player operation:
AI-Generated Content
A new collapsible section on the node:
These are emitted into
player_config(the JSplayer.source()config), not the iframe embed URL — matching how the player exposes them.Out-of-the-box safety
{}— with nothing added, the node emits zero AI keys and behaves exactly as before. Fully opt-in.Subtitle Languagesis empty, so a user must deliberately enter codes. The README documents a Google Translate add-on setup CTA for when they do.New Video Player layout
Also in this PR:
sourceTypesproperty.Backward compatibility
0.0.9being the currently active (latest published) npm version.The only version ever published to npm is
0.0.9, which has no Video Player operation at all. Regrouping these fields into collections renames their parameter keys — but since no released version ever exposed Video Player fields, no saved workflow can reference them, so nothing breaks.The
backward-compatibility-checkreports 0 breaking changes against the0.0.9baseline; every new/moved param registers as additive.Bumps version to
0.2.0(additive feature).Testing
npm test— 234 tests pass (widget suite extended for the new AI fields, the nested-collection reads, and the chapters-button gating).tsc --noEmit,eslint,npm run build— clean.npm run backward-compatibility-check— 0 breaking changes.🤖 Generated with Claude Code