v2.0.0 — Prompt-to-video, content outline, motion graphics, and rewritten SDKs

This release adds two workflows and a motion-graphic tool, opens up the VideoGen AI assistant as an asynchronous conversational Assistant API, adds timeline interchange for handing projects off to desktop editors, expands export and file controls (including deliver-on-completion destinations), lets you attach transcripts and scene ranges on voiceover runs, exposes structured entity attachments on storyboard scenes, removes the EDIT_WITH_AGENT remix action, and replaces the TypeScript, Python, and CLI clients with rewritten 2.0.0 packages.

Added

  • Prompt to video workflow: POST /v1/workflows/prompt-to-video-clip creates an editable project from a text prompt and generates one short AI video clip (up to 15 seconds). VideoGen generates an opening frame (optionally guided by reference imageFileIds), then animates it into a video. Accepts durationSeconds (1–15, default 10), aspectRatio, and quality (STANDARD | HIGH). Does not accept remixActions. Distinct from POST /v1/tools/generate-video-clip (standalone clip, no project) and from longer narrated workflows such as script-to-video.
  • Content outline to video workflow: POST /v1/workflows/content-outline-to-video creates a project from a Markdown content outline (outlineMarkdown) and builds a full video from it. Optional aspectRatio and inputFileIds (uploaded images/videos the agent may use). Returns a workflow run id; poll or use webhooks for completion. Does not accept remixActions.
  • Generate motion graphic tool: POST /v1/tools/generate-motion-graphic generates a standalone animated motion graphic from a text prompt (optional fileIds, durationSeconds 1–300, aspectRatio, numResults, isOutputTemporary). Suited to precise text/kinetic animation in a short clip. For longer narrated multi-scene videos, use a video workflow such as script-to-video.
  • List project exports: GET /v1/projects/{projectId}/exports returns that project’s export ids (vg_expo_...), newest first. Fetch each export with GET /v1/projects/{projectId}/exports/{exportId}.
  • Export watermark mode: POST /v1/projects/{projectId}/export accepts watermarkMode (NONE | VIDEO_GEN | AUTO, default AUTO). The API can export with a VideoGen watermark; set watermarkMode to NONE only with the Production API add-on.
  • Export end-screen mode: POST /v1/projects/{projectId}/export accepts endScreenMode (NONE | VIDEO_GEN | AUTO, default AUTO), which appends a short “Made with VideoGen” end screen. Set both watermarkMode and endScreenMode to NONE (Production API add-on) to export without them.
  • Timeline interchange: POST /v1/projects/{projectId}/timeline-interchange creates an editable editor timeline from a project instead of a flattened MP4, keeping separate clips, tracks, and captions. Choose format (FCPXML for Final Cut Pro, PREMIERE_XML for Adobe Premiere Pro, OTIO for OpenTimelineIO, or SRT for a caption sidecar) and mediaDelivery (REMOTE_URLS links signed media URLs; BUNDLE returns a zip with every referenced file for offline relinking). Returns a vg_inte_... job id; poll GET /v1/timeline-interchange/{interchangeJobId} until status is succeeded for the signed download URL and hydrated file. The SDKs and CLI expose both operations (createTimelineInterchange / getTimelineInterchange, with *AndWait variants).
  • File list include flags: GET /v1/files accepts includeExportFiles and includeProjectFiles (default false). When false, export MP4s and in-project generative files are omitted; setting either to true requires the Production API add-on.
  • Pre-computed transcript on upload (Beta): POST /v1/files/upload accepts optional transcript (Transcript: timed segments with startSeconds / endSeconds / text, optional languageCode). When set for audio/video, VideoGen skips re-transcription so caption timing can match your transcript. Voiceover-to-video docs note using this on the voiceover fileId.
  • Voiceover scene ranges (Beta): POST /v1/workflows/voiceover-to-video accepts optional scenes (SceneDescriptionRange[]: startSeconds, endSeconds, description) to guide visuals over absolute time ranges. Ranges must be sorted and non-overlapping; omit to let the workflow choose visuals.
  • Temporary workflow outputs: isOutputTemporary on script-to-video, voiceover-to-video, slideshow-to-video, storyboard-to-video, and prompt-to-video-clip. When true, generated output files (and remix-produced outputs on those runs) are guaranteed for 24 hours, then may be archived/deleted. Project metadata is unaffected. Defaults to false.
  • Lottie file type: LOTTIE is a valid mediaType / file-type enum value alongside image, video, audio, PDF, slideshow, and text.
  • Assistant API: conversational, asynchronous access to the VideoGen AI assistant. Start a chat with POST /v1/assistants (accepts message, plus optional forceWorkflowSuggestion and autoGenerate); the 202 body returns { messageId, assistantId, projectId, projectUrl }. Send follow-ups with POST /v1/assistants/{assistantId}/messages and act on suggestions/edits with POST /v1/assistants/{assistantId}/actions/{actionId} (APPROVE or REJECT); those POSTs return { messageId }. Poll GET /v1/assistant/messages/{messageId} until status is succeeded, failed, or cancelled, or subscribe to assistant_message.succeeded / assistant_message.failed / assistant_message.cancelled webhooks (payload mirrors the assistant message GET). Fetch the full chat with GET /v1/assistants/{assistantId}, which returns every message in chronological order. AssistantMessage is discriminated by role: user messages carry the caller’s text and any attachments; assistant messages carry the reply, optional workflowSuggestions, optional actions (with AssistantActionKind: APPROVE_PLAN, APPLY_EDIT, RUN_TOOL, GENERATE, OPEN_IN_APP and a requiresApp flag), an optional generation workflow run when the turn kicked off a build, and an optional error when it failed. Every API project also exposes assistantId on ProjectResponse. The TypeScript / Python / CLI SDKs expose the operations plus startAssistantChatAndWait / sendAssistantMessageAndWait / actOnAssistantActionAndWait (*_and_wait in Python) built on a shared pollAssistantMessage / poll_assistant_message helper.
  • Storyboard entity attachments: POST /v1/workflows/storyboard-to-video accepts structured entity ids alongside scene prompts. Per-scene actorEntityIds and productEntityIds feature the referenced entities’ reference images in that scene, and per-scene visualStyleEntityId guides its look. Request-level actorEntityIds and productEntityIds register project-level entities that stay attached even when no scene references them. Prefer these structured fields over the legacy @[entity:...] mention tokens embedded in prompt / voiceoverScript; mention tokens are still parsed for backward compatibility.
  • Export delivery destinations: POST /v1/projects/{projectId}/export accepts optional deliveryDestinations, an array of ExportDeliveryDestination referencing connected integrations. Each destination sets integrationConnectionId and type (slack_channel or google_drive_folder), plus the target-specific field (slackChannelId or googleDriveFolderId). The finished export is delivered to every listed destination in addition to any defaults saved for the team.
  • SDKs 2.0.0: The TypeScript (@videogen/sdk), Python (videogen), and CLI (@videogen/cli) clients were rewritten as first-party packages (no longer auto-generated). Each exposes a VideoGen client with resource namespaces (workflows, tools, projects, files, and so on), *AndWait / *_and_wait helpers that start work and poll to completion, plus shared helpers for uploads, downloads, file hydration, public previews, and webhook verification. Python ships sync and async clients; the CLI mirrors the same operations as videogen <resource> <command>.
  • Editor integrations: new companion apps built on the API. An Adobe Premiere Pro panel, a DaVinci Resolve import script, and a dependency-free “send to editor” CLI open a VideoGen project as a native, editable timeline (Final Cut Pro, DaVinci Resolve, and OpenTimelineIO editors). A Canva app and an updated After Effects panel generate assets and insert them into the open document.
  • Native app sign-in: an OAuth 2.1 with PKCE relay lets editor integrations that cannot run a loopback redirect (such as the Premiere and Canva panels) sign in with a VideoGen account.

