Diese Referenz bietet Entwicklern und Automatisierungsagenten eine zentrale, kompakte Anlaufstelle für die Endpunkte der Weydub API, Zugriffsprüfungen, Anfragestruktur, asynchrones Verhalten, Abrechnungs- und Aufbewahrungsregeln sowie Hinweise zur Fehlerbehebung.
Grundlagen zu Anfragen
| Element | Wert |
|---|---|
| Basis-URL | https://api.zhaoli.com |
| Protokoll | HTTPS |
| Methode | POST für die dokumentierten API-Aufrufe |
| Kodierung | UTF-8 |
| Inhaltstyp | application/json |
| Authentifizierung | Die Header AppKey und AppSign, außer bei Endpunkten, die ausdrücklich als nicht signiert gekennzeichnet sind |
Einige Bezeichnungen aus der Legacy-Infrastruktur können weiterhin in öffentlichen Demo-Assets oder älteren Kontopfaden erscheinen. Betrachten Sie diese Dokumentation zu Weydub API als die aktuell maßgebliche produktseitige Vertragsgrundlage.
Vor dem Aufruf
| Prüfung | Was zu prüfen ist | Warum dies wichtig ist |
|---|---|---|
| Zugriff auf API | Mit Ihrem angemeldeten Konto bei Weydub können Sie den Zugriff auf API kostenlos freischalten; prüfen Sie bei Bedarf die workflowspezifischen Berechtigungen. | Für einige Aufgabenfamilien, insbesondere Bildübersetzung und Synchronisation mit hoher Emotionalität, kann eine kontospezifische Freischaltung erforderlich sein. |
| Zugangsdaten | Sie verfügen über AppKey und AppSecret, die als geheime Werte im Backend gespeichert sind. | AppSecret darf niemals in Frontend-Code, öffentlichen Repositorys, Protokollen, Screenshots oder Prompts erscheinen. |
| Medien-URLs | Quelldateien sind während des Verarbeitungszeitraums öffentlich erreichbar und stabil verfügbar. | Worker von Weydub müssen die Quellmedien vor der Verarbeitung herunterladen. |
| Callback-URL | Callbacks im Produktivbetrieb geben HTTP 200 sowie einen nicht leeren Body erst nach dauerhafter Speicherung zurück. | Asynchrone Jobs können abgeschlossen werden, nachdem die ursprüngliche Anfrage bereits beantwortet wurde. |
| Ergebnisspeicherung | Ihr Dienst speichert Arbeits-IDs, Aufgaben-IDs, Status, Ergebnis-URLs und Fehler. | Generierte Assets können einer Aufbewahrungsrichtlinie unterliegen; sichern Sie daher dauerhafte Referenzen zeitnah. |
Authentifizierung
Für die meisten Anfragen werden folgende Header verwendet:
Content-Type: application/json
AppKey: $WEYDUB_APP_KEY
AppSign: md5(md5(request_body) + $WEYDUB_APP_SECRET)Signieren Sie exakt den kompakten JSON-Body, der gesendet wird. Lesen Sie Authentifizierung und Signierung, bevor Sie Signaturfehler untersuchen.
Ausnahme ohne Signatur:
POST /v-w-c/enum/query2Der Enum-Abfrageendpunkt wird für dynamische Sprach- und Statuslisten verwendet und erfordert keine Signatur.
Endpunktübersicht
| Methode | Pfad | Kategorie | Zweck | Zugriffshinweise |
|---|---|---|---|---|
POST | /v-w-c/gateway/ve/work/free | Video | Die meisten Videoaufgaben erstellen: Untertitel- und Textentfernung, Videoübersetzung, OCR-Untertitelextraktion, ASR-Extraktion und das Rendern von Untertiteln. | Grundlegender API-Zugriff erforderlich. |
POST | /v-w-c/gateway/ve/work/status | Video | Status und Ergebnisfelder von Videoaufgaben anhand von Work-IDs abfragen. | Nach der Aufgabenerstellung oder als Callback-Fallback verwenden. |
POST | /v-w-c/gateway/ve/work/list | Video | Historische Videoaufgaben abfragen. | Für interne Dashboards und den Abgleich nützlich. |
POST | /v-w-c/gateway/ve/work/video/inpaint/redo | Video | Textentfernung/Inpainting mit angepassten Masken erneut ausführen. | Erfordert einen vorhandenen Work- oder Aufgabenkontext. |
POST | /v-w-c/gateway/ve/work/translationPro/redo | Video | Übersetzung/Synchronisation mit angepassten Untertiteln, Timing oder Stimmeinstellungen erneut ausführen. | Erfordert den Kontext einer bestehenden Übersetzungsaufgabe. |
POST | /v-w-c/gateway/ve/work/voice/incorporate | Video | Aufgaben zum Klonen hochemotionaler Stimmen und zur Synchronisation erstellen. | Prüfen Sie die Kontofreischaltung, bevor Sie Produktivdatenverkehr aufschalten. |
POST | /v-w-c/gateway/ve/image/translate | Bild | Eine Aufgabe zur Entfernung von Text aus Bildern oder zur Bildübersetzung erstellen. | Nach dem kostenlosen API-Zugriff ist möglicherweise eine Freischaltung für Bild-Workflows erforderlich. |
POST | /v-w-c/gateway/ve/image/translate/redo | Bild | Eine Bildaufgabe nach Bearbeitung der Text-/Stilmetadaten des Ergebnisses neu generieren. | Erfordert eine vorhandene Bildaufgaben-ID und das Ergebnis-JSON. |
POST | /v-w-c/ve/image/translate/task/launch | Bild (Legacy/Web) | Eine einzelne Bildaufgabe in älteren Konto- oder Web-Workflows erstellen. | Nur verwenden, wenn dies für das Konto bestätigt wurde. |
POST | /v-w-c/ve/image/translate/task/launch2 | Bild (Legacy/Web) | Eine Batch-Bildaufgabe in älteren Konto- oder Web-Workflows erstellen. | Batch-Limits und Callback-Richtlinie bestätigen. |
POST | /v-w-c/ve/image/translate/task/query | Bild (Legacy/Web) | Eine einzelne Bildaufgabe in älteren Konto- oder Web-Workflows abfragen. | Vor dem Lesen der Ausgaben wiederholt abfragen, bis ein Endstatus erreicht ist. |
POST | /v-w-c/enum/query2 | Hilfsfunktion | Dynamische Enums wie Statuswerte und Sprachlisten abfragen. | Keine Signatur erforderlich. |
Videoaufgabe erstellen
POST /v-w-c/gateway/ve/work/freeHäufige Workflows mit diesem Endpunkt:
| Workflow | Erforderliches Signal | Einstiegsseite |
|---|---|---|
| Entfernung von Untertiteln/Texten | needChineseOcclude: 1, 2 oder 3; Advanced Lite/Pro über extraOptions.extra_inpaint_config | Entfernung von Untertiteln und Text aus Videos |
| Videoübersetzung/Synchronisation | needWanyin: 1, sourceLang, lang, wyTaskType | Videoübersetzung |
| Übersetzung von eingeblendetem Text | needChineseOcclude: 11, sourceLang, lang, videoInpaintLang | Videoübersetzung |
| OCR-Untertitelextraktion | needChineseOcclude: 14, videoInpaintMasks, videoInpaintLang | Untertitelextraktion |
| ASR-Untertitelextraktion | needWanyin: 1, wyTaskType: "ONLY_ASR", wyNeedText: 0 | Untertitelextraktion |
Minimalanfrage:
{
"urls": ["https://example.com/demo.mp4"],
"needChineseOcclude": 1,
"videoInpaintLang": "all",
"callback": "https://your-domain.example/webhooks/weydub"
}Typische Felder der Erstellungsantwort:
| Feld | Bedeutung |
|---|---|
idProject | Batch-/Projekt-ID. |
dataList[].id | Arbeits-ID für Statusabfragen und die Callback-Zuordnung. |
dataList[].url | Für die Verarbeitung akzeptierte Quell-URL. |
Videostatus abfragen
POST /v-w-c/gateway/ve/work/status{
"idWorks": [488026661]
}Statuswerte:
processStatus | Bedeutung | Clientverhalten |
|---|---|---|
< 1 | Wird verarbeitet. | Später erneut abfragen oder auf den Callback warten. |
1 | Erfolgreich. | Ergebnis-URLs auslesen und dauerhaft speichern. |
> 1 | Fehlgeschlagen. | errorDetail anzeigen. Für fehlgeschlagene Aufgaben werden keine Credits abgezogen. |
Erfolgreiche Videoaufgaben können videoUrl, coverUrl, srcSrtUrl, tgtSrtUrl, sourceVideoUrl, ttsMetaResult, wyVoiceParam und Aufgabenmetadaten enthalten.
Bildaufgaben
Aktueller öffentlicher Endpunkt zum Erstellen:
POST /v-w-c/gateway/ve/image/translateEndpunkt für die erneute Verarbeitung:
POST /v-w-c/gateway/ve/image/translate/redoAnfrage zur Bildübersetzung:
{
"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"
}Anfrage zur Entfernung von Bildtext:
{
"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"
}Lesen Sie Bildübersetzung, bevor Sie Bildaufgaben implementieren, da downloadInfo, downloadInfos und bei erneuter Verarbeitung result ihr jeweils dokumentiertes Zeichenfolgenformat beibehalten müssen.
Enum-Abfrage
POST /v-w-c/enum/query2Für diesen Endpunkt ist AppSign nicht erforderlich.
{
"text": "Lang"
}Gängige Enum-Namen:
text | Zweck |
|---|---|
ProcessStatus | Statuscodes für Videoaufgaben. |
ImageTaskStatus | Statuscodes für Bildaufgaben. |
sourceLang | Liste der Ausgangssprachen für Videoübersetzungen. |
Lang | Liste der Zielsprachen für Videoübersetzungen. |
musicRegion | Liste der Smart-Music-Regionen, sofern unterstützt. |
Abrechnung, Grenzwerte und Aufbewahrung
| Thema | Regel |
|---|---|
| Videodauer | Die derzeitige feste Obergrenze beträgt 15 Minuten pro Videodatei. Teilen Sie längere Medien in Segmente von weniger als 15 Minuten auf, beispielsweise 14:59, um Probleme durch die Rundung der Dauer zu vermeiden. |
| Videogröße | Die derzeitige feste Obergrenze beträgt 1000 MB pro Videodatei. Komprimieren Sie zu große Dateien vor der Übermittlung. |
| Bildgrenzwerte | Maximal 2000*2000 px, maximal 50 MB, unterstützte Formate: png, jpeg, jpg, bmp, webp; Bild-URLs dürfen keine chinesischen Zeichen enthalten. |
| Abrechnungseinheit | Video-Workflows werden in Einheiten von 30 Sekunden abgerechnet. Ein Video mit einer Dauer von weniger als 30 Sekunden wird mit 30 Sekunden angesetzt. |
| Kombinierte Dienste | Bei der Kombination von Diensten wie Textentfernung und Sprachübersetzung können sich die Kosten summieren. |
| Fehlgeschlagene Aufgaben | Endgültig fehlgeschlagene Aufgaben (processStatus > 1) ziehen keine Credits ab. |
| Aufbewahrung | Für von API generierte Daten gelten die Web-Aufbewahrungsregeln von Weydub. Standardmäßig werden Quelldateien und gerenderte Ausgaben der letzten 30 Tage aufbewahrt. Laden Sie wichtige Assets nach dem Callback herunter und speichern Sie sie. |
| CRF | Der standardmäßige Video-CRF-Wert beträgt 17 und ist für die meisten Formen der Verbreitung visuell verlustfrei. Niedrigere Werte wie 15 oder 16 sind möglicherweise über extraOptions.write_options verfügbar und können zusätzliche Bandbreiten- und Speichergebühren verursachen. |
Callback-Zusammenfassung
Übergeben Sie bei unterstützten Erstellungsanfragen eine callback-URL. Weydub sendet das abgeschlossene Arbeitselement direkt an Ihren Server, ohne den äußeren code- / msg- / body-Wrapper, der bei Polling-Antworten verwendet wird.
Regeln für die Callback-Verarbeitung:
- Verifizieren Sie
Callback-Signmithilfe des unveränderten Bodys der Callback-Anfrage und IhresAppSecret. - Geben Sie HTTP 200 zusammen mit einem beliebigen nicht leeren Body erst zurück, nachdem die dauerhafte Speicherung erfolgreich war.
- Stellen Sie anhand der Work-/Task-ID sicher, dass Handler idempotent sind.
- Bei fehlgeschlagenen Callbacks für Aufgaben, die innerhalb der letzten 24 Stunden erstellt wurden, erfolgt etwa alle 30 Minuten ein erneuter Zustellversuch.
- Wenn eine erneute Ausführung Video- oder Bildinhalte ändert, kann sich die Ausgabe-URL ändern; speichern Sie die neueste Ergebnis-URL.
Weitere Einzelheiten zu Callbacks finden Sie unter Asynchrones Aufgabenmodell.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| Signaturfehler | Die Body-Bytes wurden nach dem Signieren geändert, oder es wurde lesbar formatiertes JSON signiert, aber kompaktes JSON gesendet. | Protokollieren Sie einen nicht geheimen Body-Hash und vergleichen Sie die Codepfade für Signierung und Versand. |
| Aufgabe erstellt, aber kein Ergebnis | Die asynchrone Verarbeitung läuft noch. | Fragen Sie /v-w-c/gateway/ve/work/status per Polling ab oder warten Sie auf den Callback. |
| Ausgabe-URL fehlt | Falscher Workflow-Modus oder die Aufgabe hat noch keinen Endstatus erreicht. | Prüfen Sie, ob processStatus === 1 gilt, und untersuchen Sie die workflowspezifischen Ausgabefelder. |
| Callback erscheint nicht in Ihrer App | Der Handler hat vor der dauerhaften Speicherung eine Antwort zurückgegeben, die Signaturprüfung ist fehlgeschlagen oder die Work-ID stimmte nicht überein. | Speichern Sie die unveränderte Callback-Nutzlast, vergleichen Sie Callback-Sign und gestalten Sie Aktualisierungen idempotent. |
| Endpunkt nicht verfügbar | Die Kontoberechtigung ist nicht aktiviert. | Prüfen Sie den API-Zugriff für die jeweilige Aufgabenfamilie. |
| Fehler wegen Überschreitung der Video-Höchstgrenze | Das Video ist länger als 15 Minuten oder größer als 1000 MB. | Teilen Sie das Video vor dem Übermitteln in Segmente auf oder komprimieren Sie es. |
| Fehler wegen Überschreitung des Bildlimits | Das Bild überschreitet 2000*2000 px und 50 MB, wird nicht unterstützt oder URL enthält chinesische Zeichen. | Größe ändern, erneut komprimieren, URL umbenennen/kodieren und erneut versuchen. |
Agentenvertrag
Automatisierungsagenten sollten:
- Laden Sie llms.txt und Weydub API Skill.
- Verwenden Sie Demoszenarien vor Kundenmedien.
- Bewahren Sie Zugangsdaten in Umgebungsvariablen oder einem Secret-Manager auf.
- Speichern Sie IDs dauerhaft, bevor Sie den Benutzern den Erfolg melden.
- Modellieren Sie Jobs als
submitted -> processing -> succeeded | failed | timed_out. - Legen Sie
AppSecretniemals offen und erfinden Sie keine freigeschalteten Endpunkte.