Files
clawbot/skills/remotion-prompt-video/references/video-script-schema.md

111 lines
3.3 KiB
Markdown

# Video Script JSON Schema
The LLM generates a `VideoScript` JSON object that Remotion renders into video. Use this reference when customizing the LLM prompt or manually authoring scripts.
## Top-Level Fields
| Field | Type | Description |
|-------|------|-------------|
| `title` | string | Video title |
| `description` | string | Brief description |
| `fps` | number | Frames per second (always 30) |
| `width` | number | Video width in pixels |
| `height` | number | Video height in pixels |
| `totalDurationInSeconds` | number | Sum of all scene durations |
| `scenes` | Scene[] | Array of scene objects |
## Scene Object
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | number | yes | Sequential scene ID (1-based) |
| `title` | string | yes | Scene title (shown as small label) |
| `text` | string | yes | Main text on screen (max ~15 words) |
| `subtitle` | string | no | Smaller text below main text |
| `durationInSeconds` | number | yes | Scene duration (2-5 seconds) |
| `style` | SceneStyle | yes | Visual styling |
| `animation` | SceneAnimation | yes | Entrance/exit animations |
| `backgroundGradient` | Gradient | no | Gradient background (preferred over solid) |
| `icon` | string | no | Emoji icon displayed above text |
## SceneStyle Object
| Field | Type | Values |
|-------|------|--------|
| `backgroundColor` | string | Hex color (e.g., `#1a1a2e`) |
| `textColor` | string | Hex color with good contrast |
| `fontSize` | number | Typically 48-72 |
| `fontFamily` | string | Arial, Georgia, Courier New, Verdana, Impact, Trebuchet MS |
| `textAlign` | string | `left`, `center`, `right` |
## SceneAnimation Object
| Field | Values |
|-------|--------|
| `entrance` | `fadeIn`, `slideUp`, `slideLeft`, `slideRight`, `zoomIn`, `typewriter`, `none` |
| `exit` | `fadeOut`, `slideDown`, `slideLeft`, `slideRight`, `zoomOut`, `none` |
## Gradient Object
| Field | Values |
|-------|--------|
| `from` | Hex color |
| `to` | Hex color |
| `direction` | `to right`, `to bottom`, `to bottom right`, `to top right` |
## Resolution Presets
| Aspect Ratio | Width | Height |
|--------------|-------|--------|
| 16:9 | 1920 | 1080 |
| 9:16 | 1080 | 1920 |
| 1:1 | 1080 | 1080 |
## Example Script
```json
{
"title": "My Video",
"description": "A sample video",
"fps": 30,
"width": 1920,
"height": 1080,
"totalDurationInSeconds": 6,
"scenes": [
{
"id": 1,
"title": "Intro",
"text": "Welcome",
"subtitle": "Let's begin",
"durationInSeconds": 3,
"style": {
"backgroundColor": "#1a1a2e",
"textColor": "#ffffff",
"fontSize": 72,
"fontFamily": "Arial",
"textAlign": "center"
},
"animation": { "entrance": "zoomIn", "exit": "fadeOut" },
"backgroundGradient": { "from": "#0f0c29", "to": "#302b63", "direction": "to bottom right" },
"icon": "🎬"
},
{
"id": 2,
"title": "Outro",
"text": "Thanks for watching",
"durationInSeconds": 3,
"style": {
"backgroundColor": "#302b63",
"textColor": "#ffffff",
"fontSize": 64,
"fontFamily": "Arial",
"textAlign": "center"
},
"animation": { "entrance": "fadeIn", "exit": "fadeOut" },
"backgroundGradient": { "from": "#302b63", "to": "#24243e", "direction": "to bottom" },
"icon": "🚀"
}
]
}
```