WAPI de Weydub

Guía de la API

Inicio rápido

Este inicio rápido envía una tarea de eliminación de texto de un video de Weydub y consulta periódicamente hasta que haya un resultado disponible. Está diseñado para ser lo bastante breve como para que un desarrollador humano o una herramienta de programación con IA pueda copiarlo en un script de backend y verificar rápidamente las credenciales.

Requisitos previos

  • Una cuenta de Weydub. Los usuarios que hayan iniciado sesión pueden habilitar el acceso a la API de forma gratuita desde Mi cuenta.
  • AppKey y AppSecret.
  • Una URL de video accesible públicamente. Los formatos compatibles incluyen mp4, avi, mov, mkv, mpg, m3u8 y m4v.

Variables de entorno recomendadas

bash
export WEYDUB_APP_KEY="your_app_key"
export WEYDUB_APP_SECRET="your_app_secret"

Ejemplo en Python

python
import hashlib
import json
import os
import time

import requests

APP_KEY = os.environ["WEYDUB_APP_KEY"]
APP_SECRET = os.environ["WEYDUB_APP_SECRET"]
BASE_URL = "https://api.zhaoli.com"


def api_post(path: str, payload: dict) -> dict:
    body = json.dumps(payload, ensure_ascii=False, separators=(",", ":"))
    body_md5 = hashlib.md5(body.encode("utf-8")).hexdigest()
    app_sign = hashlib.md5((body_md5 + APP_SECRET).encode("utf-8")).hexdigest()
    headers = {
        "Content-Type": "application/json",
        "AppKey": APP_KEY,
        "AppSign": app_sign,
    }
    response = requests.post(f"{BASE_URL}{path}", headers=headers, data=body, timeout=30)
    response.raise_for_status()
    return response.json()


create_res = api_post(
    "/v-w-c/gateway/ve/work/free",
    {
        "urls": ["https://example.com/demo.mp4"],
        "needChineseOcclude": 1,
        "videoInpaintLang": "all",
    },
)

work_id = create_res["body"]["dataList"][0]["id"]
print("Created work:", work_id)

while True:
    status_res = api_post("/v-w-c/gateway/ve/work/status", {"idWorks": [work_id]})
    item = status_res["body"]["content"][0]
    process_status = item["processStatus"]

    if process_status == 1:
        print("Done:", item.get("videoUrl"))
        break
    if process_status > 1:
        raise RuntimeError(item.get("errorDetail") or "Task failed")

    print("Processing...")
    time.sleep(10)

Próximos pasos

  • Añade una URL de callback cuando necesites un manejo asíncrono preparado para producción.
  • Guarda rápidamente las URL de los archivos multimedia devueltos; los recursos generados siguen la política de retención de la plataforma.
  • Usa uid si tu aplicación necesita separar espacios de trabajo por cliente o tenant.
  • Ejecuta los escenarios de demostración antes de procesar contenido de clientes.

Para herramientas de programación con IA

Indica al asistente que:

  • Lea Autenticación y firma antes de editar código.
  • Mantenga las credenciales en WEYDUB_APP_KEY y WEYDUB_APP_SECRET.
  • Cree un cliente solo para backend; no llame a Weydub desde código del navegador con AppSecret.
  • Firme exactamente el cuerpo JSON compacto que se envía.
  • Añada un modo de prueba que muestre el endpoint y la carga útil sin mostrar secretos.