WAPI Weydub

Panduan API

Panduan cepat

Panduan memulai cepat ini mengirimkan tugas Weydub untuk menghapus teks dari video dan melakukan polling hingga hasilnya siap. Panduan ini sengaja dibuat ringkas agar pengembang manusia atau alat pemrograman AI dapat menyalinnya ke dalam skrip backend dan memverifikasi kredensial dengan cepat.

Prasyarat

  • Akun Weydub. Pengguna yang telah masuk dapat mengaktifkan akses API secara gratis melalui Akun Saya.
  • AppKey dan AppSecret.
  • URL video yang dapat diakses secara publik. Format yang didukung mencakup mp4, avi, mov, mkv, mpg, m3u8, dan m4v.

Variabel Lingkungan yang Direkomendasikan

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

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

Langkah Berikutnya

  • Tambahkan callback URL saat Anda memerlukan penanganan asinkron berstandar produksi.
  • Segera simpan URL media yang dikembalikan; aset yang dihasilkan mengikuti kebijakan retensi platform.
  • Gunakan uid jika aplikasi Anda perlu memisahkan ruang kerja berdasarkan pelanggan atau tenant.
  • Jalankan Skenario demo sebelum memproses media pelanggan.

Untuk Alat Pemrograman AI

Instruksikan asisten untuk:

  • Baca Autentikasi dan penandatanganan sebelum mengedit kode.
  • Simpan kredensial dalam WEYDUB_APP_KEY dan WEYDUB_APP_SECRET.
  • Buat klien khusus backend; jangan panggil Weydub dari kode browser dengan AppSecret.
  • Tandatangani isi JSON ringkas yang persis sama dengan yang dikirim.
  • Tambahkan mode dry-run yang mencetak endpoint dan payload tanpa mencetak informasi rahasia.