API do Google Veo 3: Como Acessar e Integrar Geração de Vídeo com IA em 2026

Guia completo da API Veo 3: autenticação, Python SDK, Node.js, API REST, operações assíncronas e melhores práticas de produção.

E

Emma Chen · 8 min read · Apr 17, 2026

API do Google Veo 3: Como Acessar e Integrar Geração de Vídeo com IA em 2026

API do Google Veo 3: Como Acessar e Integrar Geração de Vídeo com IA em 2026

O Google Veo 3 é um dos modelos de geração de vídeo com IA mais capazes disponíveis em 2026. Para desenvolvedores e empresas que querem integrar as capacidades do Veo 3 em suas próprias aplicações, a API do Google Cloud Vertex AI fornece acesso programático. Este guia cobre tudo o que você precisa saber sobre acessar a API do Veo 3, autenticação, fazer requisições e lidar com respostas.

O Que É a API do Veo 3?

A API do Veo 3 está disponível através da plataforma Vertex AI do Google Cloud. Permite que desenvolvedores gerem vídeos programaticamente enviando prompts de texto (e opcionalmente imagens de referência) para os servidores do Google e recebendo arquivos de vídeo gerados em retorno.

A API é projetada para casos de uso empresarial e de desenvolvedor onde você precisa:

  • Integrar geração de vídeo com IA em sua própria aplicação
  • Automatizar produção de vídeo em escala
  • Construir produtos e serviços em cima das capacidades do Veo 3
  • Processar grandes lotes de requisições de geração de vídeo

Pré-requisitos

Antes de usar a API do Veo 3, você precisa:

  1. Uma conta Google Cloud com faturamento habilitado
  2. Um projeto Google Cloud com a API Vertex AI habilitada
  3. Permissões IAM apropriadas (função mínima de Usuário Vertex AI)
  4. Credenciais da API (chave de conta de serviço ou Application Default Credentials)
  5. Acesso ao Veo 3 — o modelo pode requerer aprovação de allowlist dependendo da sua região e caso de uso

Habilitando a API Vertex AI

# Habilitar a API Vertex AI para seu projeto
gcloud services enable aiplatform.googleapis.com --project=SEU_PROJECT_ID

Configurando Autenticação

O método de autenticação recomendado para uso em produção é uma conta de serviço:

# Criar uma conta de serviço
gcloud iam service-accounts create veo3-api-user \
  --display-name="Usuário API Veo 3" \
  --project=SEU_PROJECT_ID

# Conceder função de Usuário Vertex AI
gcloud projects add-iam-policy-binding SEU_PROJECT_ID \
  --member="serviceAccount:veo3-api-user@SEU_PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

# Criar e baixar chave
gcloud iam service-accounts keys create veo3-key.json \
  --iam-account=veo3-api-user@SEU_PROJECT_ID.iam.gserviceaccount.com

Para desenvolvimento local, Application Default Credentials (ADC) é mais simples:

gcloud auth application-default login

Fazendo Sua Primeira Requisição à API

SDK Python

O SDK Python do Google Cloud é a forma recomendada de interagir com a API do Veo 3:

pip install google-cloud-aiplatform

Geração básica de texto para vídeo:

import vertexai
from vertexai.preview.vision_models import VideoGenerationModel

# Inicializar Vertex AI
vertexai.init(project="SEU_PROJECT_ID", location="us-central1")

# Carregar o modelo Veo 3
model = VideoGenerationModel.from_pretrained("veo-3.0-generate-preview")

# Gerar um vídeo
operation = model.generate_video(
    prompt="Um filhote de golden retriever brincando em folhas de outono, câmera lenta, cinematográfico, tons quentes",
    output_gcs_uri="gs://SEU_BUCKET/output/",
    duration_seconds=8,
    aspect_ratio="16:9",
    resolution="1080p"
)

# Aguardar conclusão
response = operation.result(timeout=300)
print(f"Vídeo gerado: {response.generated_videos[0].video.uri}")

API REST

Para linguagens sem SDK do Google Cloud, você pode usar a API REST diretamente:

# Obter token de acesso
ACCESS_TOKEN=$(gcloud auth print-access-token)

# Enviar requisição de geração
curl -X POST \
  "https://us-central1-aiplatform.googleapis.com/v1/projects/SEU_PROJECT_ID/locations/us-central1/publishers/google/models/veo-3.0-generate-preview:predictLongRunning" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "instances": [{
      "prompt": "Vista aérea de um lago de montanha ao nascer do sol, névoa na água, descida lenta de drone",
      "duration_seconds": 8,
      "aspect_ratio": "16:9"
    }],
    "parameters": {
      "output_gcs_uri": "gs://SEU_BUCKET/output/",
      "resolution": "1080p"
    }
  }'

