| name | auto-video-generation |
| description | Video planning (beat sheet, VO, captions) plus actual MP4 when Gemini Veo is available on the key; with OpenClaw+Gemini configured, default to attempting Veo render after planning—else document handoff to Remotion/ffmpeg. |
| metadata | {"clawdbot":{"emoji":"🎬"},"openclaw":{"emoji":"🎬"}} |
auto-video-generation
Produce production-ready planning artifacts for video: not just a script, but timed beats, shot direction, audio plan, and caption timing so an editor or codegen tool (e.g. Remotion) can execute without guessing. Each run should leave a dated, named folder or file set under the workspace drafts/ tree—same discipline as qf-course-researcher creates a dated Notion page.
When Gemini is available (this workspace — default)
If OpenClaw already has Gemini (~/.openclaw/.env, ~/.config/gemini/api_key, or host tools wrapping the same API), after writing the planning files, attempt a Gemini Veo render (async start → poll → download .mp4) per Gemini video / Veo docs and workspace/INTEGRATIONS.md. Save e.g. veo-output.mp4 under the same workspace/drafts/video/<run>/ folder and log model, operation id, and path in veo-render.md.
- If Veo succeeds: the run delivers both the beat sheet and a real clip.
- If the key has no Veo access, quota fails, or the API errors: do not pretend a file exists—note the error in
veo-render.md and fall back to Remotion/ffmpeg handoff in README-handoff.md.
- Brief-only only when the human explicitly asked no render.
Prerequisites
Credentials & API (qf-style)
- Planning-only (exception): When the human asked no render, or Gemini/Veo is unavailable after a real attempt — still ship beats + scripts under
workspace/drafts/video/....
- Rendered video (default when Gemini + Veo available):
GEMINI_API_KEY / ~/.config/gemini/api_key — async Veo flow: start → poll → download veo-output.mp4 (or similar) into the draft folder. Merge beat sheet + VO into one cinematic prompt; set aspectRatio ("9:16" / "16:9") per brief. Endpoints evolve — follow Gemini video / Veo docs and workspace/INTEGRATIONS.md.
- Fallback: Remotion + ffmpeg or
eleven-labs-music when Veo is not enabled on the project or the render fails; do not assume licensed trending TikTok audio unless rights confirmed.
High-level Workflow
-
Intake and platform lock
- Confirm one primary platform first edit (TikTok, Instagram Reels, YouTube Shorts, YouTube long, LinkedIn video).
- Map to constraints:
- Vertical short (9:16): safe zones for UI (caption, like button); hook in 0–3s; typical 15–60s unless brief says otherwise.
- Long-form (16:9): cold open ≤15s or chapter hooks; act structure (setup → tension → payoff).
-
Concept lock
- One logline (≤25 words) + viewer takeaway (one sentence).
- List non-goals (what this video will not promise—legal/safety).
-
Beat sheet with timestamps
-
Shot list
- Produce
shot-list.md:
- For each beat: shot type (wide/medium/close-up), movement (static/pan/handheld), B-roll vs A-roll, props, lighting note (high-key, natural, etc.).
- Flag stock vs record if applicable.
-
Full VO script
- Plain script in
vo-script.md (continuous prose or line-per-beat matching beat-sheet rows).
- WPM sanity: for 30s VO, ~75–90 words typical; adjust if talent speaks fast/slow.
-
Captions / subtitles outline
captions.srt outline in markdown (timecodes + line) for short-form burn-in style, or note “SRT export left to editor.”
- Keep on-screen text ≤5 words per card for vertical unless brief demands denser (educational).
-
Audio plan
- Section in
audio-plan.md:
- VO: tone (warm, urgent, deadpan).
- Music: genre + BPM range + “royalty-free only” unless human provides license.
- Trending sound: if requested, warn in file: TikTok commercial use may require cleared sound; default to original or licensed bed.
-
Handoff package
- Write
README-handoff.md in the same folder summarizing:
- Files included.
- Next skill: e.g. “Pass
beat-sheet.md to tiktok-video-ads-creator for hook A/B/C variants.”
- Approval gate: “Human approves before upload.”
-
Optional JSON for tooling
- If downstream automation expects JSON, add
brief.json with keys: platform, duration_target_sec, aspect_ratio, beats[] {start,end,audio,visual,on_screen_text}.
-
Scheduling
- For campaign use: one folder per video concept; date prefix avoids overwrites.
- For series: use slug
series-name-ep-01 etc.
Outputs (required files)
Minimum per run:
workspace/drafts/video/<YYYY-MM-DD>-<slug>/beat-sheet.md
workspace/drafts/video/<YYYY-MM-DD>-<slug>/shot-list.md
workspace/drafts/video/<YYYY-MM-DD>-<slug>/vo-script.md
workspace/drafts/video/<YYYY-MM-DD>-<slug>/README-handoff.md
Recommended:
audio-plan.md, captions-outline.md, optional brief.json
Agent Checklist