Slideshow to video
slideshow_to_videoConvert an uploaded PDF or slideshow into an editable narrated video. Provide the file ID, optionally add slide scripts, voice, language, aspect ratio, or an avatar narrator.
Instructions
Build an editable narrated video from an uploaded PDF or slideshow file. Upload the file first with upload_file, then pass its fileId. For avatar narration, pass actorEntityId and optionally set avatarQuality.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Uploaded PDF or slideshow file id. | |
| voiceId | No | Catalog display name (e.g. Matilda) or voice id from list_tts_voices. | |
| language | No | Output language as a BCP-47 code, such as en, es, or fr. | |
| 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. | |
| aspectRatio | No | Output aspect ratio as width:height units (not pixels). Example: { width: 16, height: 9 }. | |
| slideScripts | No | Optional narration for each slide, in order. | |
| actorEntityId | No | Id of an ACTOR entity (vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar. | |
| avatarQuality | No | Avatar generation quality tier. Applies when actorEntityId is provided. Omit to use workspace settings. | |
| slideshowThemeEntityId | No | Optional id of a SLIDESHOW_THEME entity (vg_enti_...) whose reference board defines the shared slide design system. Omit when converting an uploaded deck's original pages; VideoGen derives a theme from those pages in the background. |
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. |