---
name: opus-video
description: Make a finished MP4 video (promo, explainer, motion graphics, music video, edit of the user's footage) with Opus Video Maker. Use when the user asks for a video to be produced, not for editing code that renders video. Needs the opus-video MCP server (https://maker.vcorp.ai/mcp) or an OVM_API_KEY for its REST API.
---

# Making a video with Opus Video Maker

A video takes 10-60 minutes and costs real money from the user's balance, so be deliberate.

## Before creating

- Write a full brief in `prompt`: subject, audience, tone, must-have shots or text, how to use each attachment. One clear brief beats a revision round.
- Pick `aspect` (9:16 for phone/social, 16:9 otherwise), `duration_seconds`, `voice` (none / 中文 / 英文 / 中英双语).
- Small files go in `files` as base64 (20 MB total); large material and web pages go in `links`.
- Set `budget_usd` if the user named a spend limit. If unsure the account can pay, call `get_account` first.
- Always pass a `client_request_id` (any unique string) and reuse it if you retry, so a timeout never starts a second, billed video.
- Use `review: true` only if the user wants to approve the storyboard first.

## While it runs

- Tell the user the `job_id` and that it takes a while.
- Call `wait_for_video` repeatedly while `status` is queued, planning or rendering; it returns within a minute. Follow the `next` field.
- If your session cannot stay open, stop polling: the job keeps running. Next time, `get_video` (or `list_videos`) picks it up.
- In an automated pipeline, pass `callback_url` instead of polling (see https://maker.vcorp.ai/docs/agents.md#webhooks).

## Outcomes

- `awaiting_approval`: look at the contact sheet (one frame per shot, attached as an image). `approve_plan`, or `revise_video` with concrete changes.
- `done`: give the user `video_url` (valid 7 days; `get_video` refreshes links) and mention `notes` if useful. For changes, `revise_video` with specific feedback; the previous cut is kept.
- `failed` / `interrupted`: read `error`. A balance or budget problem needs the user; otherwise `continue_video` once. Don't loop on failures.
- Never create a new job to "retry" a failed one; continue it.

## Without MCP

The same operations exist as REST under https://maker.vcorp.ai/v1 with `Authorization: Bearer $OVM_API_KEY`; see https://maker.vcorp.ai/openapi.json.
