addedInput schema / properties / caption / description
Added value: +"Post caption, not burned in (max 300 chars)"
changedInput schema / properties / emphasis / description
Previous value: -"Words the captions emphasise"New value: +"Words the captions colour (max 30); replaces the list"
addedInput schema / properties / endSec / description
Added value: +"New end, seconds from the start of the source; clip must stay ≥3 s"
addedInput schema / properties / hashtags / description
Added value: +"Hashtags without # (max 20); replaces the list"
addedInput schema / properties / hook / description
Added value: +"On-screen opening line (max 80 chars)"
addedInput schema / properties / id / description
Added value: +"Clip id (from get_project or search_clips)"
changedInput schema / properties / layoutOverride / anyOf
Previous value: -[
- {
- "enum": [
- "auto",
- "face",
- "split",
- "stack",
- "fit",
- "center",
- "none"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "Framing: auto (detect per section), face (follow the speaker), split (two speakers stacked), stack (full frame over a face crop), fit (whole frame on blur), center (static crop), none (original aspect)",
+ "enum": [
+ "auto",
+ "face",
+ "split",
+ "stack",
+ "fit",
+ "center",
+ "none"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
changedInput schema / properties / layoutSections / anyOf
Previous value: -[
- {
- "items": {
- "properties": {
- "end": {
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "enum": [
- "auto",
- "face",
- "split",
- "stack",
- "fit",
- "center"
- ],
- "type": "string"
- },
- "offsetX": {
- "maximum": 0.5,
- "minimum": -0.5,
- "type": "number"
- },
- "start": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "start",
- "end",
- "mode"
- ],
- "type": "object"
- },
- "maxItems": 50,
- "type": "array"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "items": {
+ "properties": {
+ "end": {
+ "description": "Section end, seconds from the start of the source video",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "description": "Framing for this section (same modes as the project's reframe, without none)",
+ "enum": [
+ "auto",
+ "face",
+ "split",
+ "stack",
+ "fit",
+ "center"
+ ],
+ "type": "string"
+ },
+ "offsetX": {
+ "description": "Shift the crop sideways by this fraction of the source width (-0.5 to 0.5)",
+ "maximum": 0.5,
+ "minimum": -0.5,
+ "type": "number"
+ },
+ "start": {
+ "description": "Section start, seconds from the start of the source video",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end",
+ "mode"
+ ],
+ "type": "object"
+ },
+ "maxItems": 50,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / layoutSections / description
Added value: +"Framing per time range (max 50), source seconds; replaces all sections; null or [] = automatic"
addedInput schema / properties / rerender / description
Added value: +"Re-render when a burned-in field changed (default true); false = keep the old video until rerender_clip"
addedInput schema / properties / startSec / description
Added value: +"New start, seconds from the start of the source video"
changedInput schema / properties / style / anyOf
Previous value: -[
- {
- "properties": {
- "captionSize": {
- "default": 1,
- "maximum": 2,
- "minimum": 0.5,
- "type": "number"
- },
- "captionX": {
- "default": 0.5,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "captionY": {
- "default": 0.72,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "captions": {
- "default": "karaoke",
- "enum": [
- "karaoke",
- "box",
- "plain",
- "none"
- ],
- "type": "string"
- },
- "emphasis": {
- "default": true,
- "type": "boolean"
- },
- "emphasisColor": {
- "default": "#39FF14",
- "pattern": "^#[0-9a-fA-F]{6}$",
- "type": "string"
- },
- "highlightColor": {
- "default": "#FFD700",
- "pattern": "^#[0-9a-fA-F]{6}$",
- "type": "string"
- },
- "hookSeconds": {
- "default": 3.5,
- "maximum": 15,
- "minimum": 0,
- "type": "number"
- },
- "hookX": {
- "default": 0.5,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "hookY": {
- "default": 0.16,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "showHook": {
- "default": true,
- "type": "boolean"
- },
- "uppercase": {
- "default": false,
- "type": "boolean"
- },
- "wordsPerLine": {
- "default": 4,
- "maximum": 8,
- "minimum": 1,
- "type": "integer"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "properties": {
+ "captionSize": {
+ "description": "Caption size multiplier (0.5-2, default 1)",
+ "maximum": 2,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "captionX": {
+ "description": "Caption centre, horizontal, as a fraction of the 9:16 frame (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "captionY": {
+ "description": "Caption centre, vertical (default 0.72), as a fraction of the 9:16 frame (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "captions": {
+ "description": "Caption look: karaoke (active word highlighted), box, plain, or none (no captions)",
+ "enum": [
+ "karaoke",
+ "box",
+ "plain",
+ "none"
+ ],
+ "type": "string"
+ },
+ "emphasis": {
+ "description": "Colour the clip's key words (default true)",
+ "type": "boolean"
+ },
+ "emphasisColor": {
+ "description": "Colour of emphasised words, #RRGGBB (default #39FF14)",
+ "pattern": "^#[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "highlightColor": {
+ "description": "Karaoke active-word colour, #RRGGBB (default #FFD700)",
+ "pattern": "^#[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "hookSeconds": {
+ "description": "How long the hook shows, seconds (0-15, default 3.5)",
+ "maximum": 15,
+ "minimum": 0,
+ "type": "number"
+ },
+ "hookX": {
+ "description": "Hook centre, horizontal, as a fraction of the 9:16 frame (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "hookY": {
+ "description": "Hook centre, vertical (default 0.16), as a fraction of the 9:16 frame (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "showHook": {
+ "description": "Show the hook text at the start of the clip (default true)",
+ "type": "boolean"
+ },
+ "uppercase": {
+ "description": "Captions in capitals",
+ "type": "boolean"
+ },
+ "wordsPerLine": {
+ "description": "Max caption words on screen at once (1-8, default 4)",
+ "maximum": 8,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / style / description
Added value: +"Caption/hook style for this clip on top of the project's; replaces the clip's override; null = follow the project"
addedInput schema / properties / title / description
Added value: +"Clip title (1-120 chars)"