# 快速入門

本快速入門會提交一項 Weydub 影片文字移除任務，並持續輪詢，直到結果準備就緒。此範例刻意保持精簡，方便人類開發人員或 AI 程式設計工具將其複製到後端指令碼中，並快速驗證憑證。

## 先決條件

- 一個 Weydub 帳戶。已登入的使用者可從「我的帳戶」免費開通 API 存取權。
- `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)
```

## 後續步驟

- 需要正式環境等級的非同步處理時，請新增 `callback` URL。
- 請儘快儲存回傳的媒體 URL；產生的資產遵循平台的保留政策。
- 如果您的應用程式需要依客戶或租戶區隔工作區，請使用 `uid`。
- 請先執行[示範情境](./demo-scenarios.md)，再處理客戶媒體。

## 適用於 AI 程式設計工具

請指示助理：

- 編輯程式碼前，請先閱讀[身分驗證與簽署](./auth-and-signing.md)。
- 將憑證保存在 `WEYDUB_APP_KEY` 和 `WEYDUB_APP_SECRET` 中。
- 建置僅供後端使用的用戶端；請勿在瀏覽器端程式碼中使用 `AppSecret` 呼叫 Weydub。
- 對實際送出的精簡 JSON 主體原樣進行簽署。
- 新增試執行模式，在不印出機密資訊的情況下，印出端點與酬載。
