Video to video
video_to_videoUse when the user wants to restyle existing footage from a text prompt while keeping its length and timing. Creates an editable project and uses team credits. Pass videoFileId from an upload or a public videoUrl, which the run imports itself. Restyles up to 120 seconds per run. For captions, transitions, or other supported edits to an existing VideoGen project, use remix_project instead. This changes the footage's visual treatment; it does not publish or manage an ad campaign.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"prompt": "<prompt>"
},
"name": "video_to_video"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| audio | No | KEEP_ORIGINAL keeps the source audio under the restyled picture. GENERATE uses newly generated audio. Defaults to KEEP_ORIGINAL. | |
| prompt | Yes | How the restyled video should look. | |
| quality | No | Restyle quality (LOW, STANDARD, HIGH, or MAX). Higher tiers cost more and follow the source more faithfully. Defaults to HIGH. | |
| videoUrl | No | Public http(s) link to a video page or video file to restyle. The run imports it, so no upload is needed. Provide this or videoFileId, not both. | |
| autoExport | No | When true (the default), the run stays in progress until an MP4 is ready. Use downloadUrl from the result. Set false only if you will call remix_project and then export_project yourself. | |
| videoFileId | No | Uploaded video file id to restyle. Provide this or videoUrl, not both. | |
| imageFileIds | No | Optional reference image file ids that guide the look. | |
| trimEndSeconds | No | Second of the video where the restyled part ends. The restyled part must be 2 to 120 seconds long. Defaults to the start plus 120 seconds, capped at the end of the video. | |
| trimStartSeconds | No | Second of the video where the restyled part starts. Defaults to 0. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Error details when status is failed; otherwise null. | |
| status | No | Job status: pending, running, succeeded, failed, or cancelled. | |
| exportId | No | Export id when autoExport succeeded (vg_expo_...). | |
| projectId | Yes | Project created for this exact workflow attempt (vg_proj_...). A retry creates a different project. | |
| projectUrl | Yes | Deep link to the project created for this exact workflow attempt. Keep it paired with workflowRunId; a retry returns a new URL. | |
| downloadUrl | No | Signed MP4 download URL when autoExport succeeded. Give this to the user. | |
| attemptIndex | No | Current or latest attempt index. | |
| exportFileId | No | File id of the rendered MP4 when autoExport succeeded. | |
| workflowType | No | Workflow type (present after polling). | |
| workflowRunId | Yes | Workflow run id (vg_work_...). Keep it paired with this response's projectId and projectUrl; a retry returns a new tuple. | |
| remixActionIds | No | Remix action ids from the start response (empty when none requested). | |
| progressPercentage | No | Completion progress 0-100 (present after polling). | |
| downloadUrlExpiresAt | No | Unix expiry for downloadUrl. |