> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.simplified.com/skills/platform-operators/generate-video/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.simplified.com/_mcp/server. # Generate Video **Skill ID:** `generate-video` · [Install skills](/skills/install) · [Canonical source](https://github.com/celeryhq/simplified-ai/tree/main/skills/generate-video) ## Try it > Animate my uploaded product image into a short video and save the result. The instructions below describe the workflow. Installed skills and connected tools are separate; use only operations exposed by your authorized connection. For a long recording cut into actual short clips, use `repurpose-video`. For standalone scripted narration, use `generate-voiceover`; an audio result does not establish that it was muxed into a video. Create one clear motion asset using a compatible model, ready workspace references, and the current tool's nested parameters. ## Workflow 1. Resolve scope with `simplified-workspace` when a workspace/teamspace is named or uncertain. Carry `space_id` into every related call. 2. Define the subject, action, placement, aspect ratio, duration, camera behavior, and audio needs. Infer ordinary choices from the user's brief; ask only for missing constraints that change the result or cost. 3. Discover current models with `api_listVideoModels` or `api_getModelFields(type: "video")`, depending on the exposed tools. Inspect `api_getVideoModelFields` or the available model-fields tool for model-specific durations, resolutions, and capabilities. Do not guess model IDs, costs, or supported values. 4. Use `manage-assets` to find/import/upload references and check readiness with `api_getAsset`. Every video input slot takes a Simplified asset UUID from the same workspace, not a local path or remote URL. 5. Choose `storage: "asset"` for a reusable video. Generation spends credits; proceed for an explicit request, and clarify material ambiguity in scope/cost before submitting. 6. Call `api_generateVideo` once. Current apikit waits for the rendered result; wait for this call before using any continuation tool. 7. Inspect the actual terminal status and return the rendered video link plus its real asset ID when present. Handle pending/timeout/older deployments as described in [references/models-and-polling.md](https://github.com/celeryhq/simplified-ai/blob/main/skills/generate-video/references/models-and-polling.md). ## Current input contract Top-level: `model`, `parameters`, and chosen `storage`; optional `capability` and `space_id`. All generation controls belong inside `parameters`. | Mode | Nested input | | ----------------------------- | ------------------------------------------------------------------- | | Text-to-video | `prompt` | | Animate one image | `image_url: ""` and optional motion prompt | | Multiple image guidance | `image_urls: ["", ""]` | | First/last-frame transition | `first_frame_url` and `last_frame_url`, both asset UUIDs | | Source video transformation | `video_url: "