> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Instrucciones de integración de la API de generación de Veo Videos

> Veo Video Generation API guide - Ace Data Cloud

Este documento presentará una guía de integración de la API de generación de Veo Videos, que permite generar videos oficiales de Veo mediante la entrada de parámetros personalizados.

## Proceso de solicitud

Para utilizar la API de generación de Veo Videos, primero dirígete a [la consola de Ace Data Cloud](https://platform.acedata.cloud/console/applications) para obtener tu token de API y guardarlo para uso futuro.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invitará a registrarte e iniciar sesión; una vez completado, serás devuelto automáticamente a la página actual.

**Un token de API es suficiente para acceder a todos los servicios de la plataforma, no es necesario solicitar uno para cada servicio.** La primera solicitud incluirá un crédito gratuito para que puedas probarlo; si el crédito es insuficiente, puedes recargar el saldo general en [la consola](https://platform.acedata.cloud/console/coin).

> 📘 Documentación completa: [API de generación de Veo Videos →](https://platform.acedata.cloud/documents/veo-videos)

## Uso básico

Primero, es importante entender la forma básica de uso, que consiste en ingresar la palabra clave `prompt`, la acción de generación `action`, un array de imágenes de referencia de inicio y fin `image_urls`, así como el modelo `model`, para obtener el resultado procesado. Primero, se necesita pasar un campo `action`, cuyo valor es `text2video`, que incluye principalmente tres acciones: generación de video a partir de texto (`text2video`), generación de video a partir de imágenes (`image2video`), y obtención de video en 1080p (`get1080p`). Luego, también necesitamos ingresar el modelo `model`, que actualmente incluye principalmente los modelos `veo31-fast`, `veo3`, `veo31`, `veo3-fast` y `veo31-fast-ingredients`, cuyos detalles son los siguientes:

<p>
  <img src="https://cdn.acedata.cloud/vv5pe8.png" width="500" className="m-auto" />
</p>

Aquí podemos ver que hemos configurado los encabezados de la solicitud, que incluyen:

* `accept`: el formato de respuesta que deseas recibir, aquí se establece como `application/json`, es decir, formato JSON.
* `authorization`: la clave para llamar a la API, que puedes seleccionar directamente después de solicitarla.

Además, se ha configurado el cuerpo de la solicitud, que incluye:

* `model`: el modelo para generar el video, que incluye principalmente `veo31-fast`, `veo3`, `veo31`, `veo3-fast` y `veo31-fast-ingredients`.
* `action`: la acción de la tarea de generación de video, que incluye principalmente tres acciones: generación de video a partir de texto (`text2video`), generación de video a partir de imágenes (`image2video`), y obtención de video en 1080p (`get1080p`).
* `image_urls`: cuando se selecciona la acción de generación de video a partir de imágenes `image2video`, es necesario subir los enlaces de las imágenes de referencia. `veo31-fast-ingredients` admite hasta 3 imágenes (fusión de múltiples imágenes), mientras que los otros modelos admiten hasta 2 imágenes (modo de inicio y fin).
* `resolution`: selecciona la resolución del video generado, donde el modelo veo31 admite resolución 4k, mientras que los otros modelos no lo hacen; todos los modelos admiten resoluciones de 1080p y gif, si no se proporciona este valor, se utilizará por defecto la resolución de 720p, que se clasifica en: `1080p`, `gif`, `4k`.
* `prompt`: la palabra clave.
* `callback_url`: la URL para recibir el resultado de la llamada.
* `async`: opcional, si se establece en `true`, la interfaz devuelve inmediatamente `task_id`, sin necesidad de proporcionar `callback_url`, y luego se puede consultar el resultado a través de la interfaz de consulta de tareas correspondiente.

### 📌 Resumen de la descripción del modelo

| **Nombre del modelo**      | **Modos soportados**                                                                                                                    | **Reglas de entrada de imágenes**                                           |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| **veo3-fast**              | Generación de video a partir de texto (sin imagen)<br />Modo de generación de video a partir de imágenes (con imagen)                   | **1 imagen** → Modo de inicio<br />**2 imágenes** → Modo de inicio y fin    |
| **veo31-fast**             | Generación de video a partir de texto (sin imagen)<br />Modo de generación de video a partir de imágenes (con imagen)                   | **1 imagen** → Modo de inicio<br />**2 imágenes** → Modo de inicio y fin    |
| **veo31-fast-ingredients** | ❌ Generación de video a partir de texto (no soportado)<br />✅ **Fusión de múltiples imágenes obligatoria** (debe proporcionar imágenes) | **1-3 imágenes** → Modo de fusión de múltiples imágenes (máximo 3 imágenes) |
| **veo3**                   | Generación de video a partir de texto (sin imagen)<br />Modo de generación de video a partir de imágenes (con imagen)                   | **1 imagen** → Modo de inicio<br />**2 imágenes** → Modo de inicio y fin    |
| **veo31**                  | Generación de video a partir de texto (sin imagen)<br />Modo de generación de video a partir de imágenes (con imagen)                   | **1 imagen** → Modo de inicio<br />**2 imágenes** → Modo de inicio y fin    |

***

### 🔑 Descripción de reglas clave

1. **Lógica general**:
   * **Sin entrada de imagen** → Se activa automáticamente el modo de generación de video a partir de texto.
   * **Con entrada de imagen** → Se activa el modo de generación de video a partir de imágenes (la acción específica depende de la cantidad de imágenes).
2. **Tipos de modo de generación de video a partir de imágenes**:
   * **Modo de inicio** (1 imagen): la imagen de inicio se fija como la imagen de entrada.
   * **Modo de inicio y fin** (2 imágenes): la imagen de inicio y la imagen de fin se fijan como las imágenes de entrada.
   * **Modo de fusión de múltiples imágenes** (1-3 imágenes): solo `veo31-fast-ingredients` lo admite, fusionando el contenido de múltiples imágenes para generar un video.
3. **Clasificación de modos**:

* **Modo Rápido**: `veo3-fast`, `veo31-fast`, `veo31-fast-ingredients`.
* **Modo de Calidad**: `veo3`, `veo31` (genera calidad más alta).

***

### ⚠️ Consideraciones

* **Modelo que requiere obligatoriamente imágenes**: `veo31-fast-ingredients` debe recibir imágenes (1-3 imágenes), de lo contrario, no podrá ejecutarse.
* **Límite de cantidad de imágenes**:
  * `veo31-fast-ingredients` admite **1-3 imágenes** de entrada (modo de fusión de múltiples imágenes).
  * Otros modelos admiten un máximo de **2 imágenes** de entrada (modo de inicio y fin).

Después de seleccionar, puedes ver que también se ha generado el código correspondiente a la derecha, como se muestra en la imagen:

<p>
  <img src="https://cdn.acedata.cloud/pmwh4y.png" width="500" className="m-auto" />
</p>

Haz clic en el botón "Probar" para realizar la prueba, como se muestra en la imagen anterior, aquí hemos obtenido el siguiente resultado:

```json theme={null}
{
  "success": true,
  "task_id": "697ea2fc-58fd-48c8-8191-29041ff23c3c",
  "trace_id": "70e1cb12-c619-4292-a416-90191205996b",
  "data": [
    {
      "id": "24ac06a5-9cc7-448f-802e-0b4db19f6e96",
      "video_url": "https://platform2.cdn.acedata.cloud/veo/f5389ec0-2eb5-4212-b4a8-04b513b0129a.mp4",
      "created_at": "2026-06-30T04:01:50.364Z",
      "complete_at": "2026-06-30T04:03:20.495Z",
      "state": "succeeded"
    }
  ]
}
```

El resultado devuelto contiene varios campos, que se describen a continuación:

* `success`，el estado de la tarea de generación de video en este momento.
* `task_id`，el ID de la tarea de generación de video en este momento.
* `data`，el resultado de la tarea de generación de video en este momento.
  * `id`，el ID del video de la tarea de generación de video en este momento.
  * `video_url`，el enlace del video de la tarea de generación de video en este momento.
  * `created_at`，la hora de creación de la tarea de generación de video en este momento.
  * `complete_at`，la hora de finalización de la tarea de generación de video en este momento.
  * `state`，el estado de la tarea de generación de video en este momento.

Podemos ver que hemos obtenido información satisfactoria del video, solo necesitamos obtener el video generado a partir de la dirección del enlace de video en el resultado `data`.

Además, si deseas generar el código correspondiente, puedes copiarlo directamente, por ejemplo, el código de CURL es el siguiente:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/veo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "veo31-fast",
  "prompt": "Taza de café de cerámica blanca sobre una encimera de mármol brillante con luz de ventana de la mañana. La cámara rota lentamente 360 grados alrededor de la taza, deteniéndose brevemente en el asa."
}'
```

## Función de generación de video a partir de imágenes

Si deseas generar un video a partir de imágenes de inicio y fin, puedes establecer el parámetro `action` como `image2video` y proporcionar un array de enlaces de imágenes de inicio y fin `image_urls`.

A continuación, debemos completar el siguiente paso con las palabras clave que necesitamos expandir para personalizar la generación del video, especificando el siguiente contenido:

* `model`：el modelo para generar el video, que incluye `veo31-fast`、`veo3`、`veo31`、`veo3-fast` y `veo31-fast-ingredients`.
* `image_urls`：cuando se elige la acción de generación de video `image2video`, es necesario subir los enlaces de las imágenes de referencia.
* `prompt`：palabras clave.

Un ejemplo de llenado es el siguiente:

<p>
  <img src="https://cdn.acedata.cloud/8wvlqd.png" width="500" className="m-auto" />
</p>

Una vez completado, se generó automáticamente el siguiente código:

<p>
  <img src="https://cdn.acedata.cloud/tgzfxi.png" width="500" className="m-auto" />
</p>

El código correspondiente en Python:

```python theme={null}
import requests

url = "https://api.acedata.cloud/veo/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "image2video",
    "model": "veo31-fast",
    "prompt": "Déjalo bailar",
    "image_urls": ["https://cdn.acedata.cloud/7p1jhy.png"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Al hacer clic en ejecutar, se puede observar que se obtiene un resultado, como el siguiente:

```json theme={null}
{
  "success": true,
  "task_id": "98e309f3-35bc-438d-8cb3-4015fc864b87",
  "trace_id": "8bc68066-36de-41ef-ae5e-b7d61ff6aee8",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.acedata.cloud/veo/98e309f3-35bc-438d-8cb3-4015fc864b87.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Se puede ver que el contenido del resultado es consistente con el anterior, lo que también logra la función de generación de video a partir de imágenes.

## Función para obtener video en 1080p

Si deseas obtener un video Veo ya generado en 1080p, puedes establecer el parámetro `action` como `get1080p` y proporcionar el ID del video que deseas obtener en 1080p. El ID del video se obtiene según el uso básico, como se muestra en la siguiente imagen:

<p>
  <img src="https://cdn.acedata.cloud/hacabc.png" width="500" className="m-auto" />
</p>

En este momento, se puede ver que el ID del video es:

```json theme={null}
"id": "59f12222b1fa4fbe9331ff2400ad1583"
```

> Nota: el `video_id` aquí es el ID del video generado. Si no sabes cómo generar un video, puedes consultar el uso básico anterior para generarlo.

A continuación, debemos completar el siguiente paso con las palabras clave que necesitamos expandir para personalizar la generación del video, especificando el siguiente contenido:

* `model`：el modelo para generar el video, que incluye `veo31-fast`、`veo3`、`veo31`、`veo3-fast` y `veo31-fast-ingredients`.
* `video_id`：el ID del video de referencia, utilizado para obtener el video en 1080p.

Un ejemplo de llenado es el siguiente:

<p>
  <img src="https://cdn.acedata.cloud/k56fhn.png" width="500" className="m-auto" />
</p>

Una vez completado, se generó automáticamente el siguiente código:

<p>
  <img src="https://cdn.acedata.cloud/8gn4cr.png" width="500" className="m-auto" />
</p>

Al hacer clic en ejecutar, se puede observar que se obtiene un resultado, como el siguiente:

```json theme={null}
{
  "success": true,
  "task_id": "47a51cfe-2e24-4aba-93b3-546c2dc52984",
  "trace_id": "a8922eec-6f50-4f77-8104-00ded071d59d",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.acedata.cloud/veo/47a51cfe-2e24-4aba-93b3-546c2dc52984.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Se puede ver que el contenido del resultado es consistente con el anterior, lo que también logra la función de obtener video en 1080p.

## Generación de video con tamaño específico

Si deseas especificar la generación de un video Veo de tamaño personalizado, puedes establecer el parámetro `aspect_ratio` como el tamaño deseado. A continuación, debemos completar el siguiente paso con las palabras clave que necesitamos expandir para personalizar la generación del video, especificando el siguiente contenido:

* `model`：el modelo para generar el video, que incluye `veo31-fast`、`veo3`、`veo31`、`veo3-fast` y `veo31-fast-ingredients`.
* `aspect_ratio`：el tamaño del video, actualmente soporta: `16:9`、`16:9`、`3:4`、`4:3`、`1:1`，el valor predeterminado es `16:9`.
* `translation`：si se debe activar la traducción automática de las palabras clave, el valor predeterminado es `false`.
  Un ejemplo de llenado es el siguiente:

<p>
  <img src="https://cdn.acedata.cloud/xau4cm.png" width="500" className="m-auto" />
</p>

Una vez completado, se generó automáticamente el siguiente código:

<p>
  <img src="https://cdn.acedata.cloud/55r589.png" width="500" className="m-auto" />
</p>

Al hacer clic en ejecutar, se puede observar que se obtiene un resultado, como el siguiente:

```json theme={null}
{
  "success": true,
  "task_id": "d2b93290-ab0e-4d20-ae45-60c062a32687",
  "trace_id": "9834e64d-c8fe-43ae-8114-ee2b5f93d886",
  "data": [
    {
      "id": "fc667e7d3b8f44beaa61a3c339af0e50",
      "video_url": "https://platform.cdn.acedata.cloud/veo/d2b93290-ab0e-4d20-ae45-60c062a32687.mp4",
      "created_at": "2025-08-24 20:09:06",
      "complete_at": "2025-08-24 20:10:45",
      "state": "succeeded"
    }
  ]
}
```

Se puede ver que el contenido del resultado es consistente con el anterior, lo que también logra la función de generar videos de tamaño específico.

## Callback asíncrono

Dado que el tiempo de generación de la API de Veo Videos Generation es relativamente largo, aproximadamente de 1 a 2 minutos, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema. Por lo tanto, esta API también ofrece soporte para callbacks asíncronos.

El flujo general es: cuando el cliente inicia la solicitud, especifica un campo adicional `callback_url`. Después de que el cliente inicia la solicitud a la API, la API devolverá inmediatamente un resultado que incluye un campo de información `task_id`, que representa el ID de la tarea actual. Cuando la tarea se completa, el resultado del video generado se enviará al `callback_url` especificado por el cliente en formato JSON POST, que también incluye el campo `task_id`, de modo que el resultado de la tarea se pueda asociar mediante el ID.

A continuación, entendamos cómo operar específicamente a través de un ejemplo.

Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, los desarrolladores deben reemplazarlo con la URL de su propio servidor HTTP. Aquí, para facilitar la demostración, se utiliza un sitio web de muestra de Webhook público [https://webhook.site/](https://webhook.site/), al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen:

![](https://cdn.acedata.cloud/tbcnai.png)

Copie esta URL y podrá usarla como Webhook, el ejemplo aquí es `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`.

A continuación, podemos establecer el campo `callback_url` como la URL de Webhook mencionada anteriormente, al mismo tiempo que llenamos los parámetros correspondientes, el contenido específico se muestra en la imagen:

<p>
  <img src="https://cdn.acedata.cloud/rgivs2.png" width="500" className="m-auto" />
</p>

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado, como se muestra a continuación:

```json theme={null}
{
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed"
}
```

Después de un momento, podemos observar el resultado del video generado en `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`, como se muestra en la imagen:

![](https://cdn.acedata.cloud/238i32.png)

El contenido es el siguiente:

```json theme={null}
{
  "success": true,
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed",
  "trace_id": "d1d53c04-58c5-4c40-bb63-f00188540e56",
  "data": [
    {
      "id": "2f43ceed37944b4d836e1a1899dad0a1",
      "video_url": "https://platform.cdn.acedata.cloud/veo/1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed.mp4",
      "created_at": "2025-07-25 17:19:20",
      "complete_at": "2025-07-25 17:21:45",
      "state": "succeeded"
    }
  ]
}
```

Se puede ver que en el resultado hay un campo `task_id`, los otros campos son similares a los anteriores, a través de este campo se puede lograr la asociación de tareas.

## Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error y la información correspondiente. Por ejemplo:

* `400 token_mismatched`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `400 api_not_implemented`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `401 invalid_token`: No autorizado, token de autorización inválido o faltante.
* `429 too_many_requests`: Demasiadas solicitudes, ha superado el límite de tasa.
* `500 api_error`: Error interno del servidor, algo salió mal en el servidor.

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusión

A través de este documento, ha aprendido cómo usar la API de Veo Videos Generation para generar videos mediante la entrada de palabras clave y una imagen de referencia del primer fotograma. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.
