> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.videogen.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server.

## v2.0.12 — Storyboard Auto duration, ChatGPT MCP deep links, and developer dashboard URL

This release lets storyboard-to-video pick scene lengths automatically, improves the hosted MCP experience in ChatGPT, and updates the in-app URL where you create API keys.

### Added

- **Storyboard Auto duration:** On `POST /v1/workflows/storyboard-to-video`, `defaultDurationSeconds` is now nullable. Omit it or pass `null` for Auto: VideoGen estimates each scene's length at generate time so spoken text or the visual beat fits (clamped to model limits). Per-scene `durationSeconds` still overrides when set; omit or pass `null` on a scene to inherit the request default (including Auto). When you do set a duration, it must still be a whole number between 1 and 15.
- **MCP `get_app_deep_link`:** The hosted MCP server exposes a `get_app_deep_link` tool that returns a VideoGen app URL for actions the API cannot complete inline (upgrade, buy credits, invite teammates, open settings, and similar). Prefer this when the user needs to finish something in the VideoGen UI. See [MCP server](/libraries/mcp).
- **ChatGPT media preview:** On the hosted MCP transport, media-producing tools can render an inline preview widget for generated or exported images, video, and audio in ChatGPT Apps (alongside the existing `open_uploader` widget).

### Changed

- **Developer dashboard URL:** Create and manage API keys (and review connected OAuth apps) at [app.videogen.io/api](https://app.videogen.io/api). Docs and OpenAPI auth descriptions that previously pointed at `/developers` now use `/api`.
- **Fix: empty script-to-video scripts.** `POST /v1/workflows/script-to-video` rejects a blank or whitespace-only `script` with `invalid_parameters` (`script must be a non-empty string`) instead of starting a run that cannot succeed.