Veo-3.1-Fast-Generate-Preview - Video To Video
Veo-3.1-Fast-Generate-Preview — Video To Video. GPTProto API reference.
POST
/
v1beta
/
models
/
veo-3.1-fast-generate-preview:predictLongRunning
veo (video to video)
curl --request POST \
--url https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunningimport requests
url = "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyGemini’s veo 3.1 fast generate preview for the video to video API.
Authentication
- Sign up for a GPTProto account at https://gptproto.com
- Navigate to the API Keys section in your dashboard
- Generate a new API key (sk-xxxxx)
- Copy and securely store your API key For authentication details, please refer to the Authentication section.
Initiate Request
curl --location 'https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning' \
--header 'x-goog-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"instances": [
{
"prompt": "a dog",
"video": {
"uri": "https://api.gptproto.com/upload/v1beta/files/u5t03mc3obyv:download?alt=media"
}
}
],
"parameters": {
"resolution": "720p",
"aspectRatio": "9:16"
}
}'
import requests
import json
url = "https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning"
headers = {
"x-goog-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"instances": [
{
"prompt": "a cat",
"video": {
"uri": "https://generativelanguage.googleapis.com/v1beta/files/acwe2jipjo5j:download?alt=media"
}
}
],
"parameters": {
"resolution": "720p"
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(json.dumps(result, indent=2))
const url = "https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning";
const headers = {
"x-goog-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
};
const data = {
"instances": [
{
"prompt": "a cat",
"video": {
"uri": "https://generativelanguage.googleapis.com/v1beta/files/acwe2jipjo5j:download?alt=media"
}
}
],
"parameters": {
"resolution": "720p"
}
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning"
payload := []byte(`{
"instances": [
{
"prompt": "a cat",
"video": {
"uri": "https://generativelanguage.googleapis.com/v1beta/files/acwe2jipjo5j:download?alt=media"
}
}
],
"parameters": {
"resolution": "720p"
}
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Set("x-goog-api-key", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
Response Example
{
"name": "models/veo-3.1-generate-preview/operations/abc"
}
Query Task
The operation_id can be obtained from the response of the predictLongRunning endpoint.
After a successful query, the API returns a URL (response.generateVideoResponse.generatedSamples.video.uri) for downloading the video. This URL is required when making the request.
curl --location 'https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview/operations/{operation_id}' \
--header 'x-goog-api-key: YOUR_API_KEY'
{
"name": "models/veo-3.1-fast-generate-preview/operations/abc",
"done": true,
"response": {
"type": "type.googleapis.com/google.ai.generativelanguage.v1beta.PredictLongRunningResponse",
"generateVideoResponse": {
"generatedSamples": [
{
"video": {
"uri": "https://api.gptproto.com/upload/v1beta/files/abc:download?alt=media"
}
}
]
}
},
"error": null
}
curl --location 'https://api.gptproto.com/upload/v1beta/files/abc:download?alt=media' \
--header 'x-goog-api-key: YOUR_API_KEY'
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
instances | array | ✅ Yes | - | An array of instances containing the video generation parameters The text prompt describing how to transform the video |
video | object | ✅ Yes | - | The source video information The URI of the source video file (must be a valid Google Cloud Storage or Generative Language API file URI) |
parameters | object | ❌ No | - | Additional parameters for video generation The resolution of the output video. Options: 720p, 1080p |

