https://dwyt.app使用 DWYT 建立下載
DWYT 的程式碼範例記錄未來的請求序列。生產呼叫保持關閉,直到視頻客戶端被審查並啟用操作員分配的憑證。
DwytFlowHTTPS 上的 JSON非同步工作範圍限定的憑證
01
快速開始
DWYT 的格式映射審查支援 API 主機的啟用憑證。它接著顯示分配的租戶端點,且不會遮蔽僅限伺服器的呼叫路徑。
X-API-Key: pending_activation_…DwytFlowv1# Available only after support activation
export DWYT_FLOW_SECRET="issued-after-review"
curl -X POST https://dwyt.app/v1/resolve \
-H "X-API-Key: $DWYT_FLOW_SECRET" \
-H "Content-Type: application/json" \
-d '{"public_media":"https://www.youtube.com/watch?v=VIDEO_ID"}'為了憑證安全,DWYT 以伺服器端秘密存儲開始。其格式映射將此與不嵌入客戶端套件配對,並以無公開日誌或存儲庫結束。
02
解析連結
DWYT 的格式映射審查解析操作的來源檢測。它接著顯示來自一個提交 URL 的格式,且不隱藏未創建的輸出。
發佈
/v1/resolve範圍:解析| 欄位 | 類型 | 必填 | 描述 |
|---|---|---|---|
public_media | HTTPS 網址 | 是 | 公開或授權的媒體頁面進行分析。 |
tenant | 字串 | 否 | 指定的租戶網域。通常省略。 |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}對於格式識別碼,DWYT 以返回值不變開始。其格式映射將其與每連結可用性配對,並以無猜測品質標籤結束。
03
建立並追蹤下載工作
對於工作創建,DWYT 會先檢查非同步準備,然後才進行短 HTTP 請求。此格式映射也明確表示有界工作執行。
發佈
/v1/jobs範圍:工作| 欄位 | 類型 | 必填 | 描述 |
|---|---|---|---|
public_media | HTTPS 網址 | 是 | 提交相同的標準化來源以進行解析。 |
rendition_key | 字串 | 是 | 解析回應中的精確 ID。 |
tenant | 字串 | 否 | 指定的租戶網域。通常省略。 |
curl -X POST https://dwyt.app/v1/jobs \
-H "X-API-Key: $DWYT_FLOW_SECRET" \
-H "Content-Type: application/json" \
-d '{"public_media":"https://www.youtube.com/watch?v=VIDEO_ID","rendition_key":"18"}'flow_id.GET /v1/jobs/{flow_id} 使用相同的金鑰。| 狀態 | 意義 | 客戶操作 |
|---|---|---|
queued | 已加入有界佇列。 | 再次投票並退避。 |
extracting | 正在刷新來源元資料或路由。 | 繼續輪詢。 |
processing | 下載、重封裝或合併。 | 顯示伺服器進度。 |
ready | 已提供簽署下載。 | 將 URL 傳送給使用者。 |
failed | 終端結構化錯誤。 | 閱讀 error_code. 僅在建議時重試。 |
expired | 暫時輸出已被移除。 | 建立新工作。 |
curl https://dwyt.app/v1/jobs/FLOW_ID \
-H "X-API-Key: $DWYT_FLOW_SECRET"工作輪詢在 DWYT 上以一秒的初始等待開始。此格式映射隨後呈現有限的退避。最終事實是臨時簽名交付。
04
可預測的錯誤
DWYT 透過先識別一個非 2xx 信封來處理錯誤合約。接著附上支援請求 ID,並保持可預測的客戶端處理。
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"category": "rate_limited",
"message": "Too many requests. Please try again shortly.",
"retryable": true,
"details": {"retry_after_seconds": 20}
},
"request_id": "…"
}| HTTP | 典型含義 | 動作 |
|---|---|---|
| 400 | 無效的 URL、內容或格式不可用。 | 修正請求。重新解析格式。 |
| 401 | 缺少、無效、過期或範圍錯誤的金鑰。 | 檢查伺服器端憑證。 |
| 403 | 租戶或來源政策拒絕了請求。 | 請勿繞過政策。請聯絡支援。 |
| 404 | 未知或已過期的工作。 | 如適用,請建立一個新工作。 |
| 429 | 已達請求或進行中工作限制。 | 榮譽 retry_after_seconds. |
| 503 | 佇列/容量或上游暫時無法使用。 | 使用指數退避和抖動重試。 |
05
操作合約
DWYT 在選擇配額前會審查整合情況,以保護視頻客戶端和上游服務。
- 使用冪等的應用程式邏輯,切勿為同一使用者點擊啟動重複的工作。
- 暫時快取解析的元資料,但始終將簽署的下載 URL 視為會過期。
- 對…使用帶抖動的有界指數退避
429,503以及可重試的錯誤。 - 僅處理公開媒體或您有權訪問的媒體。不會繞過 DRM 和存取控制。
- 在私人操作日誌中保留請求 ID 和工作 ID。請勿不必要地記錄提交的 URL。
DWYT 的格式映射在探索 Schema 存取前審核啟用。它接著顯示已指派的驗證,且不遮蔽已記錄的請求形狀。
透過客服啟用
說明請求背後的應用程式、其每月流量估計以及將使用的視頻服務。DWYT 會審核這些細節,分配必要的 API 權限,並不保留任何可恢復的金鑰值。
請求啟用 金鑰是租戶範圍內的,可撤銷,並通過聯絡表單發行。匿名腳本無法執行下載器工作。