mcp-video
Video editing MCP server with FFmpeg, PUSHING CREATION planning, Hyperframes, and repurposing tools.
Versions
1.3.10latest1.4.0Tools 196
sound_mix_render Render a bounded local mix for a minimal timeline (duration/stem smoke path).
sound_qa_loudness Measure loudness against the default delivery policy on synthetic audio.
video_repurpose_plan Create a dry-run local repurposing manifest for platform-ready assets.
video_repurpose Submit one durable projectstore repurpose job for platform clips. ``min_score`` is accepted for signature parity with sync ``repurpose`` and is **not applied**. Durable jobs do not run ``assert_quality``. Use CLI/Client ``repurpose`` (default 80) for the fail-closed ship seam.
video_thumbnail Extract a single frame (thumbnail / frame grab) from a video. Args: input_path: Absolute path to the input video. timestamp: Time in seconds to extract frame. Defaults to 10% of video duration. output_path: Where to save the frame image. Auto-generated if omitted.
video_preview Generate a fast low-resolution preview for quick review. Args: input_path: Absolute path to the input video. output_path: Where to save the preview. Auto-generated if omitted. scale_factor: Downscale factor (4 = 1/4 resolution).
video_storyboard Extract key frames and create a storyboard grid for human review. Args: input_path: Absolute path to the input video. output_dir: Directory to save frames. Auto-generated if omitted. frame_count: Number of key frames to extract.
video_subtitles Burn subtitles (SRT/VTT/authored ASS) into a video. Args: input_path: Absolute path to the input video. subtitle_path: Absolute path to the subtitle file (.srt, .vtt, or .ass). output_path: Where to save the output. Auto-generated if omitted. style: Optional force_style override applied to any subtitle format including authored ASS (e.g. "FontSize=24,PrimaryColour=&H00FFFFFF"). Omit to preserve an authored ASS file's own styling/positioning.
video_template_preview Preview what a video template would do before rendering. Analyzes the template and returns a list of operations, estimated output duration, resolution, and file size — without actually processing any video. Args: template: Template name (tiktok, youtube-shorts, instagram-reel, youtube, instagram-post). input_path: Absolute path to the input video (optional; used for duration probing). duration: Override the estimated duration in seconds. caption: Caption text for TikTok / Instagram Reel / Instagram Post templates. title: Title text for YouTube Shorts / YouTube video templates. music_path: Absolute path to background music file. outro_path: Absolute path to outro video file (YouTube template only).
video_watermark Add an image watermark to a video and render a new output file. Args: input_path: Absolute path to the existing input video. The source is read only. image_path: Absolute path to the watermark image. PNG with transparency is recommended. position: Watermark position. Accepts named positions such as top-left and bottom-right, pixel dicts like {"x": 100, "y": 50}, or percentage dicts like {"x_pct": 0.5, "y_pct": 0.5}. opacity: Watermark opacity from 0.0 fully transparent to 1.0 fully opaque. margin: Non-negative edge margin in pixels for named positions. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied. crf: Optional CRF override from 0 to 51, where lower means higher quality. preset: Optional FFmpeg encoding preset: ultrafast, fast, medium, slow, or veryslow.
video_export Export a video for final delivery with quality tuning. Use ``video_export`` when you want to re-encode a video for publishing with a quality preset (e.g. high-quality mp4 for YouTube). For format/converter changes (mp4 → webm, gif), prefer :func:`video_convert`. Args: input_path: Absolute path to the existing input video. The source is read only. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied. quality: Delivery quality preset: low, medium, high, or ultra. format: Output format. Supported values are mp4, webm, gif, and mov.
video_crop Crop a video to a rectangular region and render a new output file. Provide either ``width`` + ``height`` or ``crop_percent`` (e.g. 50 for a center 50% crop). ``x`` and ``y`` default to center. Args: input_path: Absolute path to the existing input video. The source is read only. width: Width of the crop region in pixels. Pair with height unless using crop_percent. height: Height of the crop region in pixels. Pair with width unless using crop_percent. x: Optional X offset in pixels. Defaults to a centered crop when omitted. y: Optional Y offset in pixels. Defaults to a centered crop when omitted. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied. crop_percent: Alternative to width/height. Percentage of original dimensions to keep in a centered crop, such as 50 for the center 50%.
video_rotate Rotate and/or flip a video and render a new output file. Args: input_path: Absolute path to the existing input video. The source is read only. angle: Rotation angle in degrees. Supported values are 0, 90, 180, and 270. flip_horizontal: Mirror the video horizontally after rotation when true. flip_vertical: Mirror the video vertically after rotation when true. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied.
video_fade Add fade-in and/or fade-out effects to a video and render a new output file. Args: input_path: Absolute path to the existing input video. The source is read only. fade_in: Non-negative fade-in duration in seconds from black at the start. fade_out: Non-negative fade-out duration in seconds to black at the end. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied. crf: Optional CRF override from 0 to 51, where lower means higher quality. preset: Optional FFmpeg encoding preset: ultrafast, fast, medium, slow, or veryslow.
video_edit Execute a full timeline-based edit from a JSON specification. The timeline JSON describes video clips, audio tracks, text overlays, image overlays, transitions, and export settings in a single operation. Image overlays are applied in a single filtergraph pass (no multiple re-encodes). Sequence shortcut (simple multi-clip chain with per-boundary transitions):: { "clips": ["a.mp4", "b.mp4", "c.mp4"], "transitions": ["fade", "dissolve"], "transition_duration": 0.5 } Args: timeline: Full Timeline JSON (width/height/tracks/export) **or** the sequence shortcut above. Can also be a JSON string or a path to a .json file. Image overlays in tracks: {"type": "image", "images": [{"source": "logo.png", "position": "top-right", "width": 200, "opacity": 0.8}]} output_path: Where to save the final video. Auto-generated if omitted.
video_extract_audio Extract the audio track from a video file. Args: input_path: Absolute path to the input video. output_path: Where to save the audio file. Auto-generated if omitted. format: Audio format (mp3, aac, wav, ogg, flac).
video_metric_qc Offline metric floor (duration/black/loudness) — fail-closed, no invented values.
glitch_digital_feedback Apply digital feedback glitch effect (requires Node.js + GPU). Iterative frame feedback with scale/rotation transform. Each frame blends with a scaled+rotated version of the previous output, creating ghostly trails and recursive visual patterns. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. feedback_mix: Blend between current and feedback (0-1). Default 0.5. scale: UV scale for previous frame. Default 1.0. rotation: Rotation in degrees. Default 0.0. decay: Ghost trail opacity (0-1). Default 0.9. Returns: Dict with success status and output_path.
glitch_slit_scan Apply slit-scan temporal displacement effect (requires Node.js + GPU). Each row/column of the output is sampled from a different past frame, creating a time-smeared effect reminiscent of slit-scan photography. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. depth: Number of past frames to use (1-120). Default 30. direction: 0=top-bottom, 1=bottom-top, 2=left-right, 3=right-left. Default 0. Returns: Dict with success status and output_path.
glitch_depth_splatting Apply depth-based point splatting effect (requires Node.js + GPU). Extracts pseudo-depth from luminance and renders the image as scattered points, creating a 3D particle-like appearance. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. depth_scale: Depth extraction intensity. Default 1.0. spread: Point spread distance in pixels. Default 10.0. point_size: Size of each splatted point. Default 3.0. threshold: Depth cutoff threshold (0-1). Default 0.5. Returns: Dict with success status and output_path.
glitch_point_cloud Apply point cloud rendering effect (requires Node.js + GPU). Samples the image as scattered points arranged in a 3D-rotated grid, with depth-based displacement creating a volumetric look. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. density: Point sampling density (0-1). Default 0.5. point_size: Size of each point. Default 2.0. rotation: 3D rotation angle in degrees. Default 0.0. depth: Depth displacement intensity. Default 1.0. Returns: Dict with success status and output_path.
video_validate_text_layout Validate a set of text overlays for visual failure modes before rendering. Checks for: text overlap, low contrast, unsafe positioning, excessive sequential overlays, and missing shadows. Args: overlays: List of overlay specs with keys: text, position, size, color, shadow (optional), start_time (optional), duration (optional). video_width: Video width in pixels. video_height: Video height in pixels. background_color: Background hex color for contrast checking. Returns: dict with warnings list and clean boolean.
video_extract_frame Extract a single frame from a video for visual verification. Args: input_path: Absolute path to the video. timestamp: Time in seconds to extract. output_path: Where to save the frame. Auto-generated if omitted.
shorts_plan_show Load a saved shorts plan and return source-free proposals for review.
shorts_review Append one human review decision to a saved shorts plan (source-free).
shorts_render Render platform drafts for an approved candidate from a saved plan.
shorts_package Package approved platform renders from a saved plan. Never posts.
effect_vignette Apply vignette effect - darkened edges. Creates a darkened border effect that draws attention to the center of the frame. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. intensity: Darkness amount 0-1. Default 0.5. radius: Vignette radius 0-1 (1 = edge of frame). Default 0.8. smoothness: Edge softness 0-1. Default 0.5. Returns: Dict with success status and output_path.
sound_plan_validate Validate a SoundPlan payload (or a built-in minimal plan when omitted).
effect_chromatic_aberration Apply chromatic aberration - RGB channel separation. Creates a trendy RGB split effect popular in tech/glitch aesthetics. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. intensity: Pixel offset amount. Default 2.0. angle: Separation direction in degrees. Default 0 (horizontal). Returns: Dict with success status and output_path.
effect_scanlines Apply CRT-style scanlines overlay. Simulates old CRT monitor scanline effect with optional flicker. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. line_height: Pixels per scanline. Default 2. opacity: Line opacity 0-1. Default 0.3. flicker: Brightness variation 0-1. Default 0.1. Returns: Dict with success status and output_path.
effect_noise Apply film grain or digital noise. Adds texture noise to video for vintage or lo-fi aesthetics. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. intensity: Noise amount 0-1. Default 0.05. mode: Noise type (film, digital, color). Default film. animated: Whether noise changes per frame. Default true. Returns: Dict with success status and output_path.
effect_glow Apply bloom/glow effect for highlights. Creates a soft glow around bright areas of the video. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. intensity: Glow strength 0-1. Default 0.5. radius: Blur radius in pixels. Default 10. threshold: Brightness threshold 0-1. Default 0.7. Returns: Dict with success status and output_path.
video_layout_grid Create grid-based multi-video layout. Arranges multiple videos in a grid pattern (2x2, 3x1, etc.). Args: clips: List of absolute paths to video files. layout: Grid layout (2x2, 3x1, 1x3, 2x3). output_path: Absolute path for output video. gap: Pixels between clips. Default 10. padding: Padding around grid. Default 20. background: Background color hex. Default #141414. Returns: Dict with success status and output_path.
video_layout_pip Picture-in-picture overlay. Overlay a smaller video on top of a main video. Args: main_path: Absolute path to main video. pip_path: Absolute path to picture-in-picture video. output_path: Absolute path for output video. position: Position (top-left, top-right, bottom-left, bottom-right). Default bottom-right. size: PIP size as fraction of main. Default 0.25. margin: Margin from edges in pixels. Default 20. border: Add border around PIP. Default true. border_color: Border color hex. Default #CCFF00. border_width: Border width in pixels. Default 2. rounded_corners: Apply rounded corners to PIP. Default true. Returns: Dict with success status and output_path.
video_text_animated Add animated text to video. Overlay text with animation effects (fade, slide, etc.). Args: input_path: Absolute path to input video. text: Text to display. output_path: Absolute path for output video. animation: Animation type (fade, slide-up, typewriter). Default fade. font: Font family. Default Arial. size: Font size. Default 48. color: Text color. Default white. position: Text position. Default center. start: Start time in seconds. Default 0. duration: Display duration. Default 3.0. Returns: Dict with success status and output_path.
video_subtitles_styled Burn subtitles from SRT/VTT with custom styling. Embeds subtitle file into video with customizable appearance. Args: input_path: Absolute path to input video. subtitles_path: Absolute path to SRT or VTT file. output_path: Absolute path for output video. style: Optional style dict with font, size, color, outline, etc. Returns: Dict with success status and output_path.
video_mograph_count Generate animated number counter video. Creates a standalone video of an animated counting number. Args: start: Starting number. end: Ending number. duration: Animation duration in seconds. output_path: Absolute path for output video. style: Optional style dict with font, size, color, glow. fps: Frame rate. Default 30. Returns: Dict with success status and output_path.
video_mograph_progress Generate progress bar / loading animation. Creates a standalone progress animation video. Args: duration: Animation duration in seconds. output_path: Absolute path for output video. style: Progress style (bar, circle, dots). Default bar. color: Progress color hex. Default #CCFF00. track_color: Background track color hex. Default #333333. fps: Frame rate. Default 30. Returns: Dict with success status and output_path.
video_info_detailed Get extended video metadata. Returns detailed video information including scene change detection and dominant colors. Args: input_path: Absolute path to input video. Returns: Dict with duration, fps, resolution, bitrate, has_audio, scene_changes.
video_auto_chapters Auto-detect scene changes and create chapters. Analyzes video for scene cuts and returns chapter timestamps. Args: input_path: Absolute path to input video. threshold: Scene detection threshold 0-1. Default 0.3. Returns: List of (timestamp, description) chapter tuples.
transition_glitch Apply glitch transition between two video clips. Args: clip1_path: Absolute path to first video clip. clip2_path: Absolute path to second video clip. output_path: Absolute path for output video. duration: Transition duration in seconds (default 0.5). intensity: Glitch intensity 0-1 (default 0.3).
transition_pixelate Apply pixelate transition between two video clips.
transition_morph Apply morph transition between two video clips.
video_workflow_validate Validate an agent workflow job-spec without rendering any media. Runs the fail-closed structural validator over the JSON job-spec at ``spec_path``: op allowlist (probe|trim|resize|convert|merge|add_text|composite_layers), symbolic ``@ref`` resolution (@sources.<id>, @work/<name>, @outputs.<id>), backward-reference-only ordering (a step may reference @work outputs from strictly-earlier steps only), per-op param introspection, and workspace-confined path safety (absolute paths and ../ / symlink escapes fail closed). Returns a structured verdict (``{"valid": true, ...}``) on success. On any structural violation it fails closed with a specific error ``code`` (``invalid_workflow_spec``, ``unknown_workflow_ref``, ``unsupported_workflow_op``, ``unsafe_workflow_source``, ``invalid_workflow_params``). Args: spec_path: Absolute path to the workflow job-spec JSON file.
video_workflow_plan Produce a no-render plan for an agent workflow job-spec. Validates the spec first (fail-closed) and then builds a dry-run plan artifact WITHOUT rendering any media: the ordered operation graph, per-source ffprobe results (duration/resolution/codec) and sha256 content hashes where the source file exists, declared output intents, a variant-expansion summary, tool + FFmpeg versions, and warnings for runtime concerns that are not structural errors (e.g. a source file that does not exist yet). The only file written is the optional plan JSON at ``save_plan``; paths inside the artifact are workspace-relative. Pass ``variant`` to plan a single named batch variant: the plan reflects that variant's EFFECTIVE (post-override) steps and auto-named output paths and records ``workflow.variant``. An unknown variant or malformed override fails closed (``invalid_workflow_variant``). Returns the plan artifact on success. On a structurally invalid spec it fails closed with a specific error ``code`` (same codes as ``video_workflow_validate``). Args: spec_path: Absolute path to the workflow job-spec JSON file. save_plan: Optional path to write the plan artifact as JSON. variant: Optional declared variant id to plan its effective steps.
video_workflow_render Execute an agent workflow job-spec and return a provenance receipt. Validates the spec first (fail-closed), then runs each allowlisted op (probe|trim|resize|convert|merge|add_text|composite_layers) SEQUENTIALLY in spec order via the backing engine functions. Intermediates are written to a per-run ``@work`` directory unique to this invocation and cleaned on success (kept on failure); final media lands at the declared ``@outputs`` paths. Batch variants: pass ``variant=<id>`` to render one declared variant (its overrides patch the shared steps/outputs, and the single ``@outputs`` path is auto-named with the variant id so N variants emit N distinct outputs); the receipt records ``workflow.variant``. Pass ``all_variants=True`` to render EVERY declared variant in turn and return a ``workflow_batch`` summary (one receipt per variant, each into its own ``@work`` dir); use ``save_receipt_dir`` to also write each variant's receipt to ``<dir>/<variant>.json``. ``variant`` and ``all_variants`` are mutually exclusive. Pass ``keep_intermediates=True`` to retain ``@work`` intermediates even on success (recorded as the ``keep-intermediates`` cleanup policy). Pass ``resume_receipt`` (a prior render receipt from a job that failed with its intermediates kept) to RESUME: the current spec_hash must equal the receipt's (else fail-closed ``resume_spec_mismatch``) AND, for a variant, the receipt's variant must match (else ``resume_variant_mismatch``); each step whose recorded status is ``completed`` AND whose recorded input hashes still match AND whose recorded output file still exists and re-hashes to the recorded hash is SKIPPED, and the first step failing any check plus everything after it re-runs. Returns a workflow receipt (``receipt_kind: "workflow"``) capturing tool + FFmpeg versions, the spec hash, per-source probes/hashes, per-step status with real sha256 hashes of every consumed input and produced output, the cleanup manifest, and the determinism-scope caveat. On the first failing step it fails closed: the failure is recorded on the receipt (still written to ``save_receipt`` when given) and surfaced as a structured error. Args: spec_path: Absolute path to the workflow job-spec JSON file. resume_receipt: Optional path to a prior render receipt to resume from. save_receipt: Optional path to write the workflow receipt as JSON. keep_intermediates: Retain @work intermediates even on success. variant: Optional declared variant id to render a single variant. all_variants: Render every declared variant and return a batch summary. save_receipt_dir: With all_variants, directory for per-variant receipts.
video_workflow_inspect Summarize any receipt this project emits, with a read-only integrity check. Reads a workflow render receipt, a dry-run ``workflow_plan`` artifact, or a ``layer_plan`` receipt (v1 legacy with NO ``receipt_kind`` field, or v2) at ``receipt_path`` and returns a NORMALIZED inspection: the kind (inferred from the ``tool`` field when ``receipt_kind`` is absent, per legacy tolerance), schema_version, tool, versions, a status summary (per-step statuses, failed step + error if any), a hash presence/integrity report (which recorded source/output hashes still match the bytes on disk NOW — a read-only re-check), outputs, warnings, cleanup state, plus human-review pointers and known limitations. Nothing is rendered or modified. A malformed/unreadable receipt fails closed with ``invalid_workflow_receipt``. Args: receipt_path: Absolute path to the receipt JSON file to inspect. compare_path: Optional second receipt; when set, also return a diff (N3).
video_find_moments Persist or query a revision-bound local semantic index.
video_project_recipe_export Export a verified edit revision as a path-free portable recipe.
video_project_recipe_replay Replay a portable recipe into a new durable project revision.
video_intent Route a semantic intent verb to a plan (does not silently mutate media). Optional ``goal`` compiles a reviewable cutfile (N1) without rendering.
video_propose_broll Transcript-keyed b-roll proposals — human review required, never silent insert.
video_translate_captions Translate SRT captions with honest language-coverage reporting (EN→ES first).
video_language_coverage Honest per-surface language coverage for transcribe/translate/dub.
video_review_run Watching guardrail: run offline metric floor under a review policy.
video_review_decide Record human accept/reject/revise. Accept + EDL approval can render (N4).
video_propose_mutations Map QC findings to typed proposed mutations (human apply only).
video_init_project Scaffold a local Kinocut project directory (media/out/receipts + optional Cutfile).
video_brand_kit Save or load a brand kit / style profile JSON.
video_estimate_operation Dry-run local wall-time / cost-unit estimate (not cloud pricing).
video_cutfile_validate Validate a Cutfile, or compile one from ``goal`` / ``platform`` (N1/N5).
video_cutfile_render Render a schema-valid Cutfile via the workflow engine (Track E).
sound_voice_batch Render a local deterministic voice batch from a SoundPlan (or a minimal plan).
video_timeline_ir_validate Validate Timeline IR and compile to render DAG (P3.0). Semantic timelines (shots/silences/words) also get agent-visible ``text`` (N2).
video_qc_vision Vision QC third — graceful if VLM unavailable (P3.3).
video_qc_narrative Narrative/retention heuristics incl. first-15s window (P3.4).
video_generative_plan Generative last-mile plan with spend caps (P4.1) — plan only. Paid providers require ``max_spend_usd > 0`` and estimate ≤ cap. Use ``assert_generative_executable`` (multipliers) before any provider I/O.
video_otio_export Export Timeline IR to simplified OTIO JSON (P4.2).
video_otio_import Import simplified OTIO JSON to Timeline IR (P4.2).
video_review_ui Write hot-reloading human review HTML surface (P4.3).
video_dub_plan Local TTS dub plan ES-first (P4.4) — plan only until backend configured.
video_publish_validate Validate a publish spec. ``solve=True`` also emits a cutfile (N5).
video_hook_candidates Thumbnail + hook-title candidates for human pick (TE.2).
video_audiogram_plan Audiogram + chapter mark plan (TE.4).
video_punch_zoom_plan Auto-zoom punch-in plan on cut points (TE.5).
video_seek_frame Frame-accurate seek conversion (TE.9).
video_edit_session Conversational edit session. Step with ``input_path`` measures real QC (N6).
video_semantic_timeline Build a local, source-time semantic timeline from supplied analyzer evidence.
video_semantic_query Query source-backed semantic spans locally without inventing descriptions.
video_timeline_edit_plan Plan explicit or ordinary-person timeline edits as a reviewable EDL and diff.
video_visual_transform_plan Plan subject/camera analysis, reframing, or stabilization with crop budgets.
video_restoration_plan Plan or evaluate evidence-gated local restorative work.
video_composition_plan Build source-backed manifests, selections, compositions, previews, and checks.
video_creative_autopilot_plan Coordinate proven local planners or return a structured abstention.
video_remote_egress_plan Plan explicit remote egress and fake adapter receipts without network I/O.
sound_capabilities Discover the bounded public sound operation set (local-first, JSON-safe).
sound_qa_asr Run the local fake ASR verification port against script hashes.
image_extract_colors Extract dominant colors from an image or video frame. Uses K-means clustering to find the most prominent colors. Returns hex codes, RGB values, CSS color names, and percentage coverage. Args: image_path: Absolute path to the image or video file. If video, extracts a representative frame. n_colors: Number of dominant colors to extract (1-20, default 5).
image_generate_palette Generate a color harmony palette from an image or video frame. Extracts the dominant color and generates harmonious colors based on color theory (complementary, analogous, triadic, split_complementary). Args: image_path: Absolute path to the image or video file. If video, extracts a representative frame. harmony: Harmony type (complementary, analogous, triadic, split_complementary). n_colors: Number of dominant colors to base palette on (default 5).
image_analyze_product Analyze a product image or video frame — extract colors and optionally generate AI description. Extracts dominant colors from an image. Optionally uses Claude Vision to generate a natural language description of the product. Args: image_path: Absolute path to the image or video file. If video, extracts a representative frame. use_ai: If True, use Claude Vision to generate a description (requires ANTHROPIC_API_KEY). n_colors: Number of dominant colors to extract (default 5).
still_match Match a package of stills to a hero plate with one shared WB/exposure gain. Does not overwrite sources. Writes matched stills + JSON receipt under output_dir. Per-frame auto-WB is disabled (shared gains only). Args: hero: Absolute path to the hero/establish still. inputs: Absolute paths to package stills. output_dir: Absolute directory for outputs and receipt.
still_grade Grade stills in order correct→match→look; optional 3D LUT applied last. Signal mode marks the LUT as signal-alignment (not film cosplay) and records near-black/near-white preservation deltas. Args: inputs: Absolute still paths. output_dir: Absolute output directory. hero: Optional hero still for match stage. lut_path: Optional absolute .cube/.3dl path applied last. signal_mode: Treat LUT as signal alignment.
still_gate Fail-closed cohesion gate for a still package + contact sheet. Checks luma spread and shadow green/cyan wash. Returns passed=false with named metric/frame failures when the package fails. Args: inputs: Absolute still paths in the package. output_dir: Absolute directory for receipt and contact sheet.
image_edit Establish-locked still match with plan/receipt (intent is audit metadata). v1 pixel path is free establish mean-RGB match only; ``intent`` is required metadata and does not select pixel ops. Paid gen is off unless allow_paid_gen=True (still unavailable until configured). Dry-run returns a plan without mutating pixels. Args: source: Absolute source still path. reference: Absolute establish/reference still path. intent: Required audit text (what the agent meant); not a NL pixel director. output_dir: Absolute output directory. prefer: 'edit' (default) or 'gen'. allow_paid_gen: Explicit paid generative permission (default False). dry_run: Plan only when True.
still_package Multi-still package workflow: edit beats → match → grade → cohesion gate. Args: establish: Absolute establish/hero still. beats: Absolute beat still paths. output_dir: Absolute package output directory. dry_run: When True, return planned graph only. apply_grade: Run ordered grade after match (default True). lut_path: Optional LUT path for grade look stage. signal_mode: Signal-alignment LUT mode.
glitch_rgb_shift Apply RGB channel shift glitch effect. Shifts red and blue channels in opposite directions for a chromatic split look. Optionally adds per-frame noise for a jittery feel. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. amount: Shift distance in pixels. Default 10.0. angle: Shift direction in degrees. Default 0 (horizontal). noise: Per-frame noise amplitude (0-1). Default 0. Returns: Dict with success status and output_path.
hyperframes_preview Launch Hyperframes preview studio for live preview. Args: project_path: Absolute path to the Hyperframes project directory. port: Port for the preview server (default 3002).
glitch_scanline_jitter Apply scanline jitter glitch effect. Displaces random horizontal rows of pixels for a CRT malfunction look. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. jitter_amount: Max horizontal displacement in pixels. Default 15. frequency: Fraction of rows affected (0-1). Default 0.3. speed: Animation speed multiplier. Default 5. row_height: Height of each jitter band in pixels. Default 4. Returns: Dict with success status and output_path.
glitch_screen_tearing Apply screen tearing glitch effect. Creates horizontal tear bands at varying Y positions that shift left/right over time. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. tear_count: Number of tear bands. Default 5. offset_range: Max horizontal offset in pixels. Default 80. speed: Animation speed. Default 3. Returns: Dict with success status and output_path.
glitch_vhs_tracking Apply VHS tracking error glitch effect. Simulates VHS tape tracking problems with color bleed, rolling bands, and analog noise. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. tracking: Tracking error intensity (0-1). Default 0.5. noise_amount: VHS noise intensity (0-1). Default 0.03. color_bleed: Red channel shift in pixels. Default 3. roll_speed: Vertical roll speed. Default 2. Returns: Dict with success status and output_path.
glitch_macroblocking Apply macroblocking glitch effect. Simulates codec artifacting by downscaling/upscaling to create blocky pixelation combined with color posterization. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. block_size: Block size in pixels. Default 16. intensity: Blend with original (0-1). Default 0.7. color_reduction: Color level reduction (0-1). Default 0.3. Returns: Dict with success status and output_path.
glitch_datamoshing Apply datamoshing glitch effect. Simulates P-frame corruption where displacement drifts across frames then periodically resets, mimicking real datamosh artifacts. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. drift: Max displacement drift in pixels. Default 20. iframe_interval: Frame interval for displacement resets. Default 30. Returns: Dict with success status and output_path.
glitch_cmyk_split Apply CMYK split glitch effect. Shifts RGB channels at 90-degree intervals to simulate four-plate offset print registration errors. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. amount: Shift distance in pixels. Default 8. angle: Base angle in degrees. Default 0. noise: Per-frame noise amplitude (0-1). Default 0. Returns: Dict with success status and output_path.
glitch_turbulent_displacement Apply turbulent displacement glitch effect. Uses layered sin/cos expressions at different frequencies to approximate fractal Brownian motion noise for organic-looking displacement. Args: input_path: Absolute path to input video. output_path: Absolute path for output video. amount: Displacement magnitude in pixels. Default 20. scale: Base noise frequency. Default 0.01. speed: Animation speed. Default 1. octaves: Number of noise octaves (1-5). Default 3. Returns: Dict with success status and output_path.
hyperframes_render Render a Hyperframes composition to video. Args: project_path: Absolute path to the Hyperframes project directory. output_path: Where to save the video. Auto-generated if omitted. fps: Frame rate (24, 30, 60). width: Output width in pixels. height: Output height in pixels. quality: Render quality (draft, standard, high). Default standard. format: Output format (mp4, webm, mov, png-sequence). Default mp4. resolution: Hyperframes resolution preset (landscape, portrait, landscape-4k, portrait-4k, 1080p, 4k, uhd). composition: Specific composition file to render instead of index.html. workers: Parallel render workers (number or 'auto'). Default auto. crf: Override encoder CRF (lower = better quality). variables: Inline JSON object/string with runtime data for the composition. variables_file: Path to a JSON file with runtime data for the composition.
hyperframes_compositions List compositions in a Hyperframes project. Args: project_path: Absolute path to the Hyperframes project directory.
hyperframes_still Render a single frame as image from a Hyperframes composition. Args: project_path: Absolute path to the Hyperframes project directory. output_path: Where to save the image. Auto-generated if omitted. frame: Frame number to render (default 0). variables: Inline JSON object/string with runtime data for the composition. variables_file: Path to a JSON file with runtime data for the composition.
hyperframes_snapshot Capture key frames as PNG screenshots for visual verification.
hyperframes_inspect Inspect rendered composition layout for overflow and visual issues.
hyperframes_info Print Hyperframes project metadata.
hyperframes_catalog Browse Hyperframes catalog blocks/components.
hyperframes_capture Capture a website as editable Hyperframes components.
hyperframes_tts Generate speech audio or list available Hyperframes local TTS voices.
hyperframes_transcribe Transcribe audio/video to word-level timestamps or import transcripts.
hyperframes_remove_background Cut a person or a product out of a still or video. Default model ``u2net_human_seg`` is people-only (talking heads). For products, packaging, jewelry, bottles, ceramics, or any non-person object, pass ``model="birefnet-general"`` (requires ``pip install "kinocut[object-matte]"``). Never falls through to the people model. Call ``info=True`` with no input to list models and cache without downloading. Guide: docs/PRODUCT_MATTE.md.
hyperframes_doctor Run Hyperframes environment diagnostics.
hyperframes_benchmark Benchmark Hyperframes render speed and file size.
hyperframes_init Scaffold a new Hyperframes project. Args: name: Project name. output_dir: Directory to create the project in. Defaults to current directory. template: Project template (blank, warm-grain, swiss-grid). Default blank. video: Optional source video for project bootstrap. audio: Optional source audio for project bootstrap. skip_transcribe: Skip Whisper transcription during media bootstrap. model: Whisper model for transcription. language: Language code for transcription. tailwind: Add Tailwind CSS browser-runtime support. resolution: Hyperframes canvas resolution preset.
hyperframes_add_block Install a block from the Hyperframes catalog. Args: project_path: Absolute path to the Hyperframes project directory. block_name: Registry item name (e.g. claude-code-window, shader-wipe).
hyperframes_validate Validate a Hyperframes project for rendering readiness. Args: project_path: Absolute path to the Hyperframes project directory.
video_ai_stem_separation Separate audio into stems using Demucs.
hyperframes_to_mcpvideo Render a Hyperframes composition and post-process with mcp-video in one step. Args: project_path: Absolute path to the Hyperframes project directory. post_process: List of post-processing operations, each with 'op' and 'params' keys. Example: [{"op": "resize", "params": {"aspect_ratio": "9:16"}}] output_path: Where to save the final output. Auto-generated if omitted.
video_rescue_plan Analyze one local video and return a policy-classified rescue plan. Planning never changes the source or renders final media. It records findings, safe repair ids, recommendations, unavailable and blocked work, local capability evidence, previews, and an execution estimate.
video_rescue_render Render approved safe repairs from a reviewed rescue plan. Approval ids must name safe repairs in this exact immutable plan. The renderer fails closed on stale inputs, capabilities, policy, resume state, cancellation, or verification failure and never promotes failed output.
video_rescue_inspect Inspect a rescue plan or receipt and re-check artifact integrity.
video_review_package Assemble a review package and publish-gate verdict for a candidate artifact.
video_publish_gate Evaluate the fail-closed publish gate; any blocking finding blocks publishing.
video_review_decision Record a human review decision (writer); corrections supersede by record id.
video_learning_report Project a learning report (verdicts, defects, costs, recipes) from records.
video_cost_ledger Sum known USD cost events by category for the project.
video_recipe_capture Capture a workflow recipe (writer); idempotent by canonical digest.
video_capabilities Probe host capabilities (ffmpeg, whisper, c2pa) and return a capability report.
video_benchmark_run Run the AI-video benchmark corpus against host capabilities.
video_ai_remove_silence Remove silent sections from video.
video_ai_transcribe Transcribe speech to text using Whisper.
video_analyze Comprehensive video analysis — transcript, metadata, scenes, audio, quality, chapters, colors. Accepts a local file path or an HTTP/HTTPS URL. Direct video URLs (e.g. https://example.com/clip.mp4) are downloaded automatically. Streaming-platform URLs (YouTube, Vimeo, TikTok, Twitter/X, Instagram, Twitch, …) require yt-dlp (pip install yt-dlp). Each sub-analysis is independent so one failure will not abort the others. Args: input_path: Local path or HTTP/HTTPS URL to the video. whisper_model: Whisper model size (tiny, base, small, medium, large, turbo). language: Language code for transcription (auto-detect if None). scene_threshold: Scene change sensitivity 0.0-1.0. include_transcript: Run speech-to-text via Whisper (requires openai-whisper). include_scenes: Detect scene changes and boundaries. include_audio: Analyse audio waveform, peaks, and silence regions. include_quality: Run visual quality check. include_chapters: Auto-generate chapter markers from scene changes. include_colors: Extract dominant colors and extended metadata. output_srt: Optional path to write SRT subtitle file. output_txt: Optional path to write plain-text transcript. output_md: Optional path to write Markdown transcript with timestamps. output_json: Optional path to write full JSON transcript data.
video_ai_scene_detect Detect scene changes in video.
video_ai_upscale Upscale video using AI super-resolution.
video_ai_color_grade Apply a color grade to a video — by LUT file, style preset, or reference video. Args: input_path: Video file to grade. output_path: Where to write the graded video. reference_path: Optional reference video — when given, the video's color balance is adjusted to match the reference (overrides style). style: Style preset. One of: auto (gentle contrast lift), warm, cool, vintage, cinematic, dramatic, noir (high contrast, desaturated). lut_path: Optional .cube/.3dl LUT file applied with FFmpeg lut3d — overrides both reference and style for professional grading looks.
video_quality_check Run visual quality checks on a video. Analyzes brightness, contrast, saturation, audio levels, and color balance. Returns quality scores and recommendations. Args: input_path: Absolute path to video file fail_on_warning: If True, treat warnings as failures
video_release_checkpoint Create preview artifacts only after the video passes quality gates. Use this before publishing or chaining more polish effects. It runs a hard quality gate, then writes a thumbnail and storyboard for human inspection.
video_design_quality_check Run comprehensive design quality analysis on a video. Checks layout, typography, color, motion, and composition quality. Can automatically fix issues where possible. Args: input_path: Absolute path to video file auto_fix: If True, automatically apply fixes strict: If True, treat warnings as errors
video_fix_design_issues Auto-fix design issues in a video. Applies automatic fixes for brightness, contrast, saturation, and audio level issues. Args: input_path: Absolute path to input video output_path: Absolute path for output (auto-generated if omitted)
video_project_create Scaffold a cinematic video project with style, storyboard, and refs folders. Args: slug: Project slug using lowercase letters, numbers, hyphens, or underscores. output_dir: Base directory for the projects/ folder. Defaults to the current working directory.
style_pack_read Read STYLE_ and NEG_ blocks from a style.md file or project directory. Args: path: Absolute path to style.md or to a project directory containing style.md.
storyboard_read Read a PUSHING CREATION storyboard table from storyboard.md or a project directory. Args: path: Absolute path to storyboard.md or to a project directory containing storyboard.md.
shot_prompt_render Expand one storyboard shot into prompt and negative_prompt strings. Args: project_path: Absolute path to a project directory containing style.md and storyboard.md. shot: Shot id or 1-based row number from storyboard.md.
video_info Probe a video file for metadata. Returns JSON {success, info:{duration, resolution, codec, fps, size, ...}}. Use before any edit to learn the source's dimensions and length. Pass input_path as the absolute path to the existing video. Args: input_path: Absolute path to the video file.
video_trim Trim a video clip by start time and duration. Returns JSON {success, output_path} pointing at the rendered clip. Use to cut a segment out of a longer video. Pass input_path as the absolute path to the source video (e.g. from video_info), start as a timestamp, and duration or end to define the segment. Args: input_path: Absolute path to the input video. start: Start timestamp (e.g. '00:02:15' or seconds as string like '10.5'). duration: Duration to keep (e.g. '00:00:30' or '30'). Exclusive with end. end: End timestamp. Exclusive with duration. output_path: Where to save the trimmed video. Auto-generated if omitted. accurate: Frame-accurate seeking (slower). Default False uses fast input seeking which may land on the nearest keyframe.
video_speed Change video playback speed and render a new output file. Args: input_path: Absolute path to the existing input video. The source is read only. factor: Speed multiplier within the configured allowed range. 2.0 is 2x faster, 0.5 is half-speed slow motion, and 1.0 means no speed change. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied.
video_merge Merge multiple video clips into one rendered output file. Args: clips: Ordered list of absolute paths to existing video clips. Requires at least two clips for a meaningful merge; each input path is validated and never modified. output_path: Destination for the merged render. Auto-generated if omitted; may be overwritten if an existing path is supplied. transition: Optional single xfade transition for every clip pair, such as fade, dissolve, wipeleft, wiperight, slideleft, or slideright. transitions: Optional per-pair transition list. Overrides transition when both are provided and should have one entry per gap between clips. transition_duration: Duration of each transition in seconds. Must fit inside the shortest neighboring clip.
video_add_text Overlay text on a video (titles, captions, watermarks). Returns JSON {success, output_path}. Use to burn a single text element into a video. Pass input_path as the source video, text with the string to draw, and position/size/color to style it; output_path is auto-named when omitted. Args: input_path: Absolute path to the input video. text: Text to overlay. position: Position on screen. Named (top-left, top-center, etc.), pixel" " {"x": 100, "y": 50}, or percentage {"x_pct": 0.5, "y_pct": 0.5}. font: Path to font file. Uses system default if omitted. size: Font size in pixels. color: Text color (CSS color name or hex). shadow: Add text shadow for readability. start_time: When the text appears (seconds). Null = always visible. duration: How long text is visible (seconds). Requires start_time. output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow).
video_add_texts Overlay multiple text elements on a video in a single FFmpeg pass. Returns JSON {success, output_path}. Use when one video needs several captions at once. Pass input_path as the source video and texts as a list of overlay dicts (text plus optional position/size/color/timing). Args: input_path: Absolute path to the input video. texts: List of text overlay dicts. Each dict may contain: - text (str, required) - position (str|dict, default "center") - font (str, optional) - size (int, default 48) - color (str, default "white") - shadow (bool, default True) - start_time (float, optional) - duration (float, optional) output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow). auto_layout: Automatically distribute vertically stacked texts at the same named position. Default True.
video_add_audio Add, replace, or mix an audio track into a video. Args: video_path: Absolute path to the existing video file. The input file is read only. audio_path: Absolute path to the existing audio file, such as MP3, WAV, M4A, or AAC. volume: Audio gain from 0.0 to 2.0, where 1.0 keeps original loudness. fade_in: Non-negative fade-in duration in seconds applied to the inserted audio. fade_out: Non-negative fade-out duration in seconds applied near the inserted audio end. mix: True mixes the new audio with existing video audio; False replaces the video's original audio track. start_time: Optional start offset in seconds for the inserted audio. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied.
video_resize Resize a video or change its aspect ratio. Returns JSON {success, output_path}. Use to fit a video to target dimensions or a preset ratio. Pass input_path as the source video (e.g. from video_info) and either width/height or aspect_ratio to define the target. Args: input_path: Absolute path to the input video. width: Target width in pixels. Use with height. height: Target height in pixels. Use with width. aspect_ratio: Preset aspect ratio (16:9, 9:16, 1:1, 4:3, 4:5, 21:9). Overrides width/height. quality: Quality preset (low, medium, high, ultra). output_path: Where to save the output. Auto-generated if omitted.
video_convert Convert a video to a different format or codec. Use ``video_convert`` when you need to change the container or codec (e.g. mp4 → webm, or re-encode with a different CRF). For simple final delivery with quality tuning, prefer :func:`video_export`. Long renders stream MCP progress notifications so clients can show a live percentage. Args: input_path: Absolute path to the existing input video. The source is read only. format: Target output format. Supported values are mp4, webm, gif, mov, hevc, av1, and prores. quality: Encoding quality preset. Supported values come from QUALITY_PRESETS: low, medium, high, and ultra. output_path: Destination video path. Auto-generated if omitted; may be overwritten if an existing path is supplied.
search_tools Search registered MCP video tools by keyword. Returns JSON {success, query, count, tools:[{name, description, required_params}]}. Use to find the right tool for a task without reading every description. Pass query with a term such as blur, resize, subtitle, audio, or trim. Args: query: Search term — e.g. "blur", "resize", "subtitle", "audio", "trim".
video_ingest Ingest immutable source bytes into an existing or new private project.
video_preflight Run unified technical, loudness, color, and decode preflight.
video_inspect_temporal Build and persist the complete deterministic temporal evidence package.
video_filter Apply a visual filter to a video. Common presets: - blur: params={"radius": 5, "strength": 1} - color_preset: params={"preset": "warm"} (warm, cool, vintage, cinematic, noir) Args: input_path: Absolute path to the input video. filter_type: Filter type (blur, sharpen, brightness, contrast, saturation," " grayscale, sepia, invert, vignette, color_preset, denoise," " deinterlace, ken_burns, reverb, compressor, pitch_shift," " noise_reduction). params: Optional filter parameters (e.g. radius for blur, preset for color_preset). output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow).
video_luma_key Mask out dark regions based on luminance (brightness). Args: input_path: Absolute path to the input video. threshold: Luminance threshold (0.0-1.0). Pixels darker than this become transparent. output_path: Where to save the output. Auto-generated if omitted.
video_shape_mask Apply a geometric shape mask to a video. Args: input_path: Absolute path to the input video. shape: Shape to use — "circle", "rounded_rect", or "oval". output_path: Where to save the output. Auto-generated if omitted. feather: Feather radius in pixels (0 = sharp edges).
video_hls_segment Segment a video into HLS (HTTP Live Streaming) format. Args: input_path: Absolute path to the input video. output_dir: Directory to save segments. Auto-generated if omitted. segment_duration: Target segment duration in seconds (default 4). playlist_name: Name of the master playlist file. qualities: List of quality levels (e.g. ["low", "medium", "high"]).
video_reverse Reverse video and audio playback so it plays backwards. Args: input_path: Absolute path to the input video. output_path: Where to save the output. Auto-generated if omitted.
video_chroma_key Remove a solid color background (green screen / chroma key). Args: input_path: Absolute path to the input video. color: Color to make transparent in hex format (default green: 0x00FF00). similarity: How similar colors need to be to be keyed out (0.0-1.0, default 0.01). blend: How much to blend the keyed color (default 0.0). output_path: Where to save the output. Auto-generated if omitted.
video_normalize_audio Normalize audio loudness to a target LUFS level. Common presets: -16 (YouTube), -23 (EBU R128/broadcast), -14 (Apple/Spotify). Args: input_path: Absolute path to the input video. target_lufs: Target integrated loudness in LUFS (default -16 for YouTube). output_path: Where to save the output. Auto-generated if omitted.
video_batch Apply the same operation to multiple video files. Args: inputs: List of absolute paths to input video files. operation: Operation (trim, resize, convert, filter, blur, color_grade," " watermark, speed, fade, normalize_audio). params: Parameters for the operation. output_dir: Directory for output files. Auto-generated if omitted.
video_overlay Picture-in-picture: overlay a video on top of another. Args: background_path: Absolute path to the background video. overlay_path: Absolute path to the overlay video. position: Position on screen. Named (top-left, etc.), pixel" " {"x": 100, "y": 50}, or percentage {"x_pct": 0.5, "y_pct": 0.5}. width: Width to scale the overlay to (pixels). height: Height to scale the overlay to (pixels). opacity: Overlay opacity (0.0 to 1.0). start_time: When the overlay appears (seconds). duration: How long the overlay is visible (seconds). output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow).
video_split_screen Place two videos side by side or top/bottom. Args: left_path: Absolute path to the first video. right_path: Absolute path to the second video. layout: Layout type (side-by-side or top-bottom). output_path: Where to save the output. Auto-generated if omitted.
video_detect_scenes Detect scene changes in a video. Args: input_path: Absolute path to the input video. threshold: Scene detection sensitivity (0.0-1.0, lower = more sensitive, default 0.3). min_scene_duration: Minimum scene duration in seconds (default 1.0).
video_create_from_images Create a video from a sequence of images. Args: images: List of absolute paths to image files (in order). output_path: Where to save the output video. Auto-generated if omitted. fps: Frames per second for the output video (default 30.0).
video_export_frames Export frames from a video as individual images. Args: input_path: Absolute path to the input video. output_dir: Directory for extracted frames. Auto-generated if omitted. fps: Frames per second to extract (1.0 = 1 frame per second, default 1.0). format: Output image format (jpg or png, default jpg).
video_generate_subtitles Generate SRT subtitles from text entries and optionally burn into video. Args: entries: List of subtitle entries with keys: start (float), end (float), text (str). input_path: Absolute path to the input video. burn: If True, burn subtitles into the video (default False).
video_compare_quality Compare video quality between original and processed versions. Args: original_path: Absolute path to the original/reference video. distorted_path: Absolute path to the processed/distorted video. metrics: Metrics to compute (default: ['psnr', 'ssim']).
video_read_metadata Read metadata tags from a video/audio file. Args: input_path: Absolute path to the video or audio file.
video_write_metadata Write metadata tags to a video/audio file. Args: input_path: Absolute path to the input file. metadata: Dict of tag key-value pairs (e.g. {'title': 'My Video', 'artist': 'Me'}). output_path: Where to save the output. Auto-generated if omitted.
video_stabilize Stabilize a shaky video using motion vector analysis. Args: input_path: Absolute path to the input video. smoothing: Smoothing strength (default 15, higher = more stable). zooming: Zoom percentage to avoid black borders (default 0). output_path: Where to save the output. Auto-generated if omitted.
video_apply_mask Apply an image mask to a video with edge feathering. Args: input_path: Absolute path to the input video. mask_path: Absolute path to the mask image (white = visible, black = transparent). feather: Feather/blur amount at mask edges in pixels (default 5). output_path: Where to save the output. Auto-generated if omitted.
video_audio_waveform Extract audio waveform data (peaks and silence regions). Args: input_path: Absolute path to the input video/audio file. bins: Number of time segments to analyze (default 50).
video_cleanup Delete intermediate video files after a workflow. Useful for multi-step pipelines that leave temporary outputs. Files in ``keep`` are preserved even if listed in ``files``. Args: files: List of absolute paths to delete. keep: List of absolute paths to preserve (optional).
video_composite_layers Composite ordered image/video layers from a JSON spec. Supports explicit straight/premultiplied input alpha, opacity, positioning, transforms, timing windows, masks/mattes, allowlisted blend modes, rotation, and effect-noise routes to named layer/mask/mask-edge streams. Emits a deterministic layer-plan receipt; unsupported routes fail closed. Args: spec_path: Path to a composite-layers JSON spec. output_path: Optional destination media path. save_layer_plan: Optional JSON path for the resolved layer-plan receipt. dry_run: Validate and emit the layer plan without rendering media.
video_verdict Persist exact-asset analysis; approvals require active human evidence.
video_acceptance_eval Evaluate exact-spec verdict and defect evidence without approving anything.
video_body_swap Replace video while preserving approved audio with explicit duration policy.
video_salvage Create one lineage-bound salvage derivative and a fresh review slot.
audio_synthesize Generate audio procedurally using synthesis. Creates WAV files from scratch using mathematical waveforms. No external audio files needed. Supports envelopes, reverb, filtering, and fade effects. Args: output_path: Absolute path for the output WAV file. waveform: Waveform type (sine, square, sawtooth, triangle, noise). Default sine. frequency: Base frequency in Hz. Default 440 (A4 note). duration: Duration in seconds. Default 1.0. volume: Amplitude 0-1. Default 0.5. effects: Optional effects dict with keys: - envelope: {"attack", "decay", "sustain", "release"} in seconds - fade_in: Fade in duration in seconds - fade_out: Fade out duration in seconds - reverb: {"room_size", "damping", "wet_level"} - lowpass: Cutoff frequency in Hz Returns: Dict with success status and output_path.
audio_preset Generate preset sound design elements. Pre-configured sound effects for common use cases. No external audio files needed. Available presets: - UI: ui-blip, ui-click, ui-tap, ui-whoosh-up, ui-whoosh-down - Ambient: drone-low, drone-mid, drone-tech - Notifications: chime-success, chime-error, chime-notification - Data: typing, scan, processing, data-flow Args: preset: Preset name from the list above. output_path: Absolute path for the output WAV file. pitch: Pitch variation (low, mid, high). Default mid. duration: Override default duration (seconds). intensity: Effect intensity 0-1. Default 0.5. Returns: Dict with success status and output_path.
audio_sequence Compose multiple audio events into a timed sequence. Creates a layered audio track from multiple timed sound events. Args: sequence: List of audio events, each with: - type: "tone", "preset", or "whoosh" - at: Start time in seconds - duration: Event duration in seconds - freq/frequency: For tones (Hz) - name: For presets (preset name) - volume: 0-1 amplitude - waveform: For tones (sine, square, etc.) output_path: Absolute path for the output WAV file. Returns: Dict with success status and output_path.
audio_compose Layer multiple audio tracks with volume mixing. Mix multiple WAV files together with individual volume control. Args: tracks: List of track configs with: - file: Absolute path to WAV file - volume: Volume multiplier 0-1 - start: Start time offset in seconds - loop: Whether to loop the track (default false) duration: Total output duration in seconds. output_path: Absolute path for the output WAV file. Returns: Dict with success status and output_path.
audio_effects Apply audio effects chain to a WAV file. Process audio through a chain of effects like reverb, filtering, normalization. Args: input_path: Absolute path to input WAV file. output_path: Absolute path for output WAV file. effects: List of effect configs with: - type: "lowpass", "reverb", "normalize", "fade" - Additional params per effect type Returns: Dict with success status and output_path.
video_add_generated_audio Add procedurally generated audio to a video. One-shot convenience function to generate and add audio to video. Args: input_path: Absolute path to input video. audio_config: Configuration dict with: - drone: {"frequency", "volume"} for background tone - events: List of timed sound events output_path: Absolute path for output video. Returns: Dict with success status and output_path.
video_audio_spatial Apply 3D spatial audio positioning.
video_duck_audio Mix background music under a video's voice with automatic ducking. The video's own audio (voice/dialog) drives FFmpeg's sidechain compressor, so the music dips while speech plays and recovers in pauses — the standard treatment for shorts, reels, and podcast clips. Args: input_path: Video whose existing audio drives the ducking. music_path: Background music or ambience to mix underneath. output_path: Where to save the result. Auto-generated if omitted. music_volume: Base music level before ducking (0-2, default 0.6). threshold: Sidechain level above which ducking engages (0-1). ratio: Compression ratio applied while voice plays (1-20). attack: How fast the music dips, in milliseconds (1-2000). release: How fast the music recovers, in milliseconds (1-9000).
video_audio_bed Mix a looped music bed under a voice source with ducking and loudness normalization. The voice drives sidechain ducking and loudness normalization. A deterministic AudioBedReceipt is returned, and output duration stays locked to the voice source. Args: voice_source: Video/audio whose existing audio (voice/dialog) drives ducking and sets output duration. music_path: Background music or ambience to mix underneath; looped when shorter than the voice. output_path: Absolute path for the rendered output file. loop: Loop the music bed when it is shorter than the voice. Default True. loop_crossfade: Crossfade seconds between loop iterations. Default 1.5. fade_in: Output fade-in seconds. Default 0.0. fade_out: Output fade-out seconds. Default 2.2. target_lufs: Loudness normalization target in LUFS. Default -16.0. duck_threshold: Sidechain level above which ducking engages. Default 0.02. duck_ratio: Compression ratio applied while voice plays. Default 5.0. duck_attack: Duck attack in milliseconds. Default 25.0. duck_release: Duck release in milliseconds. Default 450.0. music_volume: Base music level before ducking. Default 1.0. save_receipt: Optional absolute path to write the AudioBedReceipt JSON. Returns: Dict with success status, output_path, output_duration, ducking_engaged, warnings, elapsed_ms, and the structured receipt.
Permissions 4
network medium filesystem low shell high env_vars low