WWeydub API

Guide API

Démarrage rapide

Ce guide de démarrage rapide soumet une tâche Weydub de suppression de texte dans une vidéo et effectue des vérifications répétées jusqu’à ce qu’un résultat soit disponible. Il est volontairement concis afin qu’un développeur humain ou un outil de programmation IA puisse le copier dans un script backend et vérifier rapidement ses identifiants.

Prérequis

  • Un compte Weydub. Les utilisateurs connectés peuvent activer gratuitement l’accès à l’API depuis la rubrique Mon compte.
  • AppKey et AppSecret.
  • Une URL de vidéo accessible publiquement. Les formats pris en charge incluent mp4, avi, mov, mkv, mpg, m3u8 et m4v.

Variables d’environnement recommandées

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

Exemple 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)

Étapes suivantes

  • Ajoutez un callback URL lorsque vous avez besoin d’une gestion asynchrone adaptée à la production.
  • Stockez rapidement les URL des contenus multimédias renvoyées ; les ressources générées sont soumises à la politique de conservation de la plateforme.
  • Utilisez uid si votre application doit séparer les espaces de travail par client ou locataire.
  • Exécutez les scénarios de démonstration avant d’utiliser des contenus multimédias de clients.

Pour les outils de programmation AI

Demandez à l’assistant de :

  • Lire Authentification et signature avant de modifier le code.
  • Conserver les identifiants dans WEYDUB_APP_KEY et WEYDUB_APP_SECRET.
  • Créer un client exclusivement backend ; ne pas appeler Weydub depuis du code exécuté dans le navigateur avec AppSecret.
  • Signer exactement le corps JSON compact envoyé.
  • Ajouter un mode de simulation qui affiche le point de terminaison et la charge utile sans afficher les secrets.