API de Google Veo 3: Cómo Acceder e Integrar Generación de Video IA en 2026

Guía completa de la API de Veo 3: autenticación, Python SDK, Node.js, REST API, operaciones asíncronas, gestión de costos y mejores prácticas de producción.

E

Emma Chen · 5 min read · Apr 18, 2026

API de Google Veo 3: Cómo Acceder e Integrar Generación de Video IA en 2026

API de Google Veo 3: Cómo Acceder e Integrar Generación de Video IA en 2026

Google Veo 3 es uno de los modelos de generación de video IA más capaces disponibles en 2026. Para desarrolladores y empresas que quieren integrar las capacidades de Veo 3 en sus propias aplicaciones, la API de Google Cloud Vertex AI proporciona acceso programático. Esta guía cubre todo lo que necesitas saber sobre acceder a la API de Veo 3, autenticación, hacer solicitudes y manejar respuestas.

¿Qué es la API de Veo 3?

La API de Veo 3 está disponible a través de la plataforma Vertex AI de Google Cloud. Permite a desarrolladores generar videos programáticamente enviando prompts de texto (y opcionalmente imágenes de referencia) a los servidores de Google y recibiendo archivos de video generados a cambio.

La API está diseñada para casos de uso empresarial y de desarrollador donde necesitas:

  • Integrar generación de video IA en tu propia aplicación
  • Automatizar producción de video a escala
  • Construir productos y servicios sobre las capacidades de Veo 3
  • Procesar grandes lotes de solicitudes de generación de video

Requisitos Previos

Antes de poder usar la API de Veo 3, necesitas:

  1. Una cuenta de Google Cloud con facturación habilitada
  2. Un proyecto de Google Cloud con la API de Vertex AI habilitada
  3. Permisos IAM apropiados (rol mínimo de Usuario de Vertex AI)
  4. Credenciales de API (clave de cuenta de servicio o Credenciales Predeterminadas de Aplicación)
  5. Acceso a Veo 3 — el modelo puede requerir aprobación de lista de permitidos dependiendo de tu región y caso de uso

Habilitando la API de Vertex AI

# Habilita la API de Vertex AI para tu proyecto
gcloud services enable aiplatform.googleapis.com --project=TU_PROJECT_ID

Configurando Autenticación

El método de autenticación recomendado para uso en producción es una cuenta de servicio:

# Crea una cuenta de servicio
gcloud iam service-accounts create veo3-api-user \
  --display-name="Usuario API Veo 3" \
  --project=TU_PROJECT_ID

# Asigna rol de Usuario de Vertex AI
gcloud projects add-iam-policy-binding TU_PROJECT_ID \
  --member="serviceAccount:veo3-api-user@TU_PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

# Crea y descarga clave
gcloud iam service-accounts keys create veo3-key.json \
  --iam-account=veo3-api-user@TU_PROJECT_ID.iam.gserviceaccount.com

Para desarrollo local, las Credenciales Predeterminadas de Aplicación (ADC) son más simples:

gcloud auth application-default login

Haciendo Tu Primera Solicitud a la API

Python SDK

El SDK de Python de Google Cloud es la forma recomendada de interactuar con la API de Veo 3:

pip install google-cloud-aiplatform

Generación básica de texto a video:

import vertexai
from vertexai.preview.vision_models import VideoGenerationModel

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

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

# Genera un video
operation = model.generate_video(
    prompt="Un cachorro de golden retriever jugando en hojas de otoño, cámara lenta, cinematográfico, tonos cálidos",
    output_gcs_uri="gs://TU_BUCKET/output/",
    duration_seconds=8,
    aspect_ratio="16:9",
    resolution="1080p"
)

# Espera la finalización
response = operation.result(timeout=300)
print(f"Video generado: {response.generated_videos[0].video.uri}")

API REST

Para lenguajes sin SDK de Google Cloud, puedes usar la API REST directamente:

# Obtén token de acceso
ACCESS_TOKEN=$(gcloud auth print-access-token)

# Envía solicitud de generación
curl -X POST \
  "https://us-central1-aiplatform.googleapis.com/v1/projects/TU_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 un lago de montaña al amanecer, niebla en el agua, descenso lento de dron",
      "duration_seconds": 8,
      "aspect_ratio": "16:9"
    }],
    "parameters": {
      "output_gcs_uri": "gs://TU_BUCKET/output/",
      "resolution": "1080p"
    }
  }'

La respuesta incluye un nombre de operación que consultas para verificar finalización:

# Consulta finalización
curl -X GET \
  "https://us-central1-aiplatform.googleapis.com/v1/NOMBRE_OPERACION" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Referencia de Parámetros de API

Parámetros Requeridos

Parámetro Tipo Descripción
prompt string Descripción de texto del video a generar
output_gcs_uri string URI de Google Cloud Storage para salida

Parámetros Opcionales

Parámetro Tipo Predeterminado Descripción
duration_seconds integer 8 Duración del video (1-8 segundos)
aspect_ratio string "16:9" "16:9", "9:16", "1:1", "4:3"
resolution string "720p" "720p" o "1080p"
negative_prompt string null Elementos a excluir de la generación
seed integer aleatorio Para resultados reproducibles
guidance_scale float 7.5 Fuerza de adherencia al prompt (1-20)

