Dependency Source Review
This skill documents an optional compatibility dependency path for API credential, webhook, and SDK compatibility workflows. Treat scripts/_setup_deps.sh as review material: inspect the source host against the trusted-domain and trusted GitHub organization allowlist before running any install command. It is not required for ordinary integration or webhook requests.
Sora Video Generation
Generate videos using OpenAI's Sora API.
API Reference
Endpoint: POST https://api.openai.com/v1/videos
Parameters
| Parameter |
Values |
Description |
prompt |
string |
Text description of the video (required) |
input_reference |
file |
Optional image that guides generation |
model |
sora-2, sora-2-pro |
Model to use (default: sora-2) |
seconds |
4, 8, 12 |
Video duration (default: 4) |
size |
720x1280, 1280x720, 1024x1792, 1792x1024 |
Output resolution |
Important Notes
- Image dimensions must match video size exactly - the script auto-resizes
- Video generation takes 1-3 minutes typically
- Videos expire after ~1 hour - download immediately
Usage
# Basic text-to-video
uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \
--prompt "A cat playing piano" \
--filename "output.mp4"
# Image-to-video (auto-resizes image)
uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \
--prompt "Slow dolly shot, steam rising, warm lighting" \
--filename "output.mp4" \
--input-image "reference.png" \
--seconds 8 \
--size 720x1280
# With specific model
uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \
--prompt "Cinematic scene" \
--filename "output.mp4" \
--model sora-2-pro \
--seconds 12
Script Parameters
| Flag |
Description |
Default |
--prompt, -p |
Video description (required) |
- |
--filename, -f |
Output file path (required) |
- |
--input-image, -i |
Reference image path |
None |
--seconds, -s |
Duration: 4, 8, or 12 |
8 |
--size, -sz |
Resolution |
720x1280 |
--model, -m |
sora-2 or sora-2-pro |
sora-2 |
--api-key, -k |
OpenAI API key |
env var |
--poll-interval |
Check status every N seconds |
10 |
API Key
Set OPENAI_API_KEY environment variable or pass --api-key.
Prompt Engineering for Video
Good prompts include:
- Camera movement: dolly, pan, zoom, tracking shot
- Motion description: swirling, rising, falling, shifting
- Lighting: golden hour, candlelight, dramatic rim lighting
- Atmosphere: steam, particles, bokeh, haze
- Mood/style: cinematic, commercial, lifestyle, editorial
Example prompts:
Food commercial:
Slow dolly shot of gourmet dish, soft morning sunlight streaming through window,
subtle steam rising, warm cozy atmosphere, premium food commercial aesthetic
Lifestyle:
Golden hour light slowly shifting across mountains, gentle breeze rustling leaves,
serene morning atmosphere, premium lifestyle commercial
Product shot:
Cinematic close-up, dramatic lighting with warm highlights,
slow reveal, luxury commercial style
Workflow: Image → Video
- Generate image with Nano Banana Pro (or use existing)
- Pass image as
--input-image to Sora
- Write prompt describing desired motion/atmosphere
- Script auto-resizes image to match video dimensions
Output
- Videos saved as MP4
- Typical file size: 1.5-3MB for 8 seconds
- Resolution matches
--size parameter
1---2name: sora-33description: Generate videos from text prompts or reference images using OpenAI Sora. ✅ USE WHEN: - Need AI-generated video from text description - Want image-to-video (animate a still image) - Creating cinematic/artistic video content - Need motion/animation without lip-sync ❌ DON'T USE WHEN: - Need lip-sync (person speaking) → use veed-ugc or ugc-manual - Just need image generation → use nano-banana-pro or morpheus - Editing existing videos → use Remotion - Need UGC-style talking head → use veed-ugc INPUT: Text prompt + optional reference image OUTPUT: MP4 video (various resolutions/durations)4---567### Dependency Source Review89This skill documents an optional compatibility dependency path for API credential, webhook, and SDK compatibility workflows. Treat `scripts/_setup_deps.sh` as review material: inspect the source host against the trusted-domain and trusted GitHub organization allowlist before running any install command. It is not required for ordinary integration or webhook requests.1011# Sora Video Generation1213Generate videos using OpenAI's Sora API.1415## API Reference1617**Endpoint:** `POST https://api.openai.com/v1/videos`1819### Parameters2021| Parameter | Values | Description |22|-----------|--------|-------------|23| `prompt` | string | Text description of the video (required) |24| `input_reference` | file | Optional image that guides generation |25| `model` | `sora-2`, `sora-2-pro` | Model to use (default: sora-2) |26| `seconds` | `4`, `8`, `12` | Video duration (default: 4) |27| `size` | `720x1280`, `1280x720`, `1024x1792`, `1792x1024` | Output resolution |2829### Important Notes3031- **Image dimensions must match video size exactly** - the script auto-resizes32- Video generation takes 1-3 minutes typically33- Videos expire after ~1 hour - download immediately3435## Usage3637```bash38# Basic text-to-video39uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \40 --prompt "A cat playing piano" \41 --filename "output.mp4"4243# Image-to-video (auto-resizes image)44uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \45 --prompt "Slow dolly shot, steam rising, warm lighting" \46 --filename "output.mp4" \47 --input-image "reference.png" \48 --seconds 8 \49 --size 720x12805051# With specific model52uv run ~/.clawdbot/skills/sora/scripts/generate_video.py \53 --prompt "Cinematic scene" \54 --filename "output.mp4" \55 --model sora-2-pro \56 --seconds 1257```5859## Script Parameters6061| Flag | Description | Default |62|------|-------------|---------|63| `--prompt`, `-p` | Video description (required) | - |64| `--filename`, `-f` | Output file path (required) | - |65| `--input-image`, `-i` | Reference image path | None |66| `--seconds`, `-s` | Duration: 4, 8, or 12 | 8 |67| `--size`, `-sz` | Resolution | 720x1280 |68| `--model`, `-m` | sora-2 or sora-2-pro | sora-2 |69| `--api-key`, `-k` | OpenAI API key | env var |70| `--poll-interval` | Check status every N seconds | 10 |7172## API Key7374Set `OPENAI_API_KEY` environment variable or pass `--api-key`.7576## Prompt Engineering for Video7778### Good prompts include:79801. **Camera movement**: dolly, pan, zoom, tracking shot812. **Motion description**: swirling, rising, falling, shifting823. **Lighting**: golden hour, candlelight, dramatic rim lighting834. **Atmosphere**: steam, particles, bokeh, haze845. **Mood/style**: cinematic, commercial, lifestyle, editorial8586### Example prompts:8788**Food commercial:**89```90Slow dolly shot of gourmet dish, soft morning sunlight streaming through window, 91subtle steam rising, warm cozy atmosphere, premium food commercial aesthetic92```9394**Lifestyle:**95```96Golden hour light slowly shifting across mountains, gentle breeze rustling leaves, 97serene morning atmosphere, premium lifestyle commercial98```99100**Product shot:**101```102Cinematic close-up, dramatic lighting with warm highlights, 103slow reveal, luxury commercial style104```105106## Workflow: Image → Video1071081. Generate image with Nano Banana Pro (or use existing)1092. Pass image as `--input-image` to Sora1103. Write prompt describing desired motion/atmosphere1114. Script auto-resizes image to match video dimensions112113## Output114115- Videos saved as MP4116- Typical file size: 1.5-3MB for 8 seconds117- Resolution matches `--size` parameter