Skip to content
yottacode v0.4.0 is out! ๐ŸŽ‰ See the release notes โ†—

Video tools

yottacode can plan and render local marketing-video assets through ffmpeg and ffprobe. The video tools are deterministic local renderers, not hosted AI video generators: the model drafts the story and approved edit plan, while the tools inspect, analyze, compose, and export local files.

Tool map

ToolNeeds approvalInputWhat it can do
media_probenoOne local audio/video fileReport duration, streams, codecs, resolution, frame rate, rotation, and audio setup with ffprobe
media_analyzenoOne local audio/video fileFind candidate dead air/fluff using audio silence and visual idle/freezedetect detectors
media_composeyesApproved storyboard segmentsAssemble title cards, images/screenshots, and clips into a draft MP4 with templates, captions, fades, and image motion
media_renderyesApproved recording or draft MP4Export YouTube/X MP4 profiles, vertical clips, GIF previews, caption burn-in, and optional intro/outro assembly

What we can create

Asset-based release videos

Use /video prompt <goal> when you have release notes, screenshots, logos, and optional raw clips. The agent should read the source material, propose a storyboard, and wait for approval before rendering.

Good inputs:

  • RELEASE_*.md, CHANGELOG.md, README sections, or launch notes
  • product screenshots, cover art, logos, and social-card images
  • optional terminal recordings or demo clips

Possible outputs:

  • release announcement videos
  • feature teasers for X/LinkedIn
  • YouTube intro/outro drafts
  • short GIF previews for docs or social posts

Recording cleanup

Use /video <path> or /video analyze <path> when you already have a local recording. The agent should probe/analyze the recording, propose conservative cut ranges, and wait for approval before rendering.

Good inputs:

  • .mp4, .mov, .mkv, or .webm screen recordings
  • terminal demos with or without audio
  • raw product walkthrough clips

Possible outputs:

  • cleaned YouTube 16:9 demos
  • X 16:9 clips
  • vertical 9:16 derivatives
  • readable GIF loops

media_compose segment capabilities

media_compose renders an ordered storyboard into a draft .mp4. It validates every source path as a read, validates the output as a write, refuses accidental overwrites unless overwrite=true, and requires approval before running ffmpeg.

SegmentRequired fieldsOptional polish
titletext, durationtemplate, transition
imagepath, durationcaption, motion, template, transition
clippathone keep_ranges entry, caption, template, transition

Supported polish fields:

FieldValuesEffect
templatedefault, hero, feature, closingAdds simple branded green accents and sizing suitable for title, feature, or closing cards
captiontextAdds a lower-third text overlay on image or clip segments
motionnone, zoom_in, zoom_outAdds a gentle Ken Burns-style zoom to image segments
transitionnone, fadeAdds conservative fade-in/out for synthetic-duration segments and fade-in for clips

Safety bounds:

  • output must end with .mp4
  • title/image duration must be positive and at most 300 seconds per segment
  • canvas is bounded to 16..7680px wide and 16..4320px high
  • frame rate is bounded to 1..120 fps
  • complex clip editing stays in media_render; media_compose accepts at most one keep range per clip

media_render export profiles

Use media_render after a recording cleanup or after media_compose creates a draft MP4.

ProfileOutputUse
youtube_16x91920ร—1080 MP4YouTube demos and long-form release videos
x_16x91920ร—1080 MP4X/LinkedIn timeline posts
x_vertical_9x161080ร—1920 MP4Shorts-style derivatives
gif_preview960px GIF, 12 fpsShort docs/social previews
gif_preview_large1440px GIF, 12 fpsMore readable terminal demos

media_render can also burn in captions, prepend intro/outro clips, render sped-up GIFs, and apply approved cut_ranges or keep_ranges.

Boundaries

This workflow does not generate synthetic video scenes, AI b-roll, voiceover, or music by itself. Those can be added later as separate provider/tool integrations. Today, yottacode can make polished local asset-based videos from the materials you provide and the storyboard you approve.