Changed

  • Get project export: GET /v1/projects/{projectId}/exports/{exportId} (summary renamed from “Get project export status”) returns signed downloadUrl / thumbnailUrl with *ExpiresAt, plus exportFileId and hydrated file when status is succeeded. Single-export GET re-signs URLs near expiry (24-hour signed URLs).
  • Tool execution URL signing: Docs for GET /v1/tools/executions and GET /v1/tools/executions/{toolExecutionId} clarify that list responses do not re-sign result URLs (check downloadUrlExpiresAt), while single-execution GET re-signs near expiry; executions remain retrievable indefinitely. Succeeded results always expose downloadUrl / thumbnailUrl / hydrated file fields (nullable until success).
  • Storyboard to video always produces video clips. On POST /v1/workflows/storyboard-to-video, the per-scene generation.type field (AI_IMAGE / AI_VIDEO) is deprecated and ignored: every scene now renders as a video clip, with stills used only as intermediate first frames. Requests that still send type are accepted for backward compatibility. LOW quality is no longer supported for storyboard to video and is rejected; use STANDARD or HIGH.

Removed

  • Breaking: EDIT_WITH_AGENT remix action removed. Requests with "type": "EDIT_WITH_AGENT" are no longer accepted. Open-ended natural-language editing now runs through the new Assistant API (POST /v1/assistants to start a chat, POST /v1/assistants/{assistantId}/messages to continue it, and POST /v1/assistants/{assistantId}/actions/{actionId} to act on the assistant’s suggestions and edits). For fixed polish steps, use targeted remix actions instead (for example ENABLE_CAPTIONS / DISABLE_CAPTIONS, ADD_TRANSITIONS, SET_LOGO, SET_BACKGROUND_MUSIC, CONVERT_IMAGES_TO_VIDEOS, REGENERATE_IMAGES, CHANGE_NARRATOR, or TRANSLATE_PROJECT). See Remix actions. Only the EDIT_WITH_AGENT type and its prompt / mode / targetDurationSeconds fields are gone; every other remix action is unchanged.