Generate an AI video end-to-end on Ozor.ai from a short text brief. Use this skill whenever the user wants to actually create a video (not just write a prompt) from a creative description, idea, or short brief — e.g. 'make me a video about X', 'generate a launch video for Y', 'create an explainer for Z', 'render a video', 'produce a 30s ad about ...', 'spin up a quick video for our new feature'. This skill runs the full Ozor MCP pipeline: generate_video → wait_for_job → export_video → wait_fo...
Scanned 5/28/2026
Install via CLI
openskills install Mintii-Labs/ozor-skills---
name: ozor-generate
description: "Generate an AI video end-to-end on Ozor.ai from a short text brief. Use this skill whenever the user wants to actually create a video (not just write a prompt) from a creative description, idea, or short brief — e.g. 'make me a video about X', 'generate a launch video for Y', 'create an explainer for Z', 'render a video', 'produce a 30s ad about ...', 'spin up a quick video for our new feature'. This skill runs the full Ozor MCP pipeline: generate_video → wait_for_job → export_video → wait_for_export → get_embed_code, and returns the shareUrl, editorUrl, downloadUrl, and a ready-to-paste <iframe> embed. Do NOT use this skill when the input is a document/PDF/PPTX/deck/URL — use ozor-document-video or ozor-url-to-video instead."
---
# Ozor Generate (Text-to-Video)
End-to-end video generation on Ozor.ai using the `mcp__ozor__*` tools. This skill takes a short creative brief and returns a finished, exported, shareable video — not just a prompt.
## When to use
Use this skill when the user wants to **actually produce a video** from a short text idea. Signals:
- "Make a video about ..."
- "Generate a launch video for ..."
- "Create a 30-second explainer about ..."
- "Spin up an ad for our new feature ..."
- "Render a video that says ..."
**Do NOT use this skill when:**
- The user has a document, PDF, PPTX, DOCX, deck, or file → use `ozor-document-video`
- The user gives a URL / landing page → use `ozor-url-to-video`
- The user just wants help **writing** an Ozor prompt without generating → use `ozor-video-best-practices`
- The user wants to manage existing videos → use `ozor-video-library`
## Required MCP tools
This skill assumes the Ozor MCP is connected. The tools are:
- `mcp__ozor__generate_video` — kicks off a text-to-video job
- `mcp__ozor__wait_for_job` — blocks until the agent finishes building the project
- `mcp__ozor__export_video` — starts the render
- `mcp__ozor__wait_for_export` — blocks until the render is ready, returns URLs
- `mcp__ozor__get_embed_code` — returns the `<iframe>` HTML
- `mcp__ozor__list_voices` — optional, lookup of available voices
- `mcp__ozor__send_message` — optional, follow-up edits to the video agent
If the Ozor MCP is not connected, tell the user to add it and stop — do not try to fall back to writing a prompt-only output.
## Workflow
### Step 1 — Shape the brief
The Ozor prompt is capped at **2000 characters** and should describe **one short video**. Before calling the MCP, make sure the brief includes:
- **What the video is about** in one sentence
- **Audience** (founders, developers, customers, general public, ...)
- **Format** — 16:9 (default, landscape) or 9:16 (vertical for social)
- **Approximate duration** — typically 15–90 seconds
- **Number of scenes** (3–6 is the sweet spot)
- **Tone** (confident, warm, energetic, technical, ...)
- **Visual style** (dark/light, color accent, minimal/bold)
- **A clear CTA** for the final scene
If any of these are missing AND the gap meaningfully changes the output, ask **one** focused question. Otherwise pick a sensible default and proceed — auto-mode behavior.
**Never paste a multi-scene script extracted from a document into this prompt.** That overflows the 2000-char limit and loses slide visuals. For documents, switch to `ozor-document-video`.
### Step 2 — Generate
Call:
```
mcp__ozor__generate_video({
prompt: "<the compiled brief, under 2000 chars>",
export: true // recommended: triggers export automatically so you can skip step 4
})
```
This returns `{ videoId, jobId }`. Surface to the user that the job has started and that you're waiting on it.
### Step 3 — Wait for the build
Call:
```
mcp__ozor__wait_for_job({ videoId, jobId })
```
This blocks until the Ozor agent has finished building the project. If it fails, the error message will usually tell you what to fix in the prompt — relay it to the user and offer to retry with adjustments.
### Step 4 — Export (skip if you passed `export: true`)
If you did not pass `export: true` in step 2, call:
```
mcp__ozor__export_video({ videoId })
```
### Step 5 — Wait for the render
Call:
```
mcp__ozor__wait_for_export({ videoId })
```
This returns the final URLs:
- `shareUrl` — public link to the rendered video
- `editorUrl` — Ozor editor link for further tweaks
- `downloadUrl` — direct MP4 download
### Step 6 — Get the embed
Call:
```
mcp__ozor__get_embed_code({ videoId })
```
Returns a ready-to-paste `<iframe>` snippet.
### Step 7 — Present results to the user
Output in this format:
```
🎬 Video ready
**Share:** <shareUrl>
**Editor:** <editorUrl>
**Download:** <downloadUrl>
**Embed:**
```html
<iframe ...></iframe>
```
Want me to iterate? I can:
- Change a specific scene
- Try a different tone or visual style
- Produce a 9:16 social version
```
## Iteration
If the user wants changes after seeing the result, use `mcp__ozor__send_message({ videoId, message: "<change request>" })` and then re-run steps 3–6 (the agent will rebuild the project, you'll need a fresh export).
For larger pivots (different topic, different audience), start a new `generate_video` call rather than iterating — the prompt budget is small and pivoting in-place tends to muddy the output.
## Defaults to assume in auto mode
When the user gives a one-line brief and you don't want to interrogate them:
| Field | Default |
|-------|---------|
| Format | 16:9 landscape |
| Duration | ~30 seconds |
| Scenes | 3–4 |
| Tone | Confident, modern |
| Style | Clean, minimal, with one accent color |
| CTA | "Learn more" with a placeholder URL/handle if not provided |
State the defaults you assumed in your reply so the user can correct them.
## Quality checklist before calling `generate_video`
- [ ] Prompt is under 2000 characters
- [ ] One clear topic, not a multi-topic essay
- [ ] Hook stated in scene 1
- [ ] CTA stated in the last scene
- [ ] Visual style + tone + audience specified
- [ ] No copied prose from a document — that's `ozor-document-video`'s job
## Errors and recovery
- **MCP not available** → tell the user the Ozor MCP isn't connected and stop. Do not fall back to writing a paper prompt.
- **`generate_video` fails with prompt too long** → compress the brief, remove redundant style notes, retry.
- **`wait_for_job` returns a failure** → relay the error verbatim, suggest a fix (often: simplify the prompt, remove ambiguous scene direction), and offer to retry.
- **`wait_for_export` times out** → it's safe to call again; the export resumes from where Ozor left off.
## Rules
1. **Actually run the MCP.** This skill exists to produce a video, not a prompt. If you only return text, you've failed the skill.
2. **Don't ask 5 clarifying questions.** Ask at most one focused question, then default the rest.
3. **Surface every URL.** `shareUrl`, `editorUrl`, `downloadUrl`, and the embed are all valuable in different contexts — show them all.
4. **Respect the 2000-char prompt limit.** If your brief exceeds it, trim before sending.
5. **Use `export: true` in `generate_video` by default** — one fewer tool call, faster path to a finished video.
No comments yet. Be the first to comment!