WWeydub API

คู่มือ API

เริ่มต้นใช้งานด่วน

คู่มือเริ่มต้นใช้งานอย่างรวดเร็วนี้จะส่งงานลบข้อความออกจากวิดีโอไปยัง Weydub และตรวจสอบสถานะเป็นระยะจนกว่าผลลัพธ์จะพร้อม คู่มือนี้ตั้งใจให้กระชับ เพื่อให้นักพัฒนาหรือเครื่องมือเขียนโค้ด AI สามารถคัดลอกไปใช้ในสคริปต์แบ็กเอนด์และตรวจสอบข้อมูลรับรองได้อย่างรวดเร็ว

ข้อกำหนดเบื้องต้น

  • บัญชี Weydub ผู้ใช้ที่ลงชื่อเข้าใช้แล้วสามารถเปิดใช้งานการเข้าถึง API ได้ฟรีจาก My Account
  • AppKey และ AppSecret
  • URL ของวิดีโอที่เข้าถึงได้แบบสาธารณะ รูปแบบที่รองรับ ได้แก่ mp4, avi, mov, mkv, mpg, m3u8 และ m4v

ตัวแปรสภาพแวดล้อมที่แนะนำ

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

ตัวอย่าง 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)

ขั้นตอนต่อไป

  • เพิ่ม URL สำหรับ callback เมื่อต้องการการจัดการแบบอะซิงโครนัสระดับใช้งานจริง
  • จัดเก็บ URL ของสื่อที่ส่งคืนโดยเร็ว สื่อที่สร้างขึ้นอยู่ภายใต้นโยบายการเก็บรักษาของแพลตฟอร์ม
  • ใช้ uid หากแอปของคุณจำเป็นต้องแยกพื้นที่ทำงานตามลูกค้าหรือผู้เช่าแต่ละราย
  • เรียกใช้ สถานการณ์สาธิต ก่อนดำเนินการกับสื่อของลูกค้า

สำหรับเครื่องมือเขียนโค้ด AI

บอกผู้ช่วยให้ดำเนินการดังนี้:

  • อ่าน การยืนยันตัวตนและการลงนาม ก่อนแก้ไขโค้ด
  • เก็บข้อมูลรับรองไว้ใน WEYDUB_APP_KEY และ WEYDUB_APP_SECRET
  • สร้างไคลเอนต์ที่ใช้เฉพาะฝั่งแบ็กเอนด์ ห้ามเรียก Weydub จากโค้ดในเบราว์เซอร์โดยใช้ AppSecret
  • ลงนามเนื้อหา JSON แบบกะทัดรัดชุดเดียวกับที่ส่งจริงทุกประการ
  • เพิ่มโหมด dry-run ที่แสดง endpoint และ payload โดยไม่แสดงข้อมูลลับ