Google Flow API v1 new video extension and concatenation endpoints:
- POST /videos/extend - Extend video with a new prompt
- POST /videos/concatenate - Concatenate multiple videos
Examples
- Generate initial video using
veo-3.1-fast-relaxedPOST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:12345-…' \
--form 'prompt="Using the provided start image, the woman with dark bangs and a brown duster coat looks directly at the camera and says, '\''Wait, did you see this?'\'' with a smirk. She then tosses her black handbag off-camera to the left and begins the '\''Apple'\'' dance. She lip-syncs the words '\''Apple'\''s rotten to the core'\'' while performing sharp hand-peeling motions and a circular hand gesture over her head. Her expression is confident and playful. The long coat swishes as she moves. 4k, cinematic studio lighting."' \
--form 'model="veo-3.1-fast-relaxed"' \
--form 'aspectRatio="portrait"' \
--form 'startImage="user:12345-email:…-image:…"'
Result
- Extend video using POST /videos/extend
curl --location 'https://api.useapi.net/v1/google-flow/videos/extend' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
"mediaGenerationId": "user:12345-email:…-video:…",
"prompt": "The woman in the brown coat and jeans mouths the words '\''Is somebody gonna match my freak?'\'' while performing a slow, rhythmic deep hip roll. She looks intensely at the camera, then adds, '\''Let'\''s see,'\'' with a wink. She performs a '\''searching'\'' hand gesture over her eyes and a slow-motion shoulder shimmy while stepping forward in her black lace-up boots. No handbag. The lighting is moody and sophisticated.",
"model": "veo-3.1-fast-relaxed"
}'
Result
- Extend again using POST /videos/extend
curl --location 'https://api.useapi.net/v1/google-flow/videos/extend' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
"mediaGenerationId": "user:12345-email:…-video:…",
"prompt": "The woman transitions into an upbeat pop dance. She looks at the camera and says, '\''I'\''m working late... obviously,'\'' then lip-syncs the line '\''That'\''s that me, espresso!'\'' while performing the signature move: she holds an invisible espresso cup with her pinky up, then tilts her head onto her hands. She performs a fast sequence of heel-taps and a crisp 360-degree walking-turn to the left. The long brown coat flares out beautifully during the turn. She finishes with a bright, confident smile and a thumbs-up. Professional studio aesthetic.",
"model": "veo-3.1-fast-relaxed"
}'
Result
- Extend one more time using POST /videos/extend
curl --location 'https://api.useapi.net/v1/google-flow/videos/extend' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
"mediaGenerationId": "user:12345-email:…-video:…",
"prompt": "The woman in the brown duster coat looks directly into the lens and says: '\''And that is the look. Stay stylish, everyone!'\'' with a professional and confident expression. She performs an elegant fashion sequence: she takes rhythmic lateral sliding steps to the left and right while raising her arms into a triumphant V-shape above her head. She then brings her hands down to firmly grasp and adjust the lapels of her long coat, showing off the fabric. She performs a sharp, professional runway turn on her heels. She walks calmly and confidently away from the camera toward the back of the studio. Cinematic wide shot, soft background focus, high-fashion lighting.",
"model": "veo-3.1-fast-relaxed"
}'
Result
- Concatenate all videos using POST /videos/concatenate
Note: trimStart: 1 removes the ~1 second overlap from extended videos.
curl --location 'https://api.useapi.net/v1/google-flow/videos/concatenate' \
--header 'Authorization: Bearer user:12345-…' \
--header 'Content-Type: application/json' \
--data '{
"media": [
{ "mediaGenerationId": "user:12345-email:…-video:…" },
{ "mediaGenerationId": "user:12345-email:…-video:…", "trimStart": 1 },
{ "mediaGenerationId": "user:12345-email:…-video:…", "trimStart": 1 },
{ "mediaGenerationId": "user:12345-email:…-video:…", "trimStart": 1 }
]
}'
Final result (all four clips concatenated)