Skip to navigation

v2.5.0 — Video to video

Restyle an existing video from a text prompt with POST /v1/workflows/video-to-video. Pass an uploaded video or a public link, and the output keeps the original’s length, timing, and cuts. The workflow is available to every account in the SDKs, CLI, MCP, the Zapier, Make, n8n, and Pipedream apps, OpenClaw, and the Python agent framework packages. This release also ends export polling cleanly when a finished export’s file is gone, and checks the full cost of large remix batches before they start.

Added

  • Video to video workflow: POST /v1/workflows/video-to-video takes a prompt and exactly one source: videoFileId for an uploaded video, or videoUrl for a public link to a video page or video file. The run imports a link itself, so there is no separate import step. Up to 120 seconds is restyled per run; choose the part with trimStartSeconds and trimEndSeconds. Optional fields are imageFileIds (up to 10 reference images), aspectRatio, quality (LOW, STANDARD, HIGH, or MAX; defaults to HIGH), audio (KEEP_ORIGINAL or GENERATE), remixActions, autoExport, and isOutputTemporary. Private, login-only, and DRM-protected links cannot be imported. Credit use grows with the restyled length and the quality tier.
  • SDKs and CLI: TypeScript workflows.videoToVideo / videoToVideoAndWait, Python workflows.video_to_video / video_to_video_and_wait, and videogen workflows video-to-video.
  • MCP: a video_to_video tool. Pass videoFileId from upload_file, or a public videoUrl that the run imports itself. It waits for the finished render by default.
  • Automation apps: a video-to-video action in Zapier, Make, n8n, and Pipedream. Map videoFileId from the upload step, or pass a public videoUrl.
  • Agent frameworks: a video_to_video tool in the OpenClaw plugin and in the LangChain, LlamaIndex, CrewAI, OpenAI Agents, Pydantic AI, and Composio packages.
  • Import a file from a link: POST /v1/files/import-url starts importing a video from a public link into your files and returns a fileImportId. Poll GET /v1/files/imports/{fileImportId} until status is succeeded, then use its fileId anywhere a video file id is accepted. Videos up to 10 minutes long can be imported.

Changed

  • Remix batches are priced before they start: A remix action that generates or transforms many assets, such as CONVERT_IMAGES_TO_VIDEOS, now checks its full cost before any generation begins. If your balance cannot cover it, the action is refused up front instead of failing partway through.
  • MCP tool metadata: Every MCP tool now declares whether repeating a call is safe, and the server reports its title, description, website, and icon to clients that display them.

Fixed

  • Exports whose file was deleted: GET /v1/projects/{projectId}/exports/{exportId} now returns status: "failed" with error.code export_file_unavailable when a finished export’s file has since been deleted. Before, it returned succeeded with a null downloadUrl, so pollers never stopped. Start a new export to get a download link. A workflow run in this state keeps its exportId with null download fields.
  • Export on the wrong project: When the exportId belongs to another of your projects, the 404 message now says so and tells you to use the projectId you passed when starting the export. The status and code (not_found) are unchanged.