WaveSpeedAI APIGoogleGoogle Veo3.1 Video Extend

Google Veo3.1 Video Extend

Google Veo3.1 Video Extend

Playground

Try it on WavespeedAI!

Extend and continue Veo 3.1 videos with smooth motion, preserved style, and strong scene coherence. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Veo 3.1 — Video Extend

Veo 3.1 Video Extend lets you take an existing Veo-generated clip and seamlessly append a new 7-second continuation. You pass the previous output as video plus a new prompt, and the model returns one merged file that contains both the original segment and the extension.


⭐ Why this endpoint is special

  • True continuation, not a restart – So style, motion and framing stay consistent.
  • Fixed extension unit – Each call adds +7 seconds of new footage; you can chain up to 20 extensions in a row.
  • Single merged result – The API returns one video (original + new part) with a maximum length of 148 seconds.
  • Tight input constraints – Only approved aspect ratios, resolutions and durations are accepted, which keeps the continuation stable and predictable.

🎯 Best for

  • Storytelling & cinematic beats – Add “what happens next” to a strong shot without regenerating the whole sequence.
  • Marketing & product videos – Test extra scenes, alternative endings, or extended hero shots from a proven base clip.
  • Social workflows – Build longer Shorts/Reels/TikToks by stacking 7-second chunks while keeping visual continuity.

🧩 Inputs & Constraints

Required inputs

  • video* – A clip you previously created (URL or upload). The Veo 3.1 generation result will be better!
  • prompt* – Text describing what should happen in the next 7 seconds: action, camera, mood, continuity cues (character, setting, lighting, etc.).

Strict requirements

  • Input source – The input must be originally produced by Veo 3.1.

    • If you try to extend non-Veo footage, the request may fail or produce video without proper audio.
  • Input limits

    • Max input duration: 141 s
    • Aspect ratio: 16:9 or 9:16
    • Resolution: 720p or 1080p

Extension limits

  • Each call adds +7 s to the input clip.
  • Up to 20 chained extensions are supported.
  • Max total output length (original + extensions): 148 s.

Output: a single MP4 video at the same aspect ratio / resolution as the input, containing the entire extended sequence.


🚀 How to Use

  1. Generate a base video with Veo 3.1 text-to-video or image-to-video.
  2. Take that output and pass it to Veo 3.1 Video Extend as video.
  3. Write an extension prompt that describes the next beat (e.g. change in camera, action, mood, or environment).
  4. Submit the job and download the merged extended clip.
  5. Repeat with the new output as input if you want to continue the story (up to the 148-second max).

💡 Prompt Tips

  • Write prompts like a “next shot” description: action + camera + mood + continuity anchors “Continue from the previous scene, camera slowly dollies forward, the character steps into the light, warm sunset tones, soft lens flare.”
  • Mention what should stay the same (main subject, time of day, general lighting) to keep continuity strong.
  • If audio continuity matters, ensure the last second of the input clip has clean, usable audio; the extension will build from that context.
  • Plan your script around the 7-second extension unit and the 148-second hard cap.

💰 Pricing

  • Flat price: $2.80 per run (each call adds one 7-second extension and returns a merged video).

Whether your clip is 20 seconds or 140 seconds long, each additional +7 s extension costs $2.80.


🔁 More Model Options

  • alibaba/wan-2.5/video-extend Extend Alibaba WAN 2.5 AI videos with smooth, style-consistent continuations, perfect for story-driven ads, trailers, and long-form generative video workflows.

  • google/veo3.1-fast/video-extend Google Veo 3.1 Fast video extend rapidly adds high-quality extra segments to Veo-generated clips, ideal for Shorts, Reels, and other fast-turnaround AI video content.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result


# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/google/veo3.1/video-extend" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "resolution": "1080p"
}'

# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
videostringYes-The video to use for the generation.
promptstringNo-The positive prompt for the generation.
resolutionstringNo1080p720p, 1080pVideo resolution.
negative_promptstringNo-The negative prompt for the generation.
seedintegerNo--1 ~ 2147483647The random seed to use for the generation.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.