A resposta inclui um nome de operação que você consulta para conclusão:

# Consultar conclusão
curl -X GET \
  "https://us-central1-aiplatform.googleapis.com/v1/NOME_DA_OPERACAO" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Referência de Parâmetros da API

Parâmetros Obrigatórios

Parâmetro Tipo Descrição
prompt string Descrição textual do vídeo a ser gerado
output_gcs_uri string URI do Google Cloud Storage para saída

Parâmetros Opcionais

Parâmetro Tipo Padrão Descrição
duration_seconds inteiro 8 Duração do vídeo (1-8 segundos)
aspect_ratio string "16:9" "16:9", "9:16", "1:1", "4:3"
resolution string "720p" "720p" ou "1080p"
negative_prompt string null Elementos para excluir da geração
seed inteiro aleatório Para resultados reproduzíveis
guidance_scale float 7.5 Força de adesão ao prompt (1-20)

Parâmetros de Imagem para Vídeo

Para geração de imagem para vídeo, adicione a imagem de referência:

from vertexai.preview.vision_models import Image

# Carregar imagem de referência
reference_image = Image.load_from_file("referencia.jpg")

# Gerar vídeo da imagem
operation = model.generate_video(
    prompt="A cena ganha vida, brisa suave, cinematográfico",
    image=reference_image,
    output_gcs_uri="gs://SEU_BUCKET/output/",
    duration_seconds=8
)

Lidando com Operações Assíncronas

A geração de vídeo do Veo 3 é assíncrona — você envia uma requisição e consulta para conclusão. Aqui está uma implementação robusta:

import time
import vertexai
from vertexai.preview.vision_models import VideoGenerationModel
from google.api_core import exceptions

def generate_video_with_retry(prompt: str, output_uri: str, max_retries: int = 3):
    vertexai.init(project="SEU_PROJECT_ID", location="us-central1")
    model = VideoGenerationModel.from_pretrained("veo-3.0-generate-preview")
    
    for attempt in range(max_retries):
        try:
            operation = model.generate_video(
                prompt=prompt,
                output_gcs_uri=output_uri,
                duration_seconds=8,
                aspect_ratio="16:9"
            )
            
            # Consultar com backoff exponencial
            wait_time = 30
            while not operation.done():
                print(f"Aguardando {wait_time}s pela geração...")
                time.sleep(wait_time)
                wait_time = min(wait_time * 1.5, 120)
            
            response = operation.result()
            return response.generated_videos[0].video.uri
            
        except exceptions.ResourceExhausted:
            if attempt < max_retries - 1:
                print(f"Taxa limitada, aguardando 60s antes da tentativa {attempt + 2}...")
                time.sleep(60)
            else:
                raise
    
    return None

Baixando Vídeos Gerados

Vídeos gerados são armazenados no Google Cloud Storage. Baixe-os programaticamente:

from google.cloud import storage

def download_video(gcs_uri: str, local_path: str):
    client = storage.Client()
    
    # Analisar URI GCS
    bucket_name = gcs_uri.split("/")[2]
    blob_name = "/".join(gcs_uri.split("/")[3:])
    
    bucket = client.bucket(bucket_name)
    blob = bucket.blob(blob_name)
    blob.download_to_filename(local_path)
    print(f"Baixado para {local_path}")

# Uso
download_video(
    "gs://SEU_BUCKET/output/video_gerado.mp4",
    "/caminho/local/video.mp4"
)

Processamento em Lote

Para gerar múltiplos vídeos eficientemente:

import asyncio
from concurrent.futures import ThreadPoolExecutor

prompts = [
    "Nascer do sol na montanha, deriva aérea lenta, tons dourados",
    "Ondas do oceano em câmera lenta, água esmeralda",
    "Rua da cidade à noite, reflexos de neon, chuva",
    "Caminho na floresta no outono, folhas caindo, luz filtrada",
    "Produto em fundo branco, rotação lenta, iluminação de estúdio"
]

def generate_single(prompt_and_index):
    index, prompt = prompt_and_index
    output_uri = f"gs://SEU_BUCKET/lote/video_{index:03d}.mp4"
    return generate_video_with_retry(prompt, output_uri)

# Processar em paralelo (respeitar limites de taxa)
with ThreadPoolExecutor(max_workers=3) as executor:
    results = list(executor.map(generate_single, enumerate(prompts)))

print(f"Gerados {len([r for r in results if r])} vídeos com sucesso")

Limites de Taxa e Cotas

A API do Veo 3 tem limites de taxa que variam por nível de projeto:

Nível Requisições/minuto Operações concorrentes
Padrão 5 3
Elevado 20 10
Empresarial Personalizado Personalizado

Para solicitar cotas elevadas, envie uma solicitação de aumento de cota através do Console do Google Cloud.

Estimativa de Custos

O preço da API do Veo 3 é baseado na duração do vídeo gerado:

  • Padrão (720p): ~$0,35 por segundo de vídeo
  • Alta qualidade (1080p): ~$0,50 por segundo de vídeo

Para um lote de 100 clipes de oito segundos em 1080p: aproximadamente $400.

Para aplicações sensíveis a custos, considere usar a API do Seedance como alternativa — oferece qualidade comparável a custo mais baixo com direitos comerciais incluídos.

Lidando com Erros

Erros comuns e como lidar com eles:

from google.api_core import exceptions

try:
    operation = model.generate_video(prompt=prompt, output_gcs_uri=output_uri)
    response = operation.result(timeout=300)
except exceptions.ResourceExhausted as e:
    # Limite de taxa atingido — implementar backoff exponencial
    print(f"Taxa limitada: {e}")
except exceptions.InvalidArgument as e:
    # Prompt ou parâmetros inválidos
    print(f"Requisição inválida: {e}")
except exceptions.PermissionDenied as e:
    # Problema de autenticação ou autorização
    print(f"Permissão negada: {e}")
except TimeoutError:
    # Geração levou muito tempo
    print("Geração expirou — verifique o status da operação manualmente")

Melhores Práticas de Produção

Engenharia de Prompt para Uso da API

Ao usar a API programaticamente, a qualidade do prompt afeta diretamente a qualidade da saída:

def build_prompt(subject: str, action: str, environment: str, 
                  camera: str = "cinematic", style: str = "photorealistic") -> str:
    return f"{subject} {action}, {environment}, {camera}, {style}"

# Exemplos
prompts = [
    build_prompt("relógio de luxo", "rotação lenta de 360 graus", "superfície de mármore preto, iluminação suave de estúdio", "close-up, profundidade de campo rasa", "qualidade de fotografia comercial"),
    build_prompt("jovem profissional", "caminhando confiantemente", "lobby de prédio de escritórios moderno de vidro", "dolly lento para frente", "corporativo, iluminação natural"),
]

Gerenciamento de Saída

import os
from datetime import datetime

def get_output_uri(project_id: str, bucket: str, job_name: str) -> str:
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    return f"gs://{bucket}/veo3/{job_name}/{timestamp}/"

Monitoramento e Logging

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("veo3_api")

def generate_with_logging(prompt: str, output_uri: str):
    logger.info(f"Iniciando geração: {prompt[:50]}...")
    start_time = time.time()
    
    result = generate_video_with_retry(prompt, output_uri)
    
    elapsed = time.time() - start_time
    logger.info(f"Geração completa em {elapsed:.1f}s: {result}")
    return result

Alternativa: API do Seedance

Para aplicações onde custo, restrições de acesso ou direitos comerciais são preocupações, o Seedance oferece uma API com:

  • Custo mais baixo por geração
  • Sem restrições de acesso ou requisitos de allowlist
  • Direitos comerciais incluídos
  • Qualidade de saída comparável para a maioria dos casos de uso

A API do Seedance segue um padrão de requisição/resposta similar, tornando direto alternar entre provedores ou usar ambos na mesma aplicação.

Saiba mais sobre o Seedance em seedance.tv →

Gerenciamento de Custos

O preço da API do Veo 3 é baseado em segundos de vídeo gerados. Entender a estrutura de custos ajuda você a construir aplicações rentáveis.

Estrutura de Preços

  • Resolução padrão (720p): Cobrado por segundo de vídeo gerado
  • Alta resolução (1080p): Taxa mais alta por segundo
  • Gerações falhas: Não cobradas se a geração falhar antes de produzir saída

Estratégias de Otimização de Custos

1. Use resolução mais baixa para testes

Durante desenvolvimento e testes, use 720p para reduzir custos. Mude para 1080p apenas para saída de produção.

# Desenvolvimento/testes
resolution = "720p"

# Produção
resolution = "1080p"

2. Implemente validação de prompt antes da geração

Valide prompts antes de enviar para a API para evitar desperdiçar créditos em prompts que falharão verificações de política de conteúdo:

def validate_prompt(prompt: str) -> bool:
    # Verificar comprimento mínimo
    if len(prompt.strip()) < 10:
        return False
    # Verificar comprimento máximo
    if len(prompt) > 1000:
        return False
    # Adicione sua própria lógica de validação
    return True

3. Armazene vídeos gerados em cache

Armazene vídeos gerados no GCS e implemente uma camada de cache para evitar regenerar o mesmo conteúdo:

import hashlib

def get_cache_key(prompt: str, params: dict) -> str:
    content = f"{prompt}:{sorted(params.items())}"
    return hashlib.md5(content.encode()).hexdigest()

def get_or_generate(prompt: str, params: dict) -> str:
    cache_key = get_cache_key(prompt, params)
    cached_uri = f"gs://SEU_BUCKET/cache/{cache_key}.mp4"
    
    # Verificar se versão em cache existe
    if gcs_file_exists(cached_uri):
        return cached_uri
    
    # Gerar e armazenar em cache
    result = generate_video(prompt, cached_uri, params)
    return result

4. Use processamento em lote para grandes volumes

Para geração em grande escala, processe requisições em lote para maximizar throughput enquanto permanece dentro dos limites de cota:

import asyncio
from concurrent.futures import ThreadPoolExecutor

async def batch_generate(prompts: list, max_concurrent: int = 5):
    semaphore = asyncio.Semaphore(max_concurrent)
    
    async def generate_one(prompt):
        async with semaphore:
            return await asyncio.to_thread(generate_video, prompt)
    
    tasks = [generate_one(p) for p in prompts]
    return await asyncio.gather(*tasks, return_exceptions=True)

API do Veo 3 vs API do Seedance

Para desenvolvedores avaliando APIs de vídeo com IA, aqui está uma comparação:

Aspecto API do Veo 3 API do Seedance
Acesso Restrito (allowlist) Aberto
Preços Cobrança por segundo Baseado em assinatura
Qualidade de saída Mais alta Excelente
Latência 30-120 segundos 15-45 segundos
Duração máxima 8 segundos 8 segundos
Direitos comerciais Sim (com licença) Sim (nível gratuito)
Documentação Abrangente Boa
Suporte a SDK Python, Java, Go, Node.js API REST

Para aplicações onde a qualidade do Veo 3 é essencial e o acesso está disponível, a API do Veo 3 é a escolha premium. Para aplicações que precisam de acesso aberto, iteração mais rápida e custo mais baixo, a API do Seedance é uma forte alternativa.

Explore o Seedance como alternativa acessível em seedance.tv →

Perguntas Frequentes

A API do Veo 3 está publicamente disponível? A API do Veo 3 está disponível através do Google Cloud Vertex AI, mas o acesso pode requerer aprovação de allowlist dependendo da sua região e caso de uso. Aplique através do Console do Google Cloud.

Quais linguagens de programação são suportadas? O Google Cloud fornece SDKs para Python, Java, Go, Node.js e .NET. A API REST funciona com qualquer linguagem que possa fazer requisições HTTP.

Quanto tempo leva a geração de vídeo? Tipicamente 30-120 segundos dependendo da carga do servidor, duração do vídeo e resolução. Implemente timeouts apropriados em sua aplicação.

Posso gerar vídeos com mais de 8 segundos? O máximo atual é de 8 segundos por geração. Para vídeos mais longos, gere múltiplos clipes e una-os em pós-processamento.

O que acontece se a geração falhar? Gerações falhas não são cobradas. Implemente lógica de retry com backoff exponencial para falhas transientes.

Existe um nível gratuito para a API do Veo 3? O Google Cloud oferece $300 em créditos gratuitos para novas contas, que podem ser usados para chamadas da API do Veo 3. Não há nível gratuito contínuo — todo uso é cobrado após os créditos serem esgotados.

Quais são as restrições de política de conteúdo? O Veo 3 segue as políticas de conteúdo do Google. Prompts que violam estas políticas serão rejeitados. Revise a documentação de política de conteúdo do Vertex AI para detalhes.

Posso usar vídeos gerados comercialmente? Sim, com licenciamento apropriado. Revise os termos de serviço do Google Cloud e políticas de uso do Vertex AI para requisitos de uso comercial.

A API do Veo 3 é uma ferramenta poderosa para desenvolvedores construindo aplicações de vídeo com IA. A combinação da qualidade do modelo do Google, suporte abrangente a SDK e infraestrutura de nível empresarial a torna uma forte escolha para aplicações de produção onde a qualidade é a prioridade máxima.

Para desenvolvedores que precisam de acesso aberto sem requisitos de allowlist, o Seedance fornece uma alternativa capaz com uma API direta e direitos comerciais gratuitos.

Comece a construir com a API aberta do Seedance em seedance.tv →

Ready to create AI videos?
Turn ideas and images into finished videos with the core Veo3 AI tools.

Related Articles

Continue with more blog posts in the same locale.

Browse all posts