Submit Video Tool
submit_videoSubmit a source video url (YouTube, Vimeo, Google Drive, Dropbox, OneDrive,
Rumble, or a direct video file) to turn into viral clips, with an optional
title. Returns the new video id (a hashid) and its status.
Processing is ASYNCHRONOUS: this returns status: "downloading" or a
paused pending_credits state. Poll get_video_status with the returned id
while processing moves. Do not poll pending_credits: when a failed payment
caused the pause, the result includes payment_required: true, a message,
and billing_url; show that guidance so the user can repair payment.
Optionally pass an agent id (a hashid from list_agents) to process the video
with that agent's settings (caption preset, composition defaults, …); omit it to use
the team's defaults.
Optionally pass max_clip_seconds (15 to 90) to cap how long each clip runs
(omit it for automatic lengths, 40 to 90 seconds), and clip_guidance (up to
300 characters) to say which moments to prefer, for example "only the funniest
reactions". Guidance that is too narrow or not about picking moments is
rejected with a reason and a broader suggestion.
Safe to retry: submitting the same url + agent + clip preferences again returns
an existing run for it from the last 24h (still processing, or completed) as
deduped: true instead of starting a second run. Submitting the same url with
a DIFFERENT agent or clip preferences starts a new run (so you can re-process a
source with other settings). A previously failed url can be resubmitted to
retry it.
Errors: an unsupported/invalid URL is rejected and an agent not on your team
is rejected. A missing subscription or insufficient credits parks the video
in pending_credits; direct the user to OpenClip before checking again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The source video URL to process (a supported provider or a direct video file). | |
| agent | No | Optional agent id (hashid from list_agents) whose settings control processing/rendering. Must be one of your team's agents. Omit to use team defaults. | |
| title | No | Optional title for the video; defaults to the source title. | |
| clip_guidance | No | Optional guidance for which moments to prefer (up to 300 characters). Rejected with a reason and a broader suggestion when too narrow. | |
| max_clip_seconds | No | Optional cap on clip length in seconds (15 to 90). Clips then run between half the cap and the cap. Omit for automatic lengths (40 to 90 seconds). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | The video id (hashid). Pass it as `video` to get_video_status, list_clips, get_render_status and render_clip. | |
| status | Yes | The video status. downloading, uploaded and processing are in-flight; pending_credits is paused; completed, failed and download_failed are terminal. | |
| deduped | Yes | True when an existing run for this url + agent + clip preferences from the last 24h was returned instead of starting a new one. | |
| message | No | User-safe explanation of why processing is paused. Present while the video is pending_credits. | |
| billing_url | No | OpenClip billing page where the user can recover. Present with payment_required or subscription_required. | |
| payment_required | No | Present and true when an open failed subscription payment is blocking processing. | |
| subscription_required | No | Present and true when terminal payment failure requires a new subscription. |