Wizstar

Wizstar Video API

Este documento está dirigido a desarrolladores que integran las capacidades de vídeo de Wizstar y abarca las API de Texto a vídeo, Imagen a vídeo, Traducción de vídeo, Sincronización labial, Imagen de producto a vídeo, Referencia de vídeo, Vídeo de humano digital, Consulta de avatares/voces, Consulta de tareas y más.

Todas las API Keys, los ID de recursos, la información de productos, los enlaces devueltos y otros datos similares de este documento son valores de ejemplo. Sustitúyelos por tus propios valores reales.

Instrucciones generales

Las siguientes convenciones se aplican a todas las API de este documento y no se repetirán en cada sección, salvo que se indique expresamente lo contrario.

Convenciones generales de las solicitudes

Elemento
Descripción
AutenticaciónTodas las API requieren una API Key en la cabecera de la solicitud, con el formato Authorization: Bearer <YOUR_API_KEY>
Formato de la solicitudLas API de envío de tareas usan application/json (POST); las API de consulta de tareas usan GET
Parámetros de archivoTodos los campos de tipo archivo aceptan una cadena asset_id (generada previamente por el servicio de subida de recursos), no una subida binaria directa
Notificación de callbackLas API de tipo tarea admiten un parámetro opcional callback_url; el callback se activará cuando la tarea llegue a su estado final

Estructura general de la respuesta

La generación de vídeo es asíncrona. La API de envío devuelve inmediatamente un task_id, y puedes obtener el resultado final mediante la API de consulta de tareas o esperando al callback. El flujo general es: API de envío → Devuelve task_id → Consulta periódica a la API de consulta de tareas o espera al callback → Obtención del resultado del vídeo. Se recomienda un intervalo de consulta de ≥3 segundos para evitar el límite de frecuencia. El tiempo máximo de espera de la generación es de 24 horas; las tareas que superen este límite se considerarán fallidas y se reembolsarán.

Respuesta de envío de tarea correcta (igual en todas las API de envío):

JSON
{
  "errno": 0,
  "message": "success",
  "logid": "xxx",
  "timestamp": 1717401600,
  "data": {
    "tasks": [
      {
        "task_id": "oat_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "status": "success",
        "points_consumed": 10,
        "queue_position": 3,
        "estimated_wait_seconds": 120
      }
    ]
  }
}
Campo
Descripción
errno0 indica éxito; para valores distintos de cero, consulta la sección Códigos de error
data[].task_idID de la tarea, con el prefijo oat_, que se usa en las consultas posteriores
data[].points_consumedCréditos (uso) consumidos en esta llamada, para la conciliación de la facturación
data[].queue_positionPosición actual en la cola
data[].estimated_wait_secondsTiempo de espera estimado en segundos

Enumeración de estados de la tarea:

Estado
Descripción
asset_checkingComprobación de control de riesgos del recurso en curso (sin cargo)
pendingRecurso listo, en cola a la espera de las condiciones de concurrencia/límite de frecuencia (sin cargo)
queuedCobrado, a la espera de la generación
generatingGenerando
completedTodo correcto
failedFallido (rechazo por control de riesgos / saldo insuficiente / fallo de generación)

Códigos de error comunes

Código
Significado
Solución de problemas
30400201Parámetro no válidoComprueba los valores enumerados, la longitud, el rango y los requisitos condicionales de los parámetros
30400202Se requiere un recursoFalta el asset_id obligatorio
30400203El tamaño del archivo supera el límiteEl archivo del recurso supera el tamaño máximo permitido
30400204Formato de archivo no compatibleEl formato del archivo del recurso no es compatible
30400301Créditos insuficientesSaldo de créditos insuficiente; recarga y vuelve a intentarlo
30400302Permisos insuficientes para esta funciónTu nivel de suscripción actual no da acceso a esta función
30400303Límite de frecuencia superadoSe ha alcanzado el límite de frecuencia; reduce la frecuencia de las solicitudes y vuelve a intentarlo
30400304Límite de tareas simultáneas superadoSe ha alcanzado el límite de tareas simultáneas; espera a que terminen las tareas en curso
30400401Tarea no encontradaEl task_id no existe o no tienes permiso de acceso
30400402Error al generar la tareaError al generar la tarea; vuelve a enviarla
30400601Contenido rechazado por el control de riesgosContenido rechazado por el control de riesgos
30400602El texto incluye contenido prohibidoEl texto contiene contenido prohibido
30400603El archivo incluye contenido prohibidoEl archivo contiene contenido prohibido
30400901Error interno del servidorError interno del servidor; vuelve a intentarlo más tarde o contacta con el soporte
20610101Error en los parámetros de la solicitud de archivoError en los parámetros de la solicitud de archivo
10100001Autenticación no válida o ausenteAutenticación no válida o inexistente
20610104Cuota de almacenamiento superadaCuota de almacenamiento insuficiente
20610103Formato de archivo no compatibleFormato de archivo no admitido
10110002Error interno del servidorError interno del servidor

Facturación y limitaciones generales

Elemento
Descripción
Modelo de facturaciónSe cobra en créditos por tarea o por duración; consulta las tarifas concretas en la página de facturación de la consola. El cargo se aplica cuando el envío se realiza correctamente (queued)
Reembolso por falloLos créditos se reembolsan automáticamente si falla la generación
Bloqueo por control de riesgos / saldoNo se cobra nada si el control de riesgos rechaza la tarea o si el saldo es insuficiente
Referencia de recursosPrimero debes subir los archivos al servicio de recursos de archivo para obtener un asset_id; este servicio solo acepta referencias
Reintento del callbackUna respuesta 2xx se considera correcta

I. Gestión de recursos de archivo

Las imágenes, los vídeos y los audios que se usan en la generación de vídeo deben subirse primero al servicio de recursos de archivo para obtener un file_id (que hace de asset_id en las API de vídeo); después, se hace referencia a los archivos mediante asset_id.

1. Subir archivo

  • URL: POST https://wizstar.ai/wizstar/openapi/common/files/upload
  • Autenticación: Authorization: Bearer <YOUR_API_KEY> (igual que en las API de vídeo)
  • Formato de la solicitud: multipart/form-data
Campo
Obligatorio
Tipo
Descripción
fileSífileArchivo que se va a subir.

Formatos admitidos:

  • Imagen: JPEG (.JPG/.JPEG), PNG
  • Vídeo: MP4, MOV
  • Audio: WAV, MP3

Lo anterior solo indica lo que admite la biblioteca de recursos; los requisitos reales dependen de las limitaciones de cada herramienta.

Respuesta de subida correcta:

JSON
{
  "errno": 0,
  "message": "success",
  "timestamp": 1782198346,
  "data": {
    "file_id": "2722637227394bc1b547bc4314777a25",
    "filename": "sample.jpeg",
    "content_type": "image/jpeg",
    "size_bytes": 205632,
    "status": 1,
    "expires_at": "2026-07-08T07:05:46Z"
  },
  "logid": "396982511",
  "lang": "en-US"
}

Límites de cuota:

Elemento
Límite
Máx. de archivos500
Capacidad total1 GB
Tamaño por archivo (imagen)20 MB
Tamaño por archivo (vídeo)200 MB
Tamaño por archivo (audio)200 MB
Validez del archivo15 días

Las cuotas anteriores pueden cambiar en cualquier momento, pero esto no afectará al periodo de validez de los archivos ya subidos, que se rige por el campo expires_at de la respuesta.

2. Consultar los metadatos de un archivo

  • URL: GET https://wizstar.ai/wizstar/openapi/common/files?file_id={file_id}
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

La estructura de la respuesta es la misma que la del campo data de la respuesta de subida correcta.

3. Listar los archivos del usuario

  • URL: GET https://wizstar.ai/wizstar/openapi/common/files
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>
Parámetro
Tipo
Obligatorio
Descripción
limitintegerNoNúmero máximo de elementos que se devuelven. Los valores superiores a 200 se reducen al valor predeterminado de 20. Rango válido: 1–200
cursorstringNoCursor de paginación, tomado del campo cursor de la respuesta de la página anterior
created_afterintegerNoLímite inferior de la fecha de creación (marca de tiempo Unix en milisegundos); 0 indica sin límite
created_beforeintegerNoLímite superior de la fecha de creación (marca de tiempo Unix en milisegundos); 0 indica sin límite

La lista se ordena por fecha de creación en orden descendente. Solo devuelve archivos del usuario actual con status=1 que no hayan caducado ni se hayan eliminado.

Estructura de la respuesta:

JSON
{
  "errno": 0,
  "message": "success",
  "timestamp": 1782198015,
  "data": {
    "items": [
      {
        "file_id": "645230c9acfc43c59c1f1cec2f8156a2",
        "filename": "sample.jpeg",
        "content_type": "image/jpeg",
        "size_bytes": 205632,
        "status": 1,
        "expires_at": "2026-07-08T06:49:41Z"
      }
    ],
    "limit": 5,
    "cursor": "1782198346251_27226372...",
    "has_more": true
  },
  "logid": "396982756",
  "lang": "en-US"
}
Campo
Descripción
itemsLista de archivos
limitLímite real de resultados aplicado por el servidor
cursorToken de cursor para la página siguiente; si está vacío, es la última página
has_moreIndica si hay más datos disponibles; false indica que es la última página

4. Eliminar archivo

  • URL: DELETE https://wizstar.ai/wizstar/openapi/common/files?file_id={file_id}
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

5. Notas sobre la gestión de recursos de archivo

  • file_id es una cadena hexadecimal de 32 caracteres sin guiones. Se pasa como asset_id en las API de vídeo posteriores.
  • No se puede acceder a los archivos caducados y hay que volver a subirlos. Al consultar o eliminar un archivo caducado se devuelve errno 10110002.
  • Usa errno como único criterio para saber si una solicitud se ha realizado correctamente. El código de estado HTTP siempre es 200.
  • No incluyas una barra final en la URL: Consultar (GET), Listar (GET) y Eliminar (DELETE) no llevan barra final; Subir (POST /upload) sí lleva barra final.

II. Texto a vídeo

1. Descripción general

Genera un vídeo a partir de una indicación de texto. Adecuado cuando no tienes recursos previos y el resultado depende únicamente de la creatividad. Introduce el texto y los parámetros de generación para obtener uno o varios vídeos.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/text-to-video
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
promptSístringIndicación de texto, ≤800 caracteres
modelSístringModelo de generación: seedance2.0 / seedance1.5 / kling
video_ratioSístringRelación de aspecto del vídeo: 9:16 / 16:9
video_durationSíintDuración del vídeo (segundos): 5 / 10
video_resolutionSístringResolución, p. ej. 720P
video_numSíintNúmero de vídeos que se generan: 1–4
callback_urlNostringURL de callback para cuando se complete la tarea

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta)

5. Ejemplo de código

cURL:

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/text-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "prompt": "Two puppies dancing on the grass, cinematic quality",
    "model": "seedance2.0",
    "video_ratio": "9:16",
    "video_duration": 5,
    "video_resolution": "720P",
    "video_num": 1
  }'

III. Imagen a vídeo

1. Descripción general

Usa una imagen como primer fotograma o referencia y la combina con una indicación de texto para generar un vídeo dinámico. Adecuado para dar vida a imágenes estáticas.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/image-to-video
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
image_asset_idSístringID del recurso de imagen, JPG/PNG, ≤10MB
promptSístringIndicación de texto, ≤800 caracteres
modelSístringModelo de generación: seedance2.0 / seedance1.5 / kling
video_ratioSístringRelación de aspecto del vídeo: 9:16 / 16:9
video_durationSíintDuración del vídeo (segundos): 5 / 10
video_resolutionSístringResolución: 720P
video_numSíintNúmero de vídeos que se generan: 1–4
callback_urlNostringURL de callback

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta).

5. Ejemplo de código

cURL:

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/image-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "image_asset_id": "<image_asset_id>",
    "prompt": "Camera slowly pulls back, clouds flowing in the sky, cinematic quality",
    "model": "seedance2.0",
    "video_ratio": "9:16",
    "video_duration": 5,
    "video_resolution": "720P",
    "video_num": 1
  }'

IV. Traducción de vídeo

1. Descripción general

Traduce un vídeo a un idioma de destino. Admite dos modos: lip_sync_audio (sincronización labial + doblaje) y audio_only (solo sustituye la pista de audio). Adecuado para localizar contenido en varios idiomas para mercados internacionales.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/video-translate
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
video_asset_idSístringID del recurso de vídeo, ≤200MB, ≤5min
source_langSístringIdioma de origen. Valores: auto / zh-CN / en-US
target_langSístringIdioma de destino. Valores: en-US / es-ES / zh-CN / pt-PT / id-ID / de-DE / fr-FR / th-TH / vi-VN / ja-JP / ko-KR / ar-SA
translation_modeSístringModo de traducción: lip_sync_audio / audio_only
callback_urlNostringURL de callback

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta).

5. Ejemplos de código

cURL (modo Lip Sync):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/video-translate' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "video_asset_id": "<video_asset_id>",
    "source_lang": "zh-CN",
    "target_lang": "en-US",
    "translation_mode": "lip_sync_audio"
  }'

cURL (modo solo audio):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/video-translate' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "video_asset_id": "<video_asset_id>",
    "source_lang": "zh-CN",
    "target_lang": "en-US",
    "translation_mode": "audio_only"
  }'

V. Sincronización labial

1. Descripción general

Hace que una persona de un vídeo o una imagen sincronice los labios con una locución. Como fuente de audio se admite audio subido o texto a voz (TTS). Admite 4 combinaciones: vídeo + audio subido, vídeo + TTS, imagen + audio subido, imagen + TTS.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/lip-sync
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
video_asset_idUno de los dosstringID del recurso de vídeo, ≤200MB, ≤5min (excluyente con image_asset_id)
image_asset_idUno de los dosstringID del recurso de imagen, JPG/PNG/WEBP, ≤10MB
audio_asset_idUno de los dosstringID del recurso de audio, MP3/WAV, ≥16kHz, ≤5min, ≤50MB (excluyente con script)
scriptUno de los dosstringTexto para TTS, ≤1000 caracteres
voice_idCondicionalstringObligatorio si usas script; ID de la voz
promptCondicionalstringObligatorio para la sincronización labial con imagen
video_ratioCondicionalstringRelación de aspecto del vídeo: 9:16 / 16:9. Obligatorio para la sincronización labial con imagen
video_resolutionCondicionalstringResolución: 720P. Obligatorio para la sincronización labial con imagen
callback_urlNostringURL de callback

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta).

5. Ejemplos de código

cURL (vídeo + audio subido):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/lip-sync' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "video_asset_id": "<video_asset_id>",
    "audio_asset_id": "<audio_asset_id>"
  }'

cURL (vídeo + audio TTS):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/lip-sync' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "video_asset_id": "<video_asset_id>",
    "script": "Hello everyone, welcome to our livestream.",
    "voice_id": "<voice_id>"
  }'

cURL (imagen + audio TTS):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/lip-sync' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "image_asset_id": "<image_asset_id>",
    "script": "Hello everyone, welcome to our livestream.",
    "voice_id": "<voice_id>",
    "prompt": "Generate a product introduction video based on the reference image",
    "video_ratio": "9:16",
    "video_resolution": "720P"
  }'

VI. Imagen de producto a vídeo

1. Descripción general

Genera vídeos cortos de marketing de producto o de compra a partir de la imagen principal del producto, las imágenes de detalle, las imágenes de escena y una indicación de texto.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/product-to-video
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
product_image_asset_idSístringID del recurso de la imagen principal del producto, JPG/PNG
detail_image_asset_idsNostring[]Array de ID de recursos de imágenes de detalle, máx. 2 imágenes
scene_image_asset_idsNostring[]Array de ID de recursos de imágenes de escena, máx. 2 imágenes
promptSístringIndicación de texto, ≤800 caracteres
modelSístringModelo de generación: kling
video_ratioSístringRelación de aspecto del vídeo: 9:16 / 16:9
video_durationSíintDuración del vídeo (segundos), valores: 5 / 10
video_resolutionSístringResolución: 720P
video_numSíintNúmero de vídeos que se generan: 1–4
callback_urlNostringURL de callback

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta).

5. Ejemplo de código

cURL:

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/product-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "product_image_asset_id": "<product_image_asset_id>",
    "detail_image_asset_ids": [],
    "scene_image_asset_ids": [],
    "prompt": "Show the product being used outdoors, highlighting portability",
    "model": "kling",
    "video_ratio": "9:16",
    "video_duration": 5,
    "video_resolution": "720P",
    "video_num": 1
  }'

VIII. Sincronización labial de imagen y vídeo

1. Descripción general

Indica una figura de humano digital y una voz, añade varios guiones y genera por lotes vídeos de humanos digitales hablando. Adecuado para producir varios vídeos hablados de una sola vez.

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/batch-broadcast
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
figure_idSístringID del humano digital
figure_sourceSíintOrigen de la figura (p. ej., 2 representa un tipo de origen concreto)
voice_idSístringID de la voz
scriptSístring[]Array de guiones, máx. 10 elementos, cada uno ≤1000 caracteres
speedNofloatVelocidad del habla: 0.5–2.0
pitchNointTono: 1–3
screen_typeSíintTipo de pantalla: 1 (vertical) / 2 (horizontal)
languageNostringIdioma: zh-CN / en-US / ja-JP / id-ID
video_resolutionNostringResolución: 1080P
callback_urlNostringURL de callback

4. Estructura de la respuesta

Devuelve la respuesta estándar de envío de tarea (consulta Instrucciones generales → Estructura general de la respuesta).

5. Ejemplo de código

cURL:

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/batch-broadcast' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{
    "figure_id": "<figure_id>",
    "figure_source": 2,
    "voice_id": "<voice_id>",
    "script": ["Hello everyone, welcome to our product showcase.", "Today we are introducing a brand new smart device."],
    "screen_type": 1,
    "language": "zh-CN"
  }'

IX. Lista de avatares

1. Descripción general

Consulta los avatares disponibles. Admite la galería pública de avatares (scope=public) y la galería privada del usuario (scope=private). Se puede filtrar por género y relación de aspecto (9:16 / 16:9).

2. Solicitud básica y autenticación

  • URL: POST https://wizstar.com/wizstar/openapi/video/figure/list
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud

Campo
Obligatorio
Tipo
Descripción
scopeSístringpublic (pública) / private (privada)
page_noNointNúmero de página
page_sizeNointElementos por página, 100 por defecto
genderNointGénero: 0 (sin definir), 1 (masculino), 2 (femenino)
screenNointPantalla: 1 (vertical), 2 (horizontal)
raceNointEtnia: 1 (caucásica), 2 (asiática oriental), 3 (asiática meridional), 4 (latina), 5 (de Oriente Medio), 6 (africana)
target_audienceNointEdad: 1 (joven), 2 (mediana edad), 3 (mayor)

4. Estructura de la respuesta

Devuelve una lista paginada de avatares:

JSON
{
  "errno": 0,
  "message": "success",
  "logid": "xxx",
  "timestamp": 1717401600,
  "data": {
    "count": 30,
    "list": [
      {
        "figure_id": 10086,
        "name": "Business Man",
        "gender": 1,
        "cover": "https://cdn.example.com/figure/cover_10086.jpg",
        "figure_source": 2,
        "screen": 1,
        "target_audience": 1,
        "race": 1,
        "status": 1
      },
      {
        "figure_id": 10087,
        "name": "Sweet Girl",
        "gender": 0,
        "cover": "https://cdn.example.com/figure/cover_10087.jpg",
        "figure_source": 2,
        "screen": 2,
        "target_audience": 0,
        "race": 0,
        "status": 1
      }
    ]
  }
}

5. Ejemplos de código

cURL (galería pública de avatares):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/figure/list' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{"scope":"public","page_no":1,"page_size":16}'

cURL (galería privada de avatares con filtros):

bash
curl -X POST 'https://wizstar.com/wizstar/openapi/video/figure/list' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -d '{"scope":"public","page_no":1,"page_size":16,"gender":2,"screen":1}'

XI. Consulta de tareas

1. Descripción general

Consulta el estado de la tarea y los resultados de la generación con el task_id que devuelve la API de envío. Todas las API de generación asíncrona usan este endpoint para obtener el vídeo final.

2. Solicitud básica y autenticación

  • URL: GET https://wizstar.com/wizstar/openapi/video/task
  • Autenticación: Authorization: Bearer <YOUR_API_KEY>

3. Parámetros de la solicitud (Query)

Campo
Obligatorio
Tipo
Valor predeterminado
Descripción
task_idSístring—ID de la tarea, con el prefijo oat_

4. Estructura de la respuesta

JSON
{
  "errno": 0,
  "message": "success",
  "logid": "<log_id>",
  "timestamp": 1781183414,
  "lang": "zh-CN",
  "data": {
    "task_id": "oat_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "status": "completed",
    "results": [
      {
        "video_url": "<video_url_without_watermark>",
        "watermark_video_url": "<video_url_with_watermark>",
        "cover_url": "<cover_image_url>",
        "watermark_cover_url": "<cover_image_url_with_watermark>",
        "duration": 5.04,
        "width": 720,
        "height": 1280
      }
    ],
    "error_code": "",
    "error_message": ""
  }
}
Campo
Descripción
statusEstado de la tarea; consulta Instrucciones generales → Enumeración de estados de la tarea
resultsArray de resultados generados, un vídeo por elemento
results[].video_urlURL del vídeo sin marca de agua
results[].durationDuración del vídeo (segundos)
error_code / error_messageInformación del error en caso de fallo

5. Ejemplo de código

cURL:

bash
curl -X GET 'https://wizstar.com/wizstar/openapi/video/task?task_id=oat_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

XII. Notificación de callback

Si indicas un callback_url al enviar una tarea, la plataforma enviará un callback mediante POST a esa URL cuando la tarea llegue a un estado final (todo correcto o algún fallo).

1. Activación y reintentos

  • Condición de activación: se activa una sola vez cuando todos los subvídeos de la tarea llegan a un estado final (no se activa por cada vídeo).
  • Todo correcto → status=completed; algún fallo → status=failed

2. Ejemplo de payload del callback

JSON
{
  "task_id": "oat_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "results": [
    {
      "video_url": "https://xxx.com/path/to/video.mp4",
      "watermark_video_url": "https://xxx.com/path/to/video_wm.mp4",
      "cover_url": "https://xxx.com/path/to/cover.jpg",
      "watermark_cover_url": "https://xxx.com/path/to/cover_wm.jpg",
      "duration": 15.5,
      "width": 1920,
      "height": 1080
    }
  ],
  "error_code": "",
  "error_message": ""
}

3. Notas para el receptor

  • El receptor del callback debe devolver un estado 2xx en un plazo de 10 segundos; de lo contrario, se considerará un fallo y se reintentará.
  • Se recomienda implementar la idempotencia según el task_id para evitar procesar duplicados por los reintentos.
  • El callback es una notificación de respaldo; aun así, se recomienda mantener la posibilidad de consultar el estado de forma activa.