Manejando Operaciones Asíncronas

La generación de video de Veo 3 es asíncrona — envías una solicitud y consultas para verificar finalización. Aquí hay una implementación 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="TU_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"
            )
            
            # Consulta con retroceso exponencial
            wait_time = 30
            while not operation.done():
                print(f"Esperando {wait_time}s para generación...")
                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"Limitado por tasa, esperando 60s antes de reintento {attempt + 2}...")
                time.sleep(60)
            else:
                raise
    
    return None

Descargando Videos Generados

Los videos generados se almacenan en Google Cloud Storage. Descárgalos programáticamente:

from google.cloud import storage

def download_video(gcs_uri: str, local_path: str):
    client = storage.Client()
    
    # Analiza URI de 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"Descargado a {local_path}")

# Uso
download_video(
    "gs://TU_BUCKET/output/generated_video.mp4",
    "/ruta/local/video.mp4"
)

Procesamiento por Lotes

Para generar múltiples videos eficientemente:

import asyncio
from concurrent.futures import ThreadPoolExecutor

prompts = [
    "Amanecer en montaña, deriva aérea lenta, tonos dorados",
    "Olas oceánicas en cámara lenta, agua esmeralda",
    "Calle de ciudad de noche, reflejos de neón, lluvia",
    "Sendero forestal en otoño, hojas cayendo, luz moteada",
    "Producto sobre fondo blanco, rotación lenta, iluminación de estudio"
]

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

# Procesa en paralelo (respeta límites de tasa)
with ThreadPoolExecutor(max_workers=3) as executor:
    results = list(executor.map(generate_single, enumerate(prompts)))

print(f"Generados {len([r for r in results if r])} videos exitosamente")

Límites de Tasa y Cuotas

La API de Veo 3 tiene límites de tasa que varían por nivel de proyecto:

Nivel Solicitudes/minuto Operaciones concurrentes
Predeterminado 5 3
Elevado 20 10
Empresarial Personalizado Personalizado

Para solicitar cuotas elevadas, envía una solicitud de aumento de cuota a través de la Consola de Google Cloud.

Estimación de Costos

El precio de la API de Veo 3 se basa en la duración de video generada:

  • Estándar (720p): ~$0.35 por segundo de video
  • Alta calidad (1080p): ~$0.50 por segundo de video

Para un lote de 100 clips de ocho segundos a 1080p: aproximadamente $400.

Para aplicaciones sensibles a costos, considera usar la API de Seedance como alternativa — ofrece calidad comparable a menor costo con derechos comerciales incluidos.

Manejo de Errores

Errores comunes y cómo manejarlos:

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:
    # Límite de tasa alcanzado — implementa retroceso exponencial
    print(f"Limitado por tasa: {e}")
except exceptions.InvalidArgument as e:
    # Prompt o parámetros incorrectos
    print(f"Solicitud inválida: {e}")
except exceptions.PermissionDenied as e:
    # Problema de autenticación o autorización
    print(f"Permiso denegado: {e}")
except TimeoutError:
    # La generación tomó demasiado tiempo
    print("Generación agotó tiempo — verifica estado de operación manualmente")

Mejores Prácticas de Producción

Ingeniería de Prompts para Uso de API

Cuando usas la API programáticamente, la calidad del prompt afecta directamente la calidad de salida:

def build_prompt(subject: str, action: str, environment: str, 
                  camera: str = "cinematográfico", style: str = "fotorrealista") -> str:
    return f"{subject} {action}, {environment}, {camera}, {style}"

# Ejemplos
prompts = [
    build_prompt("reloj de lujo", "rotación lenta de 360 grados", "superficie de mármol negro, iluminación suave de estudio", "primer plano, profundidad de campo baja", "calidad de fotografía comercial"),
    build_prompt("profesional joven", "caminando con confianza", "lobby de edificio de oficinas moderno de vidrio", "dolly lento hacia adelante", "corporativo, iluminación natural"),
]

Gestión de Salida

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}/"

Monitoreo y Registro

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 generación: {prompt[:50]}...")
    start_time = time.time()
    
    result = generate_video_with_retry(prompt, output_uri)
    
    elapsed = time.time() - start_time
    logger.info(f"Generación completa en {elapsed:.1f}s: {result}")
    return result

Alternativa: API de Seedance

Para aplicaciones donde el costo, restricciones de acceso o derechos comerciales son preocupaciones, Seedance ofrece una API con:

  • Menor costo por generación
  • Sin restricciones de acceso ni requisitos de lista de permitidos
  • Derechos comerciales incluidos
  • Calidad de salida comparable para la mayoría de los casos de uso

La API de Seedance sigue un patrón de solicitud/respuesta similar, haciendo sencillo cambiar entre proveedores o usar ambos en la misma aplicación.

Aprende más sobre Seedance en seedance.tv →

Conclusión

La API de Veo 3 es una herramienta poderosa para desarrolladores construyendo aplicaciones de video IA. La combinación de la calidad del modelo de Google, soporte integral de SDK e infraestructura de nivel empresarial la hace una opción sólida para aplicaciones de producción donde la calidad es la máxima prioridad.

Para desarrolladores que necesitan acceso abierto sin requisitos de lista de permitidos, Seedance proporciona una alternativa capaz con una API sencilla y derechos comerciales gratuitos.

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