Skip to main content

maestro-video

Produce complete AI videos with Maestro via AceDataCloud API. Use when: Maestro, article-to-video, prompt-to-video, turn a brief or reference media into a finished captioned video, generate scripts/visuals/voiceover/music/editing in one workflow, create multilingual video variants, or remix/edit/extend a previous Maestro video. Covers task creation, progress polling, history, and final output retrieval.

Jump to install

Source facts

Repository
AceDataCloud/Skills
Last source activity
September 1, 2026 at 18:39
Detected SKILL.md language
English
Stars
17
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
maestro-video
description
Produce complete AI videos with Maestro via AceDataCloud API. Use when: Maestro, article-to-video, prompt-to-video, turn a brief or reference media into a finished captioned video, generate scripts/visuals/voiceover/music/editing in one workflow, create multilingual video variants, or remix/edit/extend a previous Maestro video. Covers task creation, progress polling, history, and final output retrieval.
license
Apache-2.0
metadata
{"author":"acedatacloud","version":"1.0"}
compatibility
Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authentication.md). Optionally pair with mcp-maestro for tool-use.
# Maestro End-to-End Video Production Use Maestro when the user wants a **finished video**, not only a generated clip. A headless AI director turns one natural-language brief into a script, visual assets, voiceover, music, edit, captions, quality checks, and rendered video variants. > **Setup:** See [authentication](../_shared/authentication.md) for token setup. ## Choose Maestro When - The user wants an article, idea, product brief, or campaign turned into a complete video. - The workflow needs scripting, visuals, narration, captions, and editing handled together. - The user supplies product images, a logo, portrait, source footage, or reference audio. - One visual production must be rendered in multiple languages. - A completed Maestro video needs to be remixed, edited, or extended. Use a model-specific video API such as Seedance, Kling, or Veo when the user only needs a short generated shot and wants direct model controls. Maestro may use multiple media services internally and is optimized for the finished production. ## Quick Start ```bash curl -X POST https://api.acedata.cloud/maestro/videos \ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "prompt": "Create a 30-second beginner-friendly video explaining vector databases. End with one memorable takeaway.", "aspect": "16:9", "duration": 30, "scenario": "narrated", "langs": ["en"] }' ``` The successful creation response is HTTP `201` and contains a `task_id`. Maestro is asynchronous, so query the task until it reaches `succeeded` or `failed`: ```bash curl -X POST https://api.acedata.cloud/maestro/tasks \ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"id": "<task_id>", "action": "retrieve"}' ``` Do not invent output URLs or report completion while the task is still running. ## Core Workflow 1. Translate the user's goal into a concrete production brief. 2. Call `POST /maestro/videos` and preserve the returned `task_id` and `trace_id`. 3. Poll `POST /maestro/tasks` at a reasonable interval. 4. Continue through nonterminal states; stop only at `succeeded` or `failed`. 5. On success, return every item in `response.data.variants`, including its language and `output_url`. 6. If requested, iterate by creating a new task with `action`, `ref_task_id`, and a change-focused prompt. Polling and history queries are free; the video task is settled after production based on delivered output. Avoid submitting duplicate creation requests while an existing task is still running. ## Creation Parameters | Parameter | Type | Default | Description | |---|---|---|---| | `prompt` | string | required | Natural-language production brief: topic, audience, content, tone, and desired result | | `action` | string | `generate` | `generate`, `remix`, `edit`, or `extend` | | `ref_task_id` | string | - | Required for `remix`, `edit`, and `extend` | | `file_urls` | string[] | - | Public image, video, or audio references, up to the limits enforced by the API | | `langs` | string[] | `["zh-cn"]` | Output language codes; each creates a localized rendered variant | | `aspect` | string | `9:16` | `9:16`, `16:9`, or `1:1` | | `duration` | integer | `30` | Target duration from 5 to 300 seconds | | `scenario` | string | `auto` | `auto`, `narrated`, `captions`, `avatar`, or `drama` | | `style` | string | `auto` | Preset or freeform visual direction | | `voice` | string | `auto` | Cross-lingual voice preset or a 32-hex-character Fish reference ID | | `callback_url` | string | - | Optional webhook called on success or failure | ### Production contract Every request uses the complete production capability: all actions and scenarios, 5–300 seconds, up to 4 languages, and 1080p/30fps output. The base price is 0.60 Credits per delivered second. Avatar uses a 1.15× multiplier, drama uses 1.35×, and each additional delivered language adds 6 Credits. Failed tasks and polling are free. ### Scenarios - `auto`: let the director choose from the brief. - `narrated`: multi-scene explainer, documentary, brand, history, or product video with voiceover. - `captions`: add kinetic captions to a source video supplied in `file_urls`. - `avatar`: talking-head or digital-human video; provide a portrait in `file_urls`. - `drama`: acted short drama with characters and dialogue (Pro only). ### Styles Named presets include `cinematic`, `glass`, `luxury`, `swiss`, `modern`, `editorial`, `warm`, `vibrant`, `neon`, `mono`, `pastel`, `bold`, `industrial`, `futuristic`, and `retro`. The API also accepts a freeform style hint. ### Voices Available presets include: - Female: `warm-female`, `bright-female`, `anchor-female`, `clean-female` - Male: `calm-male`, `deep-male`, `documentary-male`, `energetic-male`, `storyteller-male` - Automatic: `auto` Voice controls timbre rather than language. The same preset speaks the language selected in `langs`. ## Reference Media Pass public URLs in `file_urls`: ```json { "prompt": "Create a product launch video that clearly shows the camera body and logo. Use the supplied audio as the tone reference.", "file_urls": [ "https://example.com/product.jpg", "https://example.com/logo.png", "https://example.com/reference.mp3" ], "scenario": "narrated", "style": "editorial", "aspect": "16:9" } ``` Reference URLs must be reachable by the service. Do not pass local file paths. Upload local assets first, then use their public URLs. ## Multilingual Variants Use one request to reuse the production across languages: ```json { "prompt": "A concise product walkthrough for first-time customers", "langs": ["en", "de", "ja"], "voice": "warm-female", "duration": 45 } ``` The first language is primary. A successful task normally returns one item per delivered language in `response.data.variants`. Do not assume every requested language succeeded; inspect the actual variants. ## Iterate on a Previous Video All iteration actions require `ref_task_id`. ### Remix Use `remix` for a new creative interpretation that keeps the previous task as context: ```json { "action": "remix", "ref_task_id": "previous-task-id", "prompt": "Rework this as a faster social cut with a stronger opening hook and neon styling.", "aspect": "9:16" } ``` ### Edit Use `edit` for targeted revisions: ```json { "action": "edit", "ref_task_id": "previous-task-id", "prompt": "Keep the structure and visuals. Replace the final call to action and use a calmer narrator." } ``` ### Extend Use `extend` to continue or lengthen the production: ```json { "action": "extend", "ref_task_id": "previous-task-id", "prompt": "Add a 15-second customer example before the conclusion.", "duration": 60 } ``` Iteration creates a new task. Continue polling the new `task_id`; do not overwrite or confuse it with the source task. ## Task Response A task response exposes top-level progress for user feedback: ```json { "id": "task-id", "status": "producing", "progress": { "percent": 52, "stage": "visuals", "message": "Generating scene assets", "activity": "Creating scene 4" }, "response": null } ``` On success, inspect the delivered variants: ```json { "status": "succeeded", "response": { "success": true, "data": { "variants": [ { "lang": "en", "output_url": "https://cdn.example/video.mp4", "captions_url": "https://cdn.example/captions.vtt", "cover_url": "https://cdn.example/cover.jpg", "duration": 31.2, "qc_score": 0.96 } ] } } } ``` Treat the fields above as a shape guide. Return fields that are actually present; never fabricate missing captions, covers, durations, or QC scores. ## Task Retrieval Retrieve a task by its required `id`; the only documented action is `retrieve`: ```bash curl -X POST https://api.acedata.cloud/maestro/tasks \ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"id": "TASK_ID", "action": "retrieve"}' ``` ## Prompting Guidance A useful brief answers: - What is the subject and desired outcome? - Who is the audience? - What facts, products, people, or scenes must appear? - What should the viewer feel or do afterward? - Which platform determines aspect ratio and pacing? - Are there exact brand, compliance, or wording constraints? Prefer a concrete production brief over a list of low-level model instructions. Maestro is responsible for choosing and orchestrating media tools. ## Gotchas - This API is asynchronous. Always preserve and poll the returned `task_id`. - Terminal states are `succeeded` and `failed`; other status names may evolve as the production pipeline changes. - `remix`, `edit`, and `extend` fail without `ref_task_id`. - `file_urls` must be public URLs, not local paths. - `avatar` usually needs a usable portrait reference. - Requested duration is a target; report the actual delivered duration from the result. - Multilingual requests may return fewer variants than requested if one output fails. - Do not resubmit the same brief merely because a long-running poll has not finished. - Do not expose the API token in logs, output, source files, or examples. > **MCP:** `pip install mcp-maestro` | Hosted: `https://maestro.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
View on GitHub