Skip to main content
Glama

AwesomeVideo

Long video to short clips

create_clips
Idempotent

PREFER THIS for 'turn this long video/podcast/stream into shorts/clips/highlights'. One call: transcribes the video (or reuses transcriptionJobId/subtitles), an LLM reads the word-timed transcript and picks the count (default 3, max 10) best self-contained moments of minSeconds-maxSeconds (default 15-60, range 5-90), cuts start on a sentence start and end on a sentence or word end, then renders each as MP4: reframe face (default: 720x1280 9:16 crop that follows the speaker, falls back to center), center (plain center crop), or none (keep the source shape). captions (default true) burns captions with any preset (list_presets or custom:cp_...); platform keeps them inside the app's safe zone. Returns clips [{name, rank, start, end, seconds, title, hook, reason, score 0-100, text, url}] sorted by time (rank 1 = best) plus the transcript files. Source: sourceUrl (public https link, Drive, Dropbox; YouTube, TikTok and Instagram links are refused with 422) or fileId. Price (1 credit = 1 cent): transcribe 1/source min (0 with a transcript) + highlights 1 per started 10 source min + render 3 per output min, reserved for count x maxSeconds and the unused part refunded when the clips are shorter; e.g. a 30-min video, 3 clips up to 60 s: 42 credits reserved. quoteOnly:true with durationSeconds returns the price without a key-charge or media. Failed jobs refund automatically. wait (default true) blocks up to waitSeconds (max 50); long videos keep running: poll get_job or pass webhookUrl / notifyEmail.

Input Schema

NameRequiredDescriptionDefault
waitNoBlock until done, up to waitSeconds. Default true.
countNoClips to return, 1-10. Default 3. Out of range: 422 limit_exceeded before any charge.
fileIdNoId from create_upload, import_url, or upload_base64.
presetNoCaption preset id or name, or custom:cp_.... Default Clarity.
autoFitNoDefault true. Same rule as caption_video.
reframeNoface (default): 9:16 crop that follows the speaker, center fallback. center: plain center crop. none: keep the source aspect. Same price.
captionsNoBurn captions into each clip. Default true. Same price.
glossaryNo
languageNoSpoken language (BCP-47). Omit for auto-detect.
platformNotiktok, instagram_reels, youtube_shorts, ... (see list_platforms). Keeps captions clear of the app UI. Same price.
faceAvoidNotrue = move captions off faces (samples faces at 2 fps, same price; result.faceAvoid.faceLayout). Shortcut for styleOverrides.faceAvoid.
quoteOnlyNoReturn the price for durationSeconds (and count/maxSeconds) without starting a job.
sourceUrlNoPublic link to the video. Not YouTube, TikTok or Instagram.
subtitlesNoReuse an SRT, VTT, or JSON transcript (JSON keeps word timing for tighter cuts).
maxCreditsNoRefuse the job if it would cost more than this many credits.
maxSecondsNoLongest clip, minSeconds-90 s. Default 60.
minSecondsNoShortest clip, 5-90 s. Default 15.
webhookUrlNo
notifyEmailNo
waitSecondsNoDefault 45, max 50.
brandPresetIdNo
highlightColorNo#RRGGBB for highlightWords. Default #FACC15.
highlightWordsNoShortcut: words or phrases to color in every caption (accent/case-insensitive), e.g. ["AwesomeVideo", "gratis"]. Maps to styleOverrides.wordHighlights rule {id:"custom", words, color}. Same price.
idempotencyKeyNo
styleOverridesNoPer-call style changes deep-merged onto the preset (same fields as list_presets style; null removes a field), validated with the renderer schema and bundled fonts. Example {"fontSize":72,"maxWordsPerCaption":2,"wordEntrance":"bounce"}. Same price. No need to save_custom_preset. Every field with examples: get_style_reference.
durationSecondsNo
transcriptionJobIdNoReuse a finished transcription: no transcription charge.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations (which only cover safety/idempotency) by disclosing the credit pricing formula with a worked example, reservation-and-refund semantics, automatic refund on failure, and the specific 422 refusals for YouTube/TikTok/Instagram source URLs. Also states the wait cap (50s) and that jobs continue server-side afterward.

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?

Front-loaded with the routing decision and then the pipeline, so an agent reading only the first clause already knows when to call it. The rest is a dense run-on that repeats schema defaults (reframe, captions, platform, preset) and could be split into short labeled blocks for easier scanning at 27 parameters.

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 27-parameter, no-output-schema job tool this is close to complete: it spells out the returned clips array with every field and its sort order, plus pricing, async polling, and error behavior. An agent can decide, budget, and parse the result from the description alone.

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 78%, and the description still adds meaning the schema lacks: default count 3 / max 10, minSeconds-maxSeconds default 15-60 within 5-90, and what each reframe mode actually does (face-follow with center fallback vs plain crop vs source shape). A few parameters (glossary, webhookUrl, brandPresetId, idempotencyKey) get no explanation anywhere, keeping it below a 5.

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 ('turn this long video/podcast/stream into shorts/clips/highlights') and enumerates the exact pipeline: transcribe, LLM-select moments, sentence-boundary cut, render. It explicitly claims precedence over the sibling 'shorts' tool with 'PREFER THIS', so an agent can route without opening schemas.

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?

Gives a clear use trigger and internal alternatives (reuse transcriptionJobId/subtitles to skip cost, quoteOnly to price, get_job/webhookUrl/notifyEmail for long jobs). It stops short of naming when to use a sibling instead — e.g. caption_video or burn_captions when the user only wants captions burned on an existing clip.

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