Skip to main content
Glama

video.export_create

Start rendering a studio project to a file: a video, a GIF, the sound mix alone or one poster still (format). Returns job_id immediately; call video.export with job_id to follow progress and receive a download link valid for 24 hours. Refuses, naming the fix, when the project is not exportable, the preset's aspect differs from the project, or the tenant's active-job or daily limit is reached. format picks the file (mp4_h264_aac, webm_vp9_opus, gif, m4a_aac, wav_pcm, poster_jpg; default mp4_h264_aac). Format refusals: a preset other than original with any format but mp4_h264_aac (SIMPLER_STUDIO_EXPORT_FORMAT_PRESET: send preset original); gif longer than 30 s (SIMPLER_STUDIO_EXPORT_GIF_TOO_LONG: trim, or pick a video format); m4a_aac or wav_pcm with nothing audible (SIMPLER_STUDIO_EXPORT_FORMAT_NO_AUDIO: add or unmute sound); poster_jpg without poster_time_ms inside the timeline, or poster_time_ms with another format (SIMPLER_STUDIO_EXPORT_POSTER_TIME). Repeating the same request within 24 hours returns the same job, except a job still waiting for a free renderer: the repeat replaces it with a fresh attempt (the old job then reads SIMPLER_STUDIO_EXPORT_SUPERSEDED). Pricing: free (rendering runs on platform compute, no provider cost). Limits per workspace: 2 renders at a time (SIMPLER_STUDIO_EXPORT_ACTIVE_CAP) and 60 output minutes per rolling 24 hours (SIMPLER_STUDIO_EXPORT_DAILY_QUOTA); wait, or export a shorter cut. A composition_version older than the saved one is refused (SIMPLER_STUDIO_EXPORT_VERSION_STALE): re-read with studio.get_composition. One export may run 15 min at 1080p and 5 min at 4K, and a sound-only export 15 min at any resolution (SIMPLER_STUDIO_EXPORT_OUTPUT_CAP): trim the timeline or pick a smaller preset. A poster renders the timeline up to its frame, so the cap counts up to its poster_time_ms: pick an earlier one. When every renderer is busy the job waits in a queue (queue_position) and starts on its own; video.export_cancel {job_id} withdraws it. The files are kept 30 days after the export finishes. Nothing is posted, emailed or uploaded anywhere; the result is a file you download.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_id": "<project_id>"
    },
    "name": "video.export_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
formatNoThe output file; default mp4_h264_aac. mp4_h264_aac: H.264 video with AAC sound; plays everywhere and takes the platform presets. webm_vp9_opus: VP9 video with Opus sound; smaller files for the web, but encoding takes about three times as long. gif: Silent looping animation, up to 30 s, at most 480 px on the long side and 15 fps. Captions can burn in; no SRT file. m4a_aac: The sound mix only, as AAC 192 kbps; video is never decoded. Captions come only as an SRT file. wav_pcm: The sound mix only, uncompressed 16-bit 48 kHz; video is never decoded. Captions come only as an SRT file. poster_jpg: One JPEG still of the finished frame at the chosen time, with text and burned captions; no SRT file.
presetNoEncoder profile; default original (the project's own size and aspect). A preset whose aspect differs from the project is refused.
project_idYesThe studio project (vp_...) to render.
caption_modeNonone (default), burned_in (drawn into the video), srt (a separate captions file), or both.
poster_time_msNoRequired with format "poster_jpg", refused with any other: the timeline millisecond to capture, from 0 to the timeline length minus 1.
composition_versionNoOptional: the composition_version you reviewed (studio.get_composition). If a newer version is saved, the export is refused instead of rendering something you have not seen.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With only readOnlyHint=false in annotations, the description carries the burden and does so thoroughly: idempotency window (24h same job), the supersede-while-queued exception, queue_position behavior, pricing (free, platform compute), workspace caps (2 concurrent / 60 min per 24h), per-export output caps at 1080p/4K/audio, 30-day file retention, and an explicit 'nothing is posted, emailed or uploaded' side-effect statement.

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-loads purpose and return contract before drilling into refusals, and every paragraph maps to a distinct concern. It is long and dense with error codes, which is justified by the tool's complexity but costs a point on tightness.

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?

No output schema exists, yet the description covers the return shape (job_id, later a 24-hour download link, queue_position), async follow-up via video.export, all refusal codes with remediation, and retention. Nothing an agent needs to call and then poll 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, and the enum documentation already covers format and preset well. The description earns above baseline by documenting cross-parameter constraints the schema does not express: preset-vs-format compatibility, gif length limit, audio-less m4a/wav refusal, poster_time_ms required/forbidden pairing with format, and the poster cap counting only up to poster_time_ms.

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?

Opens with a specific verb+resource ('Start rendering a studio project to a file') and enumerates the output kinds (video, GIF, sound mix, poster still). It also explicitly distinguishes itself from its nearest siblings by naming video.export for progress and video.export_cancel for withdrawal.

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?

States the immediate-return contract ('Returns job_id immediately; call video.export with job_id to follow progress'), names the cancel sibling for queued jobs, and gives the exact remedy for every refusal condition. An agent knows both when to call this and what to do next on failure without inference.

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