Saltar al contenido principal
Este documento presentará una guía de integración para la API de generación de videos de Sora, que permite generar videos oficiales de Sora mediante la entrada de parámetros personalizados.

Proceso de Solicitud

Para utilizar la API, primero debe ir a la página correspondiente de Sora Videos Generation API para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón “Acquire”, como se muestra en la imagen: Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión que lo invita a registrarse e iniciar sesión. Después de iniciar sesión o registrarse, será redirigido automáticamente a la página actual. En la primera solicitud, se le otorgará un crédito gratuito que le permitirá utilizar la API sin costo.

Uso Básico

Primero, comprenda la forma básica de uso, que consiste en ingresar la palabra clave prompt, un array de enlaces de imágenes de referencia image_urls y el modelo model, para obtener el resultado procesado. El contenido específico es el siguiente:

Aquí podemos ver que hemos configurado los Request Headers, que incluyen:
  • accept: el formato de respuesta que desea recibir, aquí se establece como application/json, es decir, en formato JSON.
  • authorization: la clave para llamar a la API, que puede seleccionarse directamente después de la solicitud.
Además, se ha configurado el Request Body, que incluye:
  • model: el modelo para generar el video, que incluye sora-2 y sora-2-pro. Actualmente, sora-2 y sora-2-pro permiten seleccionar los parámetros size y duration para el video, donde sora-2-pro admite videos de 25s, mientras que sora-2 solo admite videos de 10 y 15 segundos.
  • size: la claridad de la tarea de generación de video, que puede ser small o large.
  • image_urls: enlaces de imágenes de referencia que deben subirse o un array codificado en Base64.
  • duration: la duración de la tarea de generación de video, que puede ser de 10s, 15s o 25s, siendo solo sora-2-pro el que admite 25s.
  • character_start/character_end: la posición de inicio y fin del personaje en la pantalla (0-1), utilizada para controlar la posición del sujeto.
  • orientation: la dirección del marco, que admite landscape, portrait o square.
  • prompt: la palabra clave.
  • callback_url: la URL para recibir el resultado.
Después de seleccionar, se puede observar que a la derecha también se ha generado el código correspondiente, como se muestra en la imagen:

Haciendo clic en el botón “Try”, se puede realizar una prueba, como se muestra en la imagen anterior, y se obtiene el siguiente resultado:
{
  "success": true,
  "task_id": "6bf7fb83-5814-4e3e-a4ad-bfa0c26c0b33",
  "trace_id": "96166698-4b66-478d-a26b-77a7269c9e01",
  "data": [
    {
      "id": "sora-2:task_01k7770rgsevxsmtpbn7xnm5gh",
      "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k7770rgsevxsmtpbn7xnm5gh%2Ftask_01k7770rgsevxsmtpbn7xnm5gh_genid_0bf958d3-cae7-4298-b7b6-99ae439a1ea6_25_10_10_14_06_975715%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A30%3A38Z&se=2025-10-16T13%3A30%3A38Z&sks=b&skt=2025-10-10T12%3A30%3A38Z&ske=2025-10-16T13%3A30%3A38Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=8ebb0df1-a278-4e2e-9c20-f2d373479b3a&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=jigY6Z5qp8%2BTXYobaW0EAJ4%2Fbx6G7t6V1P0iyDeUq48%3D&az=oaivgprodscus",
      "state": "succeeded"
    }
  ]
}
El resultado devuelto tiene varios campos, que se describen a continuación:
  • success, el estado de la tarea de generación de video en ese momento.
  • task_id, el ID de la tarea de generación de video en ese momento.
  • trace_id, el ID de seguimiento de la generación de video en ese momento.
  • data, la lista de resultados de la tarea de generación de video en ese momento.
    • id, el ID del video de la tarea de generación de video en ese momento.
    • video_url, el enlace del video de la tarea de generación de video en ese momento.
    • state, el estado de la tarea de generación de video en ese momento.
Podemos ver que hemos obtenido información satisfactoria sobre el video, y solo necesitamos obtener el video de Sora generado a partir de la dirección del enlace de video en data. Además, si desea generar el código de integración correspondiente, puede copiarlo directamente, por ejemplo, el código de CURL es el siguiente:
curl -X POST 'https://api.acedata.cloud/sora/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "size": "large",
  "duration": 15,
  "orientation": "landscape",
  "prompt": "cat running on the river",
  "model": "sora-2"
}'

Tarea de Video a partir de Imágenes

Si desea realizar una tarea de video a partir de imágenes, primero debe pasar el parámetro image_urls con los enlaces de las imágenes de referencia, lo que permitirá especificar el siguiente contenido:
  • image_urls: el array de enlaces de las imágenes de referencia utilizadas en esta tarea de video a partir de imágenes.
Un ejemplo de entrada es el siguiente:

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

El código correspondiente es:
import requests

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

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

payload = {
    "size": "large",
    "duration": 15,
    "orientation": "landscape",
    "prompt": "cat running on the river",
    "model": "sora-2",
    "image_urls": ["https://cdn.acedata.cloud/11wfp4.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 de inmediato, como se muestra a continuación:
{
  "success": true,
  "task_id": "dd392ff0-dcb7-4c7a-afd0-9bd4f65c803a",
  "trace_id": "04fd151c-e942-4c1c-a6ab-9a1b1fe54172",
  "data": [
    {
      "id": "sora-2:task_01k777af4hfmg9g7yfvwsc6zws",
      "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777af4hfmg9g7yfvwsc6zws%2Ftask_01k777af4hfmg9g7yfvwsc6zws_genid_92bae0c5-1703-4a5f-9d9f-c9ed2f9e7176_25_10_10_14_12_924695%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A37%3A32Z&se=2025-10-16T13%3A37%3A32Z&sks=b&skt=2025-10-10T12%3A37%3A32Z&ske=2025-10-16T13%3A37%3A32Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=5j4dibeaSsDmEka5c%2B9CKHZhRPdqfClQ0tIh03TWXsM%3D&az=oaivgprodscus",
      "state": "succeeded"
    }
  ]
}
Se puede ver que el efecto generado es un video creado a partir de imágenes, el resultado es similar al anterior.

Tarea de generación de video de personajes

Si deseas realizar una tarea de generación de video de personajes, primero el parámetro character_url debe incluir el enlace del video necesario para crear el personaje, ten en cuenta que en el video no debe aparecer ninguna persona real, de lo contrario fallará, así que puedes especificar el siguiente contenido:
  • character_url: enlace del video necesario para crear el personaje, ten en cuenta que en el video no debe aparecer ninguna persona real, de lo contrario fallará.
Un ejemplo de llenado es el siguiente:

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

El código correspondiente:
import requests

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

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

payload = {
    "size": "small",
    "duration": 10,
    "orientation": "landscape",
    "prompt": "gato corriendo en el río",
    "character_url": "https://cdn.acedata.cloud/pdidf5.mp4",
    "model": "sora-2",
    "character_end": 3,
    "character_start": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Al hacer clic en ejecutar, se puede observar que se obtiene un resultado de inmediato, como se muestra a continuación:
{
  "success": true,
  "task_id": "d9bf5461-29b5-47fd-be90-1fe9197df259",
  "trace_id": "b7992643-9207-40d6-956b-7577728acc67",
  "data": [
    {
      "id": "sora-2:task_01k8ykrztefavaypw6xanw305b",
      "video_url": "https://filesystem.site/cdn/20251101/bee4eeeb4c4660b46dac4548a1ffbc.mp4",
      "state": "succeeded"
    }
  ]
}
Se puede ver que el efecto generado es un video de personaje, el resultado es similar al anterior.

Callback asíncrono

Debido a que el tiempo de generación de la API de Sora Videos 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 que esta API también ofrece soporte para callbacks asíncronos. El flujo general es: cuando el cliente inicia la solicitud, se 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 esta manera el resultado de la tarea se puede asociar mediante el ID. A continuación, veamos un ejemplo para entender cómo operar específicamente. 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. Para facilitar la demostración, se utiliza un sitio web de muestra de Webhook público https://webhook.site/, al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen: Copia esta URL y se puede usar como Webhook, el ejemplo aquí es https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa. A continuación, podemos establecer el campo callback_url como la URL de Webhook anterior, al mismo tiempo que llenamos los parámetros correspondientes, el contenido específico es como se muestra en la imagen:

Al hacer clic en ejecutar, se puede observar que se obtiene un resultado de inmediato, como se muestra a continuación:
{
  "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea"
}
Después de un momento, podemos observar el resultado de la canción generada en https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa, como se muestra en la imagen: El contenido es el siguiente:
```json
{
    "success": true,
    "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
    "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
    "data": [
        {
            "id": "sora-2:task_01k777hjrbfrgs2060q5zvf2a5",
            "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777hjrbfrgs2060q5zvf2a5%2Ftask_01k777hjrbfrgs2060q5zvf2a5_genid_b8e2e5d1-a579-49ca-a21c-cb3869685cce_25_10_10_14_15_147334%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A38%3A49Z&se=2025-10-16T13%3A38%3A49Z&sks=b&skt=2025-10-10T12%3A38%3A49Z&ske=2025-10-16T13%3A38%3A49Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=p4aMqXqkP%2FI1IhOVGCB9JL8vUUvfNBBF12ESpKhKXOk%3D&az=oaivgprodscus",
            "state": "succeeded"
        }
    ]
}
Se puede ver que en el resultado hay un campo task_id, los otros campos son similares a los anteriores, y 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 correspondiente y la información. 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

{
  "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 comprendido cómo utilizar la API de Generación de Videos Sora, que puede generar videos a través de palabras clave de entrada y imágenes de referencia. 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.