Install
openclaw skills install mediaio-ai-dance-video-generatorGenerate AI dance videos where characters move to music or choreography templates using Media.io OpenAPI. Creates dynamic, rhythmic dance animations. AI dance video, dance generator AI, AI dancing video.
openclaw skills install mediaio-ai-dance-video-generatorThis skill calls Media.io OpenAPI to run dance video generation using model code effects-video-babydance.
The API is asynchronous:
task_id.| Variable | Required | Description |
|---|---|---|
MEDIAIO_API_KEY | Yes | Media.io OpenAPI key, used in header X-API-KEY. |
Content-Type: application/jsonX-API-KEY: $MEDIAIO_API_KEYPOSThttps://openapi.media.io/user/credits{}POSThttps://openapi.media.io/generation/effects/effects-video-babydance{
"data": {
"image": "https://example.com/portrait.jpg",
"video": "https://example.com/dance.mp4"
}
}
data.image (string URL)data.video (string URL)POSThttps://openapi.media.io/generation/result/{task_id}{}task_id (string, required){
"code": 0,
"msg": "",
"data": {},
"trace_id": "..."
}
data.task_id is returned.data.status can be one of the following values:
waiting: queuedprocessing: runningcompleted: completed successfullyfailed: failedtimeout: timed outdata.reason: provides additional context (e.g., success or error message)completed:
data.result is an array of output objects with generated URLsval (internal path), preview (public HTTPS URL), and status (completion status)user/credits to verify balance.effects-video-babydance with data.image and data.video.task_id.generation/result/{task_id} every 3 to 5 seconds.completed or failed.data.result when completed.curl --request POST \
--url https://openapi.media.io/user/credits \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{}'
curl --request POST \
--url https://openapi.media.io/generation/effects/effects-video-babydance \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{
"data": {
"image": "https://example.com/portrait.jpg",
"video": "https://example.com/dance.mp4"
}
}'
curl --request POST \
--url https://openapi.media.io/generation/result/<task_id> \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{}'
{
"code": 0,
"msg": "",
"data": {
"task_id": "effect-3dbdb8ca-1f5e-4b1c-9c08-43a4a9bb8e2b",
"status": "completed",
"reason": "success",
"result": [
{
"val": "aicloudtmp/550160908/3/202603/1/combo_tm_alg-20260317165022-802800-60eb3-dwt.mp4",
"preview": "https://url_to_generated_image.png",
"status": "completed"
}
]
},
"trace_id": "d63f54745ea24238bc6be4e6fe3d4937"
}
Response fields when status is completed:
data.task_id: unique task identifierdata.status: completed indicates successful completiondata.reason: success indicates no error occurreddata.result: array of output objects, each containing:
val: internal file path of the generated assetpreview: publicly accessible HTTPS URL for the generated assetstatus: completed for each result itemcode != 0 as failure.374004: not authenticated. Apply for an APP KEY at https://developer.media.io/.490000: params error490505: insufficient credits. Recharge before invoking generation APIs.trace_id in logs for troubleshooting.image and video URLs before calling the create endpoint.task_id.