Solutions
POST https://api.vidu.com/ent/v2/one-click/mv
Field | Value | Description |
|---|---|---|
Content-Type | application/json | Data Exchange Format |
Authorization | Token \{your api key\} | Replace \{your api key\} with your token |
Field | Required to pass | Type | Description |
|---|---|---|---|
images | is | Array[String] | Model images or style images when users generate MVNote 1: Supports passing in Base64-encoded images or image URLs (ensure they are accessible);Note 2: Supports inputting 1 to 7 images;Note 3: Images support formats such as png, jpeg, jpg, and webp;Note 4: The aspect ratio of images needs to be less than 1:4 or 4:1;Note 5: The size of images should not exceed 50 MB;Note 6: Please note that the byte length after base64 decoding needs to be less than 10M, and the encoding must include an appropriate content type string, for example:data:image/png;base64,\{base64_encode\} |
audio_url | is | String | Audio for generating MV is requiredNote 1: Supports passing in Base64 encoding or audio URL (ensure it is accessible);Note 2: Supports inputting 1 audio;Note 3: Supports mp3, wav, aac, m4a formats;Note 4: Outputs the synthesized audio in one go, with the uploaded audio being at least 10 seconds and at most 180 seconds;Note 5: Only the shot list will be output. The uploaded audio should be at least 10 seconds and at most 300 seconds;Note 6: The ByteDance length after base64 decoding needs to be less than 20M, and the encoding must include an appropriate content type string, for example:data:image/png;base64,\{base64_encode\} |
lip_sync | Optional | bool | true:Need lip syncfalse:No lip-syncing requiredDefault falseAfter activation, 4 credits will be added per second.Note 1: Non-human subjects are not supported;Note 2: Non-frontal segments in the video are not supported; |
prompt | Optional | string | User PromptGenerate a text description for the MV video.Note 1: The character length cannot exceed 3000 characters. |
aspect_ratio | Optional | string | Output aspect ratio, default 16:9Optional values: 1:1, 16:9, 9:16, 4:3, 3:4 |
resolution | Optional | String | Clarity, default 720pAvailable values: 540p, 720p, 1080p |
add_subtitle | Optional | Bool | Whether subtitles are needed, default is falsetrue: Subtitles are requiredfalse: No subtitles needed |
subtitle_color | Optional | string | Default #FFFFFF, whiteHEX format text color |
srt_url | Optional | String | Subtitle file URL |
language | Optional | String | Audio language type, default is automaticallyenum: en , zh |
callback_url | Optional | String | CallbackWhen creating a task, you need to actively set the callback_url with a POST request. When the video generation task changes its status, Vidu will send a callback request to this URL, containing the latest status of the task. The structure of the callback request content will be the same as the return body of the Get Generation API.The "status" in the callback response includes the following states:- processing: Task is being processed.- success: Task is completed (if sending fails, it will retry the callback three times).- failed: Task failed (if sending fails, it will retry the callback three times).Vidu uses a callback signature algorithm for verification, check out the details here: |
Field | Type | Description |
|---|---|---|
id | string | Task ID generated by the vidu for this task |
{ "id": "your_id_here" }
GET https://api.vidu.com/ent/v2/one-click/mv/{id}
Field | Value | Description |
|---|---|---|
Content-Type | application/json | Data Exchange Format |
Authorization | Token \{your api key\} | Replace \{your api key\} with your token |
Parameter Name | Type | Required | Parameter Description |
|---|---|---|---|
id | String | is | Clip ID or Subtask ID |
Field | Subfield | Type | Description | |
|---|---|---|---|---|
id | String | Task ID | ||
state | String | Processing Status Optional values: created - Creation successful processing - Task in progress success - Task succeeded failed - Task failed | ||
err_code | String | Error code, see the error code table for details | ||
err_msg | String | Error-related information | ||
created_at | String | Creation Time | ||
signed_url | String | URL of the generated video (available if the video is less than 3 minutes) | ||
job_records | Array | Shot List + Composite Video | ||
type | String | Optional values: generate_video Video Storyboard compose Compose All Storyboards | ||
index | Int | Shot Index | ||
jobs | Array | Single shot modification history | ||
id | String | |||
type | String | generate_video/compose | ||
state | String | Processing Status Optional values: created - Creation successful processing - Task in progress success - Task succeeded failed - Task failed | ||
signed_url | URL of the storyboard or composite product |
{ "id": "901243326567555072", "type": "mv", "creator_id": "869085108764676096", "state": "success", "input": "", "job_records": [ { "type": "generate_video", "jobs": [ { "id": "901245331704909824", "type": "generate_video", "input": "", "output": "", "state": "success", "created_at": "2025-12-24T02:59:06.937309Z", "updated_at": "2025-12-24T02:59:35.473978Z", "err_code": "", "err_msg": "", "signed_url": "signed_url", "mv_generate_video_input": { "duration": 3, "prompt": "2.5d建模风格,明亮活泼的色调,极光在北极圈上空舞动,粒子光效闪烁,镜头缓慢推进,营造神秘又欢快的氛围。", "lyric_text": "前奏", "signed_images": [] }, "index": 0 } ], "index": 0 }, { "type": "compose", "jobs": [ { "id": "901245503243554816", "type": "compose", "input": "", "output": "", "state": "success", "created_at": "2025-12-24T02:59:47.431993Z", "updated_at": "2025-12-24T03:00:13.727780Z", "err_code": "", "err_msg": "", "signed_url": "signed_url", "index": 0 } ], "index": 0 } ], "created_at": "2025-12-24T02:51:34.070650Z", "updated_at": "2025-12-24T03:00:13.734086Z", "err_code": "", "err_msg": "", "signed_url": "signed_url" }
POST https://api.vidu.com/ent/v2/one-click/mv/{id}/edit
Field | Value | Description |
|---|---|---|
Content-Type | application/json | Data Exchange Format |
Authorization | Token \{your api key\} | Replace \{your api key\} with your token |
Field | Required to pass | Type | Description |
|---|---|---|---|
id | is | String | Task ID, placed in the path |
job_id | is | String | ID of the shot to be edited |
prompt | is | String | User Prompt Generate a text description for the MV video. Note 1: The character length cannot exceed 3000 characters. |
callback_url | Optional | String | Callback When creating a task, you need to actively set the callback_url with a POST request. When the video generation task changes its status, Vidu will send a callback request to this URL, containing the latest status of the task. The structure of the callback request content will be the same as the return body of the Get Generation API. The "status" in the callback response includes the following states: - processing: Task is being processed. - success: Task is completed (if sending fails, it will retry the callback three times). - failed: Task failed (if sending fails, it will retry the callback three times). Vidu uses a callback signature algorithm for verification, check out the details here: ~Callback Signature~ |
Field | Type | Description |
|---|---|---|
id | string | Task ID generated by the vidu for this task |
{ "id": "your_job_id_here" }
POST https://api.vidu.com/ent/v2/one-click/mv/{id}/compose
Field | Value | Description |
|---|---|---|
Content-Type | application/json | Data Exchange Format |
Authorization | Token \{your api key\} | Replace \{your api key\} with your token |
Field | Required to pass | Type | Description |
|---|---|---|---|
id | is | String | Task ID, placed in the path |
job_ids | is | String | List of shots to be synthesized |
callback_url | Optional | String | Callback When creating a task, you need to actively set the callback_url with a POST request. When the video generation task changes its status, Vidu will send a callback request to this URL, containing the latest status of the task. The structure of the callback request content will be the same as the return body of the Get Generation API. The "status" in the callback response includes the following states: - processing: Task is being processed. - success: Task is completed (if sending fails, it will retry the callback three times). - failed: Task failed (if sending fails, it will retry the callback three times). Vidu uses a callback signature algorithm for verification, check out the details here: ~Callback Signature~ |
Field | Type | Description |
|---|---|---|
id | string | Task ID generated by the vidu for this task |
{ "id": "your_job_id_here" }