Skip to main content
Glama

AI Clipper: analyse a long video (async)

start_clipper

AI Clipper step 1/2: analyse a long video (podcast, interview, stream, show) from a link or upload and propose up to max_clips self-contained viral clips. Costs 6 credits per started 30 minutes of source (refunded if it fails). Returns plan_id immediately; analysis takes a few minutes — poll get_clip_plan until status is "ready", then call generate_clips (2 credits per clip).

Input Schema

NameRequiredDescriptionDefault
urlNoPublic video link (YouTube, TikTok, Instagram, Facebook, X, Vimeo…) or a direct https link to a video file (.mp4, .mov, .webm, .m4v).
musicNo"none" (default), "auto" or a Brand Kit music id (list_brand_assets).
layoutNoFraming: auto, focus (speaker: tight crop on the main face, follows it), general (wide), split (two people stacked), screen (the whole picture on a framed panel, for screen recordings).
headlineNoHeadline card on each clip (default true).
languageYesLanguage of captions and headlines.
max_clipsYesHow many clip candidates to find (up to the plan limit).
upload_idNoId of a file uploaded with POST /api/v1/uploads, or of an image given to import_image.
trim_pausesNoCut the long pauses (over 0.7 s of silence) out of each clip (default false).
caption_styleNoCaption style (default highlight_box).
logo_asset_idNoLogo burned into the video: a logo id from list_brand_assets, or null for no logo (default: the Brand Kit default logo, if one is set).
target_secondsYesTarget clip length in seconds (15–90).
idempotency_keyNoOptional unique key (e.g. a uuid) — repeating the same call with the same key within 24 h returns the first result instead of charging again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Public video link (YouTube, TikTok, Instagram, Facebook, X, Vimeo…)."New value: +"Public video link (YouTube, TikTok, Instagram, Facebook, X, Vimeo…) or a direct https link to a video file (.mp4, .mov, .webm, .m4v)."
  2. Changed1 schema field changed
    • changedInput schema / properties / language / enum
      Previous value: -[
      -  "en",
      -  "es",
      -  "pt",
      -  "fr",
      -  "de",
      -  "it",
      -  "ru",
      -  "hi",
      -  "ar"
      -]New value: +[
      +  "en",
      +  "es",
      +  "pt",
      +  "fr",
      +  "de",
      +  "it",
      +  "ru",
      +  "hi",
      +  "ar",
      +  "bn",
      +  "ur",
      +  "id",
      +  "fil",
      +  "vi",
      +  "tr",
      +  "ta",
      +  "te",
      +  "th",
      +  "ms",
      +  "ja",
      +  "ko",
      +  "zh",
      +  "pl",
      +  "uk",
      +  "mr",
      +  "pa",
      +  "sw"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / layout / description
      Previous value: -"Framing: auto, focus (speaker), general (wide), split (two speakers), screen (screen share)."New value: +"Framing: auto, focus (speaker: tight crop on the main face, follows it), general (wide), split (two people stacked), screen (the whole picture on a framed panel, for screen recordings)."
    • addedInput schema / properties / trim_pauses
      Added value: +{
      +  "description": "Cut the long pauses (over 0.7 s of silence) out of each clip (default false).",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / upload_id / description
      Previous value: -"Id of a file uploaded with POST /api/v1/uploads."New value: +"Id of a file uploaded with POST /api/v1/uploads, or of an image given to import_image."
  4. Changed2 schema fields changed
    • addedInput schema / properties / logo_asset_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "exclusiveMinimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Logo burned into the video: a logo id from list_brand_assets, or null for no logo (default: the Brand Kit default logo, if one is set)."
      +}
    • changedInput schema / properties / music / description
      Previous value: -"\"none\" (default), \"auto\" or a Brand Kit music asset id."New value: +"\"none\" (default), \"auto\" or a Brand Kit music id (list_brand_assets)."
  5. Changed1 schema field changed
    • changedInput schema / properties / caption_style / enum
      Previous value: -[
      -  "capcut_green",
      -  "capcut_yellow",
      -  "neon_pop",
      -  "minimal_white",
      -  "fire",
      -  "gradient_glow",
      -  "pop_bounce",
      -  "highlight_box",
      -  "clean_reveal",
      -  "punch_word"
      -]New value: +[
      +  "capcut_green",
      +  "capcut_yellow",
      +  "neon_pop",
      +  "minimal_white",
      +  "fire",
      +  "gradient_glow",
      +  "pop_bounce",
      +  "highlight_box",
      +  "clean_reveal",
      +  "punch_word",
      +  "karaoke_fill",
      +  "neon_sign",
      +  "outline_fill",
      +  "marker_pen",
      +  "comic_pop",
      +  "typewriter",
      +  "elegant_serif",
      +  "glitch_rgb",
      +  "label_white",
      +  "label_dark",
      +  "slide_up",
      +  "pixel_arcade"
      +]
  6. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say non-read-only, open-world, non-idempotent; the description adds the material facts an agent needs: it is async with a few-minute latency, returns immediately with a plan_id, costs 6 credits per started 30 minutes of source, and credits are refunded on failure. Credit pricing and latency are behaviors nothing else in the structured data conveys.

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

Conciseness5/5

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

Roughly three sentences, front-loaded with the step label and the core action, then sequencing, then cost. Parentheticals (source types, credit rate) are dense but each carries distinct information and none is redundant with the schema.

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?

For a 12-parameter async job with no output schema, the description covers the essential unknowns: what it returns (plan_id), how long it takes, what it costs, and the exact next call. There is no output schema to explain return values, and the description accounts for that gap.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (url, upload_id, layout, caption_style, logo_asset_id, idempotency_key, etc.) is already documented in-schema. The description only echoes max_clips and implies the cost scales with source duration; it adds no format or interaction detail beyond the schema, so the baseline 3 applies.

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 and resource (analyse a long video, propose up to max_clips viral clips) and scopes the accepted source types (podcast, interview, stream, show; link or upload). It also positions itself as step 1/2 of a named pipeline, which distinguishes it from generate_clips and get_clip_plan without opening either schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent: returns plan_id immediately, poll get_clip_plan until status is "ready", then call generate_clips. That is a clear when-to-use and a named alternative. It stops short of stating when not to use it (e.g. pre-existing plans or short sources that belong to create_short), so it is not fully exhaustive.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources