Slideshow to video
Creates a project from an uploaded PDF or PowerPoint file and generates an AI-narrated video walking through each slide. Upload the file via POST /v1/files/upload first.
Authentication
Request
Opaque file id of an uploaded PDF or PowerPoint file (e.g. vg_file_...). Upload the file first via POST /v1/files/upload.
Optional per-slide narration, in slide order, applied by index: each slide uses its matching entry, and an empty string makes that slide silent. If you provide fewer entries than slides, the remaining slides are silent; extra entries are ignored. Omit this field entirely to narrate each slide from its speaker notes in the uploaded file. To guarantee no narration on any slide, pass an empty array.
Aspect ratio as a width:height pair (e.g. 16 and 9 for 16:9). Not pixel dimensions.
Output language as a BCP-47 code (e.g. en, es, fr). Defaults to English.
Voice id from GET /v1/resources/tts-voices (e.g. vg_voic_...). A default voice is used when omitted. Any voice may be used here, including voices where supportsDirectToolExecution is false.
Speech rate multiplier, between 0.5 (half speed) and 2 (double speed). Defaults to the voice’s default speed.
Optional avatar presenter id from GET /v1/resources/avatar-presenters (e.g. vg_pres_...). When set, the narration is delivered by a talking-head presenter avatar. Pass your voiceId to that endpoint to list presenters sorted by best match for the voice. Omit for a standard voiceover with no presenter.
Caption styling. Omit to use the default style with captions shown. Pass an object to override individual style fields (any omitted field uses the default). Pass null to hide captions entirely.
Optional file id of an uploaded logo image to overlay on the video (e.g. vg_file_...). Upload the image first via POST /v1/files/upload. Only image files are accepted.
Optional edits applied to the project after the video is built, in order. Each action runs asynchronously; the response returns one remix action id per action. Captions and a logo are set with the captionStyle and logoFileId request fields above; recommended remix actions here are CONVERT_IMAGES_TO_VIDEOS to animate still images into clips, and ADD_TRANSITIONS to stamp transitions between sections and assets. See the Remix actions guide.
When true, the video’s generated OUTPUT files (AI images, video clips, voiceover audio, avatars) are created as temporary: guaranteed available for 24 hours, after which they may be archived and later deleted. This also covers files produced by post-build remix actions (e.g. generated background music, image-to-video conversions). Use this when your integration downloads or re-hosts the results itself and does not need VideoGen to retain them. The project and its metadata are unaffected. Defaults to false.
Response
Opaque workflow run id (e.g. vg_work_...).
Id of the project created for this workflow run (e.g. vg_proj_...).
Deep link to open this project in the VideoGen web editor. Not required for an API-only integration: store projectId and use the Projects API (export, remix, metadata). Use projectUrl when a person should open the project in the app to review or edit it manually. The project is visible only to members of your team and any project collaborators, the same access model as a project created in the dashboard.
Opaque remix action ids (e.g. vg_rmix_...), one per remixActions entry in request order. Empty when no remix actions were requested. Each runs after the video is built; poll GET /v1/projects/{projectId}/remix-actions.