Cette référence offre aux développeurs et aux agents d’automatisation un emplacement unique et compact où trouver les points de terminaison de l’API Weydub, les contrôles d’accès, la structure des requêtes, le comportement asynchrone, les règles de facturation et de conservation, ainsi que les signaux de dépannage.
Principes de base des requêtes
| Élément | Valeur |
|---|---|
| URL de base | https://api.zhaoli.com |
| Protocole | HTTPS |
| Méthode | POST pour les appels API documentés |
| Encodage | UTF-8 |
| Type de contenu | application/json |
| Authentification | En-têtes AppKey et AppSign, sauf pour les endpoints explicitement marqués comme non signés |
Certains noms d’infrastructure hérités peuvent encore apparaître dans des ressources de démonstration publiques ou d’anciens chemins de compte. Considérez cette documentation de l’API Weydub comme le contrat actuel de référence pour le produit.
Avant l’appel
| Vérification | Éléments à confirmer | Pourquoi c’est important |
|---|---|---|
| Accès API | Votre compte Weydub connecté peut bénéficier de l’accès API gratuit ; confirmez les droits spécifiques au workflow lorsque nécessaire. | Certaines familles de tâches, notamment la traduction d’images et le doublage à forte intensité émotionnelle, peuvent être provisionnées par compte. |
| Identifiants | Vous disposez de AppKey et AppSecret, stockés comme secrets côté backend. | AppSecret ne doit jamais apparaître dans du code front-end, des dépôts publics, des journaux, des captures d’écran ou des invites. |
| URL des médias | Les fichiers source sont accessibles publiquement et restent disponibles pendant la fenêtre de traitement. | Les workers Weydub doivent télécharger les médias source avant le traitement. |
| URL de callback | Les callbacks de production renvoient HTTP 200 ainsi qu’un corps non vide uniquement après un stockage durable. | Les tâches asynchrones peuvent se terminer après le retour de la requête d’origine. |
| Stockage des résultats | Votre service stocke les identifiants de travail, les identifiants de tâche, le statut, les URL de résultats et les erreurs. | Les ressources générées peuvent être soumises à une politique de conservation ; copiez donc rapidement les références durables. |
Authentification
La plupart des requêtes utilisent des en-têtes :
Content-Type: application/json
AppKey: $WEYDUB_APP_KEY
AppSign: md5(md5(request_body) + $WEYDUB_APP_SECRET)Signez exactement le corps JSON compact qui sera envoyé. Consultez Authentification et signature avant de diagnostiquer les échecs de signature.
Exception non signée :
POST /v-w-c/enum/query2L’endpoint de requête des énumérations est utilisé pour les listes dynamiques de langues et de statuts et ne nécessite pas de signature.
Index des endpoints
| Méthode | Chemin | Famille | Fonction | Remarques sur l’accès |
|---|---|---|---|---|
POST | /v-w-c/gateway/ve/work/free | Vidéo | Créer la plupart des tâches vidéo : suppression de sous-titres/texte, traduction vidéo, extraction de sous-titres OCR, extraction ASR et rendu des sous-titres. | Accès API principal requis. |
POST | /v-w-c/gateway/ve/work/status | Vidéo | Interroger le statut des tâches vidéo et les champs de résultat à partir des identifiants de travail. | À utiliser après la création de la tâche ou comme solution de repli du callback. |
POST | /v-w-c/gateway/ve/work/list | Vidéo | Interroger l’historique des tâches vidéo. | Utile pour les tableaux de bord internes et le rapprochement. |
POST | /v-w-c/gateway/ve/work/video/inpaint/redo | Vidéo | Refaire la suppression de texte/l’inpainting avec des masques ajustés. | Nécessite un contexte de travail/tâche existant. |
POST | /v-w-c/gateway/ve/work/translationPro/redo | Vidéo | Refaire la traduction/le doublage avec des sous-titres, un minutage ou des paramètres vocaux ajustés. | Nécessite le contexte d’une tâche de traduction existante. |
POST | /v-w-c/gateway/ve/work/voice/incorporate | Vidéo | Créer des tâches de clonage vocal et de doublage à forte intensité émotionnelle. | Confirmez les droits du compte avant de connecter le trafic de production. |
POST | /v-w-c/gateway/ve/image/translate | Image | Créer une tâche de suppression de texte dans une image ou de traduction d’image. | Un droit associé au workflow d’image peut être requis après l’accès API gratuit. |
POST | /v-w-c/gateway/ve/image/translate/redo | Image | Régénérer une tâche d’image après modification des métadonnées de texte/style du résultat. | Nécessite ID de tâche d’image existante et JSON de résultat. |
POST | /v-w-c/ve/image/translate/task/launch | Image héritée/web | Créer une tâche d’image unique dans d’anciens comptes ou workflows web. | À utiliser uniquement après confirmation pour le compte concerné. |
POST | /v-w-c/ve/image/translate/task/launch2 | Image héritée/web | Créer une tâche d’image par lot dans d’anciens comptes ou workflows web. | Confirmez les limites de lot et la politique de callback. |
POST | /v-w-c/ve/image/translate/task/query | Image héritée/web | Interroger une tâche d’image dans d’anciens comptes ou workflows web. | Effectuez des interrogations jusqu’à l’obtention d’un statut terminal avant de lire les sorties. |
POST | /v-w-c/enum/query2 | Utilitaire | Interroger les énumérations dynamiques telles que les statuts et les listes de langues. | Aucune signature requise. |
Créer une tâche vidéo
POST /v-w-c/gateway/ve/work/freeWorkflows courants utilisant cet endpoint :
| Workflow | Signal requis | Page de démarrage |
|---|---|---|
| Suppression des sous-titres/du texte | needChineseOcclude: 1, 2 ou 3 ; Advanced Lite/Pro via extraOptions.extra_inpaint_config | Suppression des sous-titres et du texte vidéo |
| Traduction/doublage vidéo | needWanyin: 1, sourceLang, lang, wyTaskType | Traduction vidéo |
| Traduction du texte à l’écran | needChineseOcclude: 11, sourceLang, lang, videoInpaintLang | Traduction vidéo |
| Extraction des sous-titres OCR | needChineseOcclude: 14, videoInpaintMasks, videoInpaintLang | Extraction des sous-titres |
| Extraction des sous-titres ASR | needWanyin: 1, wyTaskType: "ONLY_ASR", wyNeedText: 0 | Extraction des sous-titres |
Requête minimale :
{
"urls": ["https://example.com/demo.mp4"],
"needChineseOcclude": 1,
"videoInpaintLang": "all",
"callback": "https://your-domain.example/webhooks/weydub"
}Champs généralement présents dans la réponse de création :
| Champ | Signification |
|---|---|
idProject | ID du lot/projet. |
dataList[].id | ID de travail pour l’interrogation de l’état et la mise en correspondance des callbacks. |
dataList[].url | URL source acceptée pour le traitement. |
Interroger l’état d’une vidéo
POST /v-w-c/gateway/ve/work/status{
"idWorks": [488026661]
}Valeurs d’état :
processStatus | Signification | Comportement du client |
|---|---|---|
< 1 | En cours de traitement. | Interrogez ultérieurement ou attendez le callback. |
1 | Réussite. | Lisez les URL des résultats et conservez-les. |
> 1 | Échec. | Présentez errorDetail. Les tâches ayant échoué ne déduisent aucun crédit. |
Les tâches vidéo réussies peuvent inclure videoUrl, coverUrl, srcSrtUrl, tgtSrtUrl, sourceVideoUrl, ttsMetaResult, wyVoiceParam ainsi que les métadonnées de la tâche.
Tâches d’image
Point de terminaison public actuel pour la création :
POST /v-w-c/gateway/ve/image/translatePoint de terminaison pour recommencer :
POST /v-w-c/gateway/ve/image/translate/redoRequête de traduction d’image :
{
"srcLang": "en",
"tgtLang": "es",
"translateOn": 1,
"synthesisOn": 1,
"commodityFilterOn": 0,
"downloadInfo": "{\"url\":\"https://example.com/product.png\",\"fileName\":\"product.png\",\"id\":12345,\"materialName\":\"product.png\"}",
"app": "WD"
}Requête de suppression de texte d’une image :
{
"srcLang": "en",
"tgtLang": "en",
"translateOn": 0,
"synthesisOn": 1,
"commodityFilterOn": 0,
"downloadInfo": "{\"url\":\"https://example.com/banner.png\",\"fileName\":\"banner.png\",\"id\":12346,\"materialName\":\"banner.png\"}",
"app": "WD"
}Lisez Traduction d’image avant d’implémenter des tâches d’image, car downloadInfo, downloadInfos et result pour recommencer doivent conserver la structure de chaîne documentée.
Interrogation des énumérations
POST /v-w-c/enum/query2Ce point de terminaison ne nécessite pas AppSign.
{
"text": "Lang"
}Noms d’énumération courants :
text | Fonction |
|---|---|
ProcessStatus | Codes d’état des tâches vidéo. |
ImageTaskStatus | Codes d’état des tâches d’image. |
sourceLang | Liste des langues sources pour la traduction vidéo. |
Lang | Liste des langues cibles pour la traduction vidéo. |
musicRegion | Liste des régions de musique intelligente lorsqu’elles sont prises en charge. |
Facturation, limites et conservation
| Sujet | Règle |
|---|---|
| Durée de la vidéo | La limite stricte actuelle est de 15 minutes par fichier vidéo. Divisez les fichiers multimédias plus longs en segments de moins de 15 minutes, par exemple de 14:59, afin d’éviter les problèmes d’arrondi de la durée. |
| Taille de la vidéo | La limite stricte actuelle est de 1000 MB par fichier vidéo. Compressez les fichiers trop volumineux avant leur envoi. |
| Limites applicables aux images | 2000*2000 px maximum, 50 MB maximum, formats pris en charge : png, jpeg, jpg, bmp, webp ; les URL d’image ne doivent pas contenir de caractères chinois. |
| Unité de facturation | Les flux de traitement vidéo sont facturés par unités de 30 secondes. Une vidéo de moins de 30 secondes est comptabilisée comme 30 secondes. |
| Services combinés | La combinaison de services tels que la suppression de texte et la traduction vocale peut entraîner un cumul des coûts. |
| Tâches échouées | Les tâches définitivement échouées (processStatus > 1) ne déduisent aucun crédit. |
| Conservation | Les données générées par l’API sont soumises aux règles de conservation du site web Weydub. Par défaut, les fichiers source et les sorties rendues des 30 derniers jours sont conservés. Téléchargez et stockez les ressources importantes après le callback. |
| CRF | La CRF vidéo par défaut est 17, avec une qualité visuellement sans perte pour la plupart des usages. Des valeurs inférieures, telles que 15 ou 16, peuvent être disponibles via extraOptions.write_options et entraîner des frais supplémentaires de bande passante et de stockage. |
Récapitulatif des callbacks
Incluez un callback URL dans les requêtes de création lorsque cette option est prise en charge. Weydub envoie directement l’élément de travail terminé à votre serveur, sans l’enveloppe externe code / msg / body utilisée par les réponses d’interrogation.
Règles de gestion des callbacks :
- Vérifiez
Callback-Signà l’aide du corps brut de la requête de callback et de votreAppSecret. - Renvoyez HTTP 200 ainsi qu’un corps non vide uniquement une fois le stockage durable effectué avec succès.
- Rendez les gestionnaires idempotents en utilisant l’ID du travail ou de la tâche.
- Les callbacks échoués pour les tâches créées au cours des dernières 24 heures sont retentés environ toutes les 30 minutes.
- Si une nouvelle exécution modifie le contenu vidéo ou image, l’URL de sortie peut changer ; stockez l’URL du résultat le plus récent.
Consultez Modèle de tâche asynchrone pour plus de détails sur les callbacks.
Dépannage
| Symptôme | Cause probable | Vérification |
|---|---|---|
| Erreur de signature | Les octets du corps ont été modifiés après la signature, ou un JSON mis en forme a été signé alors qu’un JSON compact a été envoyé. | Consignez un hachage non secret du corps et comparez les chemins de code de signature et d’envoi. |
| Tâche créée, mais aucun résultat | Le traitement asynchrone est toujours en cours. | Interrogez /v-w-c/gateway/ve/work/status ou attendez le callback. |
| URL de sortie manquant | Mode de workflow incorrect ou tâche non terminée. | Confirmez processStatus === 1 et examinez les champs de sortie propres au workflow. |
| Le callback n’est pas répercuté dans votre application | Le gestionnaire a renvoyé une réponse avant le stockage durable, la vérification de signature a échoué ou le travail ne correspondait pas à ID. | Stockez la charge utile brute du callback, comparez Callback-Sign et rendez les mises à jour idempotentes. |
| Endpoint indisponible | Le droit d’accès du compte n’est pas activé. | Confirmez l’accès API pour la famille de tâches concernée. |
| Erreur de limite stricte pour la vidéo | La vidéo dure plus de 15 minutes ou dépasse 1000 MB. | Segmentez ou compressez la vidéo avant de l’envoyer. |
| Erreur de limite stricte pour l’image | L’image dépasse 2000*2000 px, dépasse 50 MB, n’est pas prise en charge ou si l’URL contient des caractères chinois. | Redimensionnez, recompressez, renommez ou encodez l’URL, puis réessayez. |
Contrat de l’agent
Les agents d’automatisation doivent :
- Charger llms.txt et la compétence API de Weydub.
- Utiliser les scénarios de démonstration avant les médias des clients.
- Conserver les identifiants dans des variables d’environnement ou dans un gestionnaire de secrets.
- Enregistrer les identifiants avant de signaler la réussite aux utilisateurs.
- Modéliser les tâches comme
submitted -> processing -> succeeded | failed | timed_out. - Ne jamais exposer
AppSecretni inventer d’endpoints activés.