Skip to main content
Glama

Recut clip job (spends credits)

recut_clip_job
Destructive

Creates a new clip job from an existing one with different settings, returning a new job ID while the original remains unchanged.

Instructions

Creates a new clip job from the same source video as an existing job, with different settings such as caption style, hook style, clip length, language, framing, music, B-roll or prompt. Spends credits like create_clip_job (1 per started minute of the billed range, minimum 1, at most 30 minutes per job) and returns a new job_id; the original job and its clips stay unchanged.

Before calling, run quote_clip_job with job_id, show the price, get the user's agreement and pass max_credits. Identical requests within 10 minutes return the existing recut instead of charging again.

Without start_sec and end_sec the recut reuses the original job's range and is billed for it; the API does not reveal that range, so the quote is an upper bound (the whole source video, which must then be at most 30 minutes long). By default the same moments are re-rendered with the new look, which is faster because the source is cached; this works only when the range equals the original job's range. Set new_moments=true to let the AI pick different moments. Only the settings you pass change; everything else (including the original outro and whole-video mode) is inherited from the original job.

Works for completed and failed clip jobs, not for jobs that are still running. To re-run a failed job with the same settings for free, use retry_clip_job. Next, call get_clip_job with the new job_id and wait_sec=50.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
outroNoEnding added to every clip: default branded outro, soon/like short Russian text cards. Omit to keep the original job's outro (including a custom one).
emojisNoAdd emojis to captions where they fit.
job_idYesClip job to recut.
promptNoWhat kind of moments to pick, in plain words, e.g. 'funny moments about money'.
end_secNoEnd of the part to process, in seconds. Default: the end of the video (its length is looked up automatically when the platform reports it). At most 30 minutes after start_sec.
framingNoauto = smart crop; full_frame = keep the whole wide frame on a blurred background; portrait_only = always crop to the subject.
languageNoTwo-letter language code of the speech, e.g. en or ru. Omit to auto-detect. Never pass 'auto'.
add_musicNoAdd quiet background music from the MnogoReels library.
cold_openNoStart each clip with its strongest moment as a teaser, and also produce standalone hook clips and a looped teaser.
smart_cutNoRemove pauses and filler words inside clips. Works only with video_mode podcast (general-beta always does it); ignored for other modes.
start_secNoStart of the part to process, in seconds from the beginning. Default 0.
hook_styleNoStyle of the hook title shown at the start of each clip; none hides it.
video_modeNoHow the video was filmed: general, podcast (talking heads), general-beta (SmartCut: removes pauses and filler words), stream (screen + webcam), vlog, fitness.
clip_lengthNoTarget length of each clip. auto lets the AI decide; 30_60s suits Shorts, Reels and TikTok.
max_creditsYesSpending limit for this call in credits. Required. Use the credits value from quote_clip_job after the user agreed; the call is refused without charging if the price (or its upper bound) is higher.
new_momentsNotrue = the AI picks different moments; false = same moments with the new look.
agentic_modeNoExtra AI review pass that refines where clips start and end. Slower.
caption_styleNoBurned-in caption style; empty means no captions. Call get_options_guide to see what each style looks like.
allow_duplicateNoSet true only if the user explicitly wants a second identical job within 10 minutes (it is charged again).
story_arc_styleNoBuild each clip as a story (cold open, main part, payoff). Any value except none also turns on cold_open.
b_roll_ai_imagesNoInsert AI-generated illustrative images as B-roll.
b_roll_stock_videoNoInsert relevant stock video B-roll.
b_roll_motion_graphicsNoInsert AI motion-graphics B-roll (animated titles, charts, diagrams).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_idYesThe NEW job id.
statusYes
creditsYesCredits charged; an upper bound when credits_exact is false.
end_secYes
next_stepYes
start_secYesnull = the original range was reused.
deduplicatedYes
credits_exactYes
parent_job_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and non-idempotent, and the description goes well beyond them: exact credit cost (1 per started minute, min 1, max 30), that the original job/clips stay unchanged, the 10-minute dedup window, the quote-is-upper-bound nuance for the billed range, and the caching/inheritance behavior. This is the kind of context annotations cannot carry, and it does not contradict the destructive/running-cost annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight paragraphs that front-load purpose, then billing, then prerequisites, then inheritance/alternatives. Every sentence carries substantive information for a 23-parameter credit-spending tool, though it is dense enough that it could be trimmed slightly without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's cost and 23 parameters, the description covers billing, prerequisites, state eligibility, inheritance, alternatives, dedup behavior, and the follow-up call. An output schema exists, so return values need not be explained, and nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema cannot express: default billing of the reused range, that start_sec/end_sec defaulting makes the quote an upper bound, that only passed settings change and everything else is inherited, and the requirement that new_moments=false only works when the range matches the original.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Creates a new clip job from the same source video as an existing job') and immediately enumerates the differentiators (caption style, hook style, clip length, etc.). It cleanly distinguishes itself from create_clip_job (new job) and retry_clip_job (same settings) without needing the schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit prerequisites ('run quote_clip_job... get the user's agreement and pass max_credits'), a clear state restriction ('Works for completed and failed clip jobs, not for jobs that are still running'), an explicit alternative for the same-settings case ('use retry_clip_job'), and a next step ('call get_clip_job with wait_sec=50'). When/when-not and alternatives are all named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.