Claude Skill

video-generation

End-to-end AI video production through the Hyper MCP — text-to-video and image-to-video generation (Sora, Veo, Seedance), scene chaining, video analysis, transcription, subtitles, TikTok / karaoke captions, voiceover (TTS), audio mixing, clipping, stitching, and text overlays. Us

LLM Mart · 0 points · 2 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download hyperfx-ai-marketing-skills-skills_video-generation-abd711a.zip · 9 KB
Part of hyperfx-ai/marketing-skills — 30 skills

Install

skills CLI npx skills add https://github.com/hyperfx-ai/marketing-skills/tree/main/skills/video-generation
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install hyperfx-ai-marketing-skills@llmmart
Git git clone https://github.com/hyperfx-ai/marketing-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole hyperfx-ai/marketing-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Video Generation & Editing

Guide for generating, editing, analyzing, and post-processing videos using AI models and FFmpeg-backed tools exposed through the Hyper MCP.

Requirements

This skill assumes the Hyper MCP is connected to your agent so the tools below are available. The underlying providers (OpenAI Sora, Google Veo, ByteDance Seedance, OpenAI TTS, transcription, etc.) are configured under your Hyper integrations.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

Surface Find a tool Run it
MCP client (Claude, Cursor, Codex, ChatGPT) search("<what you want to do>"), then describe("<name>") call("<name>", {...})
Hyper CLI hyperai search "<what you want to do>", then hyperai describe <name> hyperai call <name> --json '{...}'

If a tool is not found, its integration is not connected or not enabled for the workspace: stop and tell the user which integration to connect.

Tool surface

Group Tools
Generation videos_generate, sora_videos_remix, sora_videos_delete
Analysis videos_analyze, videos_frames_capture, videos_transcribe
Subtitles & captions videos_subtitles_generate, videos_subtitles_burn, videos_captions_burn_highlighted
Audio audio_speech_generate, videos_audio_add
Editing videos_clips_extract, videos_stitch, videos_text_overlays_add

Out of scope

  • Image generation, ad creative composition, brand extraction — use image-generation or ad-creative-generation.
  • Posting finished videos to social platforms — use tiktok, instagram, or linkedin.
  • Running paid video campaigns — use google-ads, meta-ads, tiktok-ads.

Available Tools

Tool Purpose Runs in Background
videos_generate Generate video from text / image prompt Yes
sora_videos_remix Modify existing Sora video Yes
sora_videos_delete Delete a Sora video No
videos_frames_capture Extract frame as image No
videos_analyze Watch and understand video content No
videos_transcribe Extract audio transcript No
videos_subtitles_generate Create SRT / VTT subtitle file No
videos_subtitles_burn Burn subtitles onto video Yes
videos_captions_burn_highlighted TikTok / karaoke-style word-by-word captions Yes
audio_speech_generate Generate voiceover audio from text No
videos_audio_add Add / replace audio track on video Yes
videos_clips_extract Extract a time segment from video Yes
videos_stitch Concatenate multiple clips Yes
videos_text_overlays_add Add text / titles to video Yes

Video Understanding

You can watch and analyze any video using videos_analyze. This sends the video to a multimodal AI that sees both visual and audio content.

When to use videos_analyze

  • After generating a video: check if it matches your intent
  • Before stitching: verify scene consistency across clips
  • Quality review: check for glitches, character drift, lighting issues
  • Content understanding: "what happens in this video?"

Analysis Types

videos_analyze(file_id="...", analysis_type="general")
videos_analyze(file_id="...", analysis_type="quality_review")
videos_analyze(file_id="...", analysis_type="scene_breakdown")
videos_analyze(file_id="...", question="Does this match: [original prompt]?")

Self-Review Workflow

Always review generated videos before delivering to the user:

result = videos_generate(prompt="...", model="veo-3.1-generate-preview")
review = videos_analyze(file_id="video_file_id", analysis_type="quality_review")
# If issues found, regenerate with adjustments. If quality is good, proceed to editing.

Routing table

All reference files live in references/. Read them at references/<file> (e.g. references/generation.md).

The user wants to… Read these files first
Generate a video (any model) references/generation.md — model selection, parameter matrix, prompt templates
Build a longer multi-scene video references/generation.md — script planning + scene chaining
Add subtitles / captions / voiceover / overlays, or clip a video references/post-production.md
Produce UGC / TikTok content end-to-end references/ugc-video.md (ugc_videos_create modes) → references/workflows.md
Shape a prompt for a specific model (Sora / Veo / Seedance / Kling) references/video-prompting.md
Turn a podcast / long video into short clips references/workflows.md → references/post-production.md
Understand or QA an existing video Use videos_analyze (see Video Understanding above)

Best Practices

  1. Review before delivering: always use videos_analyze to check your output.
  2. Maintain visual consistency: use the same character descriptions, lighting, and style across all scenes.
  3. Plan transitions: design the end of each scene to flow into the next.
  4. Batch similar scenes: generate scenes with similar settings together.
  5. Review before chaining: check each scene before using its last frame for the next.
  6. Use single-variable iteration: remix / regenerate by changing one variable at a time.
  7. Add captions for accessibility: use the subtitle pipeline for all UGC content.
Files (marketing-skills)
  • references
    • generation.md 5.1 KB
      # Video Generation: Models, Prompting & Scene Chaining
      
      ## Script Planning
      
      For longer, cohesive videos, plan the FULL SCRIPT before generating:
      
      ### 1. Scene Breakdown
      - **Scenes:** break story into segments
        - Sora: 4 / 8 / 12 seconds per scene
        - Veo: 4-8 seconds per scene
        - Seedance: 4-15 seconds per scene (native audio with lip-sync)
      - **Camera:** shot type (wide, close-up, tracking), angles, movement
      - **Transitions:** how each scene connects to the next
      - **Consistency:** character descriptions, color palette, visual style
      
      ## Scene Chaining Technique
      
      To create seamless multi-scene videos:
      
      ### Scene 1 (text-to-video)
      
      ```python
      videos_generate(prompt="...", model="veo-3.1-generate-preview")
      ```
      
      ### Scene 2+ (image-to-video)
      
      ```python
      videos_frames_capture(video_file_id="scene1_file_id", frame_position="last")
      videos_generate(prompt="continuation: ...", image_file_id="captured_frame_id")
      ```
      
      Repeat: extract last frame → generate next scene.
      
      ### Stitching Scenes Together
      
      After generating all scenes, combine them:
      
      ```python
      videos_stitch(video_file_ids=["scene1_id", "scene2_id", "scene3_id"])
      
      videos_stitch(
          video_file_ids=["scene1_id", "scene2_id", "scene3_id"],
          transition="crossfade",
          crossfade_duration=0.5,
      )
      ```
      
      ## Prompt Structure
      
      Each scene prompt should include:
      
      - "Continuation of previous scene" (for scenes 2+)
      - Consistent character / setting descriptions
      - Specific action for this segment
      - Camera movement direction
      
      ## Control Principles (most important)
      
      - Treat API params as the **container** and prompt text as the **content**:
        - `model`, `size` / `aspect_ratio`, and `duration_seconds` must be set explicitly in the tool call.
        - Do not expect prose like "make it longer" or "make it vertical" to override API parameters.
      - Use detail for control, brevity for exploration:
        - Short prompts give more creative variation.
        - Detailed prompts improve consistency and shot control.
      - Iterate in small steps:
        - Change one major variable at a time (camera, lighting, action, or palette).
        - Keep what works fixed and only modify the target dimension.
      
      ## Key Parameters
      
      | Parameter | Description |
      |-----------|-------------|
      | `image_file_id` | Use for image-to-video (scene continuity) |
      | `videos_frames_capture` | Extract frames with `frame_position="last"` \| `"first"` \| `"middle"` |
      | `size` | For Sora only. One of: `"720x1280"`, `"1280x720"`, `"1024x1792"`, `"1792x1024"` |
      | `aspect_ratio` | For Veo only. One of: `"16:9"` or `"9:16"` |
      | `duration_seconds` | Sora: 4, 8, or 12 seconds only. Veo: 4-8 seconds |
      
      ## Important Input Rules
      
      - Use exact values accepted by the tool schema. Do not send aliases like `landscape`, `portrait`, `720p`, or `1080p`.
      - For Sora, prefer `size` and do not send `aspect_ratio`.
      - For Veo, prefer `aspect_ratio` and do not send `size`.
      - For Seedance, use `aspect_ratio` and optionally `resolution`. Do not pass `size`.
      - Keep the same `size` / `aspect_ratio` across chained scenes for continuity.
      
      ## Model Selection Guide
      
      **When the user mentions a specific model name, always use that model.** Map user requests to the correct `model` parameter:
      
      | User says | `model` parameter |
      |-----------|-------------------|
      | "use seedance", "seedance video" | `"seedance-2"` |
      | "fast seedance" | `"seedance-2-fast"` |
      | "use sora", "sora video" | `"sora-2"` |
      | "sora pro" | `"sora-2-pro"` |
      | "use veo", "veo video" | `"veo-3.1-generate-preview"` |
      | "fast veo" | `"veo-3.1-fast-generate-preview"` |
      
      ## Model-Specific Parameter Matrix
      
      - **Sora models (`sora-2`, `sora-2-pro`)**
        - Allowed sizing parameter: `size`
        - Allowed `size` values: `"720x1280"`, `"1280x720"`, `"1024x1792"`, `"1792x1024"`
        - Do not pass `aspect_ratio`
        - Practical default pair: `"1280x720"` or `"720x1280"`
      - **Veo models (`veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`)**
        - Allowed sizing parameter: `aspect_ratio`
        - Allowed `aspect_ratio` values: `"16:9"`, `"9:16"`
        - Do not pass `size`
      - **Seedance models (`seedance-2`, `seedance-2-fast`)**
        - Allowed sizing parameters: `aspect_ratio` and `resolution`
        - Allowed `aspect_ratio` values: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`
        - Allowed `resolution` values: `"480p"`, `"720p"`
        - Supports `generate_audio=true` for native audio with lip-sync
        - Do not pass `size`
      
      ## Duration Limits
      
      - **Sora:** 4, 8, or 12 seconds per generation. Use scene chaining + `videos_stitch` for longer videos.
      - **Veo:** 4, 5, 6, 7, or 8 seconds per generation.
      - **Seedance:** 4-15 seconds per generation (most flexible). Supports `generate_audio=true` for native audio with lip-sync.
      
      ## High-Control Prompt Template
      
      Use this structure when you want predictable output:
      
      ```text
      Style/Tone: [realistic, cinematic, animation, documentary, etc.]
      Subject/World: [who/what is in frame, key visual anchors]
      Camera: [shot size + angle + movement]
      Lighting/Palette: [light direction + 3-5 color anchors]
      Action Beats:
      - [beat 1 with timing/count]
      - [beat 2 with timing/count]
      - [beat 3 with timing/count]
      Audio/Dialogue: [short lines or ambient cues]
      Constraints: [no logos/brands, no text overlays, etc.]
      ```
      
    • post-production.md 2.7 KB
      # Video Generation: Post-Production (Subtitles, Audio, Overlays, Clipping)
      
      ## Subtitle / Caption Workflow
      
      ### Full pipeline: Video → Transcript → Subtitles → Burned Video
      
      ```python
      transcript = videos_transcribe(file_id="video_file_id")
      
      subs = videos_subtitles_generate(file_id="video_file_id", transcript=transcript, format="srt")
      
      videos_subtitles_burn(
          video_file_id="video_file_id",
          subtitle_file_id=subs.file_id,
          style="bold_outline",
          position="bottom",
      )
      ```
      
      ### Subtitle Styles
      
      | Style | Effect |
      |-------|--------|
      | `default` | Plain white text |
      | `bold_outline` | Bold white with black outline (recommended) |
      | `shadow` | White text with drop shadow |
      | `box` | White text on semi-transparent black box |
      
      ## Text Overlays
      
      Add titles, lower-thirds, CTAs, and other graphics:
      
      ```python
      videos_text_overlays_add(
          video_file_id="video_file_id",
          overlays=[
              {
                  "text": "Episode 1: The Beginning",
                  "start_time": 0.0,
                  "end_time": 3.0,
                  "position": "center",
                  "font_size": 48,
                  "color": "white",
                  "background": "black@0.5",
              },
              {
                  "text": "Subscribe for more!",
                  "start_time": 10.0,
                  "end_time": 14.0,
                  "position": "bottom-right",
                  "font_size": 28,
              },
          ],
      )
      ```
      
      ### Overlay Positions
      
      `top`, `bottom`, `center`, `top-left`, `top-right`, `bottom-left`, `bottom-right`
      
      ## Voiceover / Narration
      
      Generate natural-sounding voiceover with TTS and add it to any video:
      
      ```python
      audio = audio_speech_generate(
          text="Welcome to our product. Here's how it works...",
          voice="nova",
          model="tts-1",
      )
      
      videos_audio_add(
          video_file_id="video_id",
          audio_file_id=audio.file_id,
          mode="replace",
      )
      
      videos_audio_add(
          video_file_id="video_id",
          audio_file_id=audio.file_id,
          mode="mix",
          audio_volume=0.8,
      )
      ```
      
      ### Available Voices
      
      `alloy`, `ash`, `coral`, `echo`, `fable`, `nova` (recommended), `onyx`, `sage`, `shimmer`
      
      ## Highlighted Captions (TikTok / Reels Style)
      
      Add word-by-word highlighted captions that light up as spoken:
      
      ```python
      videos_captions_burn_highlighted(
          video_file_id="video_id",
          style="tiktok",
          highlight_color="#3B82F6",
          base_color="white",
          words_per_group=3,
          position="center",
      )
      
      videos_captions_burn_highlighted(
          video_file_id="video_id",
          style="karaoke",
          highlight_color="yellow",
          base_color="white",
          background="black@0.6",
          words_per_group=4,
          position="bottom",
      )
      ```
      
      ## Video Clipping
      
      Extract segments from longer videos:
      
      ```python
      videos_clips_extract(
          video_file_id="long_video_id",
          start_time=45.0,
          end_time=60.0,
      )
      ```
      
    • ugc-video.md 4.2 KB
      # UGC Video Reference
      
      Use `ugc_videos_create` for any of: TikTok/UGC ads, continuous POV creator videos, how-to/tutorial videos, unboxings, routines, before/after demos, product showcases, product reviews, testimonials, TV spots, "wild card" scroll-stoppers, or virtual try-ons. The tool wraps prompt structure, model selection, and product/avatar reference handling.
      
      ## Modes
      
      | Mode | Structure | Default aspect | Default duration |
      |------|-----------|----------------|------------------|
      | `ugc` | casual presenter-to-camera product mention | 9:16 | 8s |
      | `ugc_how_to` | quick tutorial with visible steps | 9:16 | 8s |
      | `ugc_unboxing` | package reveal + first impression close-ups | 9:16 | 8s |
      | `product_showcase` | polished product-first highlight (cinematic) | 16:9 | 12s |
      | `product_review` | presenter opinion + proof point | 9:16 | 8s |
      | `tv_spot` | broadcast-style ad with cinematic polish | 16:9 | 12s |
      | `wild_card` | unexpected visual hook around the product | 9:16 | 8s |
      | `ugc_virtual_try_on` | organic mirror/handheld try-on | 9:16 | 8s |
      | `virtual_try_on` | polished model-led try-on | 9:16 | 8s |
      
      Each mode declares required beats and default camera + voice. Override with `aspect_ratio`, `duration_seconds`, `camera`, and `voice_style`.
      
      ## Backend selection
      
      Default generation uses `veo-3.1-fast-generate-preview`. Pass `model` explicitly when you need a different backend:
      
      - `model="veo-3.1-fast-generate-preview"`: default, fastest Veo route
      - `model="veo-3.1-generate-preview"`: higher-quality Veo route
      - `model="sora-2"` or `model="sora-2-pro"`: OpenAI Sora route
      - `model="seedance-2"` or `model="seedance-2-fast"`: Seedance route
      
      Explicit `model` selection always wins. The tool no longer switches to Sora just because voice or background sound is requested.
      
      ## Style templates
      
      Use `style_template` for machine-friendly TikTok/social formats:
      
      | Template | Use when |
      |----------|----------|
      | `tiktok_ugc` | General TikTok/Reels creator ad |
      | `continuous_pov` | One continuous selfie/POV video without abrupt product-only cutaways |
      | `creator_review` | Creator opinion with a proof point |
      | `unboxing` | Package opening and first impression |
      | `routine` | Product inside a daily routine |
      | `before_after` | Before/result proof format |
      | `problem_solution` | Quick problem then product solution |
      | `how_to` | Short tutorial with visible steps |
      | `testimonial` | Sincere creator testimonial |
      | `product_demo` | Product function demo with creator context |
      | `trend_remix` | Trend-inspired format anchored to the product benefit |
      
      ## Beat fields
      
      Pass any of these to override mode defaults:
      
      - `hook` — opening line
      - `setting` — scene/setting description
      - `action` — what happens / demonstration
      - `emotion` — emotional tone
      - `voice_style` — voiceover or presenter style
      - `background_sound` — ambient sound or music
      - `camera` — camera/framing notes
      - `cta` — closing call-to-action
      
      ## Inputs
      
      - `product` — `ProductContext` (product name, brand, references for image-to-video)
      - `avatars` — `list[MediaInput]` of presenter references; the strongest one becomes the start frame for image-to-video
      - `avatar_file_id` or `avatar_url` — direct presenter/start-frame avatar reference for CLI-friendly calls
      
      ## Example
      
      ```python
      ugc_videos_create(
          product=ProductContext(
              name="Ember Travel Mug",
              category="insulated travel mug",
              references=[MediaInput(file_id="file_image_gen_..._mug")],
          ),
          avatars=[MediaInput(file_id="file_image_gen_..._presenter")],
          style_template="unboxing",
          model="veo-3.1-fast-generate-preview",
          hook="I just got this mug and the packaging already feels premium",
          action="Opens the mailer, reveals the mug, shows the leakproof lid",
          emotion="Excited but natural first impression",
          voice_style="conversational, unscripted",
          background_sound="quiet kitchen ambience",
          cta="Try it for your morning commute",
          duration_seconds=8,
      )
      ```
      
      The result is a `UGCVideoResponse` with:
      - `operation_id` (chat UI and Prefab compiler self-poll via `videos_status_check`)
      - `mode`, `style_template`, `product_name`, `hook` (rendered above the video)
      - `storyboard` and `compiled_prompt` (so the chat card can show the structure)
      
    • video-prompting.md 1.8 KB
      # Video Prompting (per backend)
      
      Each video backend rewards a different prompt structure. When calling `videos_generate` directly (not via `ugc_videos_create`), shape the prompt to the model you're using.
      
      ## Sora (`sora-2`, `sora-2-pro`)
      - Shape: storyboard scene with action beats.
      - Required sections: subject/scene → action beats → camera/framing → lighting/palette → audio/dialogue.
      - Avoid: vague style stacks, asking for duration/aspect in prose, more than ~2 scene changes in one clip.
      
      ## Veo (`veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`)
      - Shape: a single clear scene.
      - Required sections: shot → scene → character details → action → lighting → style (+ optional dialogue).
      - Avoid: ambiguous subjects, multiple unrelated events, quoted dialogue syntax (just write what's said).
      
      ## Seedance (`seedance-2`, `seedance-2-fast`)
      - Shape: shot type, subject, what moves, environment, camera, lighting/style.
      - Required sections: shot_type → subject → motion → environment → camera → lighting_style.
      - Cap camera moves at 2 per clip. One strong subject per clip.
      - Avoid: rewriting everything during iteration — change one variable at a time.
      
      ## Kling (image-to-video)
      - Shape: motion only.
      - Required sections: camera_move → action_beats → ambient_motion.
      - Do not redescribe what's in the input image — clothing, appearance, product details. The image already carries that.
      - Avoid: complex cinematic jargon, competing visual instructions.
      
      ## Universal rules
      
      - Keep model-specific sizing parameters consistent: Sora uses `size` (e.g. `1280x720`), Veo and Seedance use `aspect_ratio` (e.g. `16:9`).
      - Don't pass `aspect_ratio` to Sora or `size` to Veo/Seedance.
      - For chained scenes, capture the last frame and pass it as `image_file_id` in the next call.
      
    • workflows.md 1.7 KB
      # Video Generation: End-to-End Production Workflows
      
      ## UGC / TikTok Production Workflow
      
      Complete workflow for producing UGC-style content:
      
      1. **Script:** plan scenes, dialogue, and visual style
      2. **Generate:** create each scene with `videos_generate`
      3. **Review:** use `videos_analyze` to check each scene for quality
      4. **Chain:** extract last frames with `videos_frames_capture`, generate next scenes
      5. **Stitch:** combine all scenes with `videos_stitch`
      6. **Narrate:** generate voiceover with `audio_speech_generate` + `videos_audio_add`
      7. **Caption:** add TikTok-style captions with `videos_captions_burn_highlighted`
      8. **Overlay:** add titles / CTAs with `videos_text_overlays_add`
      9. **Final review:** use `videos_analyze` on the final video for quality check
      
      ### Example: Narrated UGC Video
      
      ```python
      videos_generate(prompt="...", model="veo-3.1-generate-preview")
      
      audio = audio_speech_generate(text="Your narration script here...", voice="nova")
      
      videos_audio_add(video_file_id="generated_video_id", audio_file_id=audio.file_id)
      
      videos_captions_burn_highlighted(video_file_id="narrated_video_id", style="tiktok")
      ```
      
      ### Example: Podcast to Short-Form Clips
      
      ```python
      transcript = videos_transcribe(file_id="podcast_video_id")
      
      analysis = videos_analyze(
          file_id="podcast_video_id",
          question="Identify the 3 most memorable / quotable moments with timestamps",
          analysis_type="scene_breakdown",
      )
      
      videos_clips_extract(video_file_id="podcast_video_id", start_time=120.0, end_time=150.0)
      videos_clips_extract(video_file_id="podcast_video_id", start_time=340.0, end_time=365.0)
      
      videos_stitch(video_file_ids=["clip1_id", "clip2_id"])
      
      videos_captions_burn_highlighted(video_file_id="stitched_id", style="tiktok")
      ```
      
  • SKILL.md 6.3 KB
    ---
    name: video-generation
    description: End-to-end AI video production through the Hyper MCP — text-to-video and image-to-video generation (Sora, Veo, Seedance), scene chaining, video analysis, transcription, subtitles, TikTok / karaoke captions, voiceover (TTS), audio mixing, clipping, stitching, and text overlays. Use when the user asks to generate a video, create UGC, scene-chain, add captions or subtitles, add narration, stitch clips, clip a podcast highlight, or do any AI video editing.
    requires_toolkits:
      - video_generation_toolkit
    icon: video_generation
    short_description: Generate and edit AI video end-to-end, from scene chaining to captions and voiceover.
    ---
    
    # Video Generation & Editing
    
    Guide for generating, editing, analyzing, and post-processing videos using AI models and FFmpeg-backed tools exposed through the Hyper MCP.
    
    ## Requirements
    
    This skill assumes the [Hyper MCP](https://app.hyperfx.ai/mcp) is connected to your agent so the tools below are available. The underlying providers (OpenAI Sora, Google Veo, ByteDance Seedance, OpenAI TTS, transcription, etc.) are configured under your Hyper integrations.
    
    ### How to run the tools in this skill
    
    Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:
    
    | Surface | Find a tool | Run it |
    | --- | --- | --- |
    | MCP client (Claude, Cursor, Codex, ChatGPT) | `search("<what you want to do>")`, then `describe("<name>")` | `call("<name>", {...})` |
    | Hyper CLI | `hyperai search "<what you want to do>"`, then `hyperai describe <name>` | `hyperai call <name> --json '{...}'` |
    
    If a tool is not found, its integration is not connected or not enabled for the workspace: stop and tell the user which integration to connect.
    
    ## Tool surface
    
    | Group | Tools |
    |-------|-------|
    | Generation | `videos_generate`, `sora_videos_remix`, `sora_videos_delete` |
    | Analysis | `videos_analyze`, `videos_frames_capture`, `videos_transcribe` |
    | Subtitles & captions | `videos_subtitles_generate`, `videos_subtitles_burn`, `videos_captions_burn_highlighted` |
    | Audio | `audio_speech_generate`, `videos_audio_add` |
    | Editing | `videos_clips_extract`, `videos_stitch`, `videos_text_overlays_add` |
    
    ## Out of scope
    
    - Image generation, ad creative composition, brand extraction — use `image-generation` or `ad-creative-generation`.
    - Posting finished videos to social platforms — use `tiktok`, `instagram`, or `linkedin`.
    - Running paid video campaigns — use `google-ads`, `meta-ads`, `tiktok-ads`.
    
    ## Available Tools
    
    | Tool | Purpose | Runs in Background |
    |------|---------|-------------------|
    | `videos_generate` | Generate video from text / image prompt | Yes |
    | `sora_videos_remix` | Modify existing Sora video | Yes |
    | `sora_videos_delete` | Delete a Sora video | No |
    | `videos_frames_capture` | Extract frame as image | No |
    | `videos_analyze` | Watch and understand video content | No |
    | `videos_transcribe` | Extract audio transcript | No |
    | `videos_subtitles_generate` | Create SRT / VTT subtitle file | No |
    | `videos_subtitles_burn` | Burn subtitles onto video | Yes |
    | `videos_captions_burn_highlighted` | TikTok / karaoke-style word-by-word captions | Yes |
    | `audio_speech_generate` | Generate voiceover audio from text | No |
    | `videos_audio_add` | Add / replace audio track on video | Yes |
    | `videos_clips_extract` | Extract a time segment from video | Yes |
    | `videos_stitch` | Concatenate multiple clips | Yes |
    | `videos_text_overlays_add` | Add text / titles to video | Yes |
    
    ## Video Understanding
    
    You can **watch and analyze any video** using `videos_analyze`. This sends the video to a multimodal AI that sees both visual and audio content.
    
    ### When to use `videos_analyze`
    
    - After generating a video: check if it matches your intent
    - Before stitching: verify scene consistency across clips
    - Quality review: check for glitches, character drift, lighting issues
    - Content understanding: "what happens in this video?"
    
    ### Analysis Types
    
    ```python
    videos_analyze(file_id="...", analysis_type="general")
    videos_analyze(file_id="...", analysis_type="quality_review")
    videos_analyze(file_id="...", analysis_type="scene_breakdown")
    videos_analyze(file_id="...", question="Does this match: [original prompt]?")
    ```
    
    ### Self-Review Workflow
    
    Always review generated videos before delivering to the user:
    
    ```python
    result = videos_generate(prompt="...", model="veo-3.1-generate-preview")
    review = videos_analyze(file_id="video_file_id", analysis_type="quality_review")
    # If issues found, regenerate with adjustments. If quality is good, proceed to editing.
    ```
    
    ## Routing table
    
    > **All reference files live in `references/`.** Read them at `references/<file>` (e.g. `references/generation.md`).
    
    | The user wants to… | Read these files first |
    |---|---|
    | Generate a video (any model) | [references/generation.md](references/generation.md) — model selection, parameter matrix, prompt templates |
    | Build a longer multi-scene video | [references/generation.md](references/generation.md) — script planning + scene chaining |
    | Add subtitles / captions / voiceover / overlays, or clip a video | [references/post-production.md](references/post-production.md) |
    | Produce UGC / TikTok content end-to-end | [references/ugc-video.md](references/ugc-video.md) (`ugc_videos_create` modes) → [references/workflows.md](references/workflows.md) |
    | Shape a prompt for a specific model (Sora / Veo / Seedance / Kling) | [references/video-prompting.md](references/video-prompting.md) |
    | Turn a podcast / long video into short clips | [references/workflows.md](references/workflows.md) → [references/post-production.md](references/post-production.md) |
    | Understand or QA an existing video | Use `videos_analyze` (see Video Understanding above) |
    
    ## Best Practices
    
    1. **Review before delivering:** always use `videos_analyze` to check your output.
    2. **Maintain visual consistency:** use the same character descriptions, lighting, and style across all scenes.
    3. **Plan transitions:** design the end of each scene to flow into the next.
    4. **Batch similar scenes:** generate scenes with similar settings together.
    5. **Review before chaining:** check each scene before using its last frame for the next.
    6. **Use single-variable iteration:** remix / regenerate by changing one variable at a time.
    7. **Add captions for accessibility:** use the subtitle pipeline for all UGC content.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related