https://dwyt.appUnduhan build dengan DWYT
Contoh kode DWYT mendokumentasikan urutan permintaan masa depan. Panggilan produksi tetap tertutup sampai klien video ditinjau dan kredensial yang ditugaskan operator diaktifkan.
Awal yang cepat
Peta format DWYT meninjau dukungan diaktifkan kredensial untuk host API. Ini menunjukkan titik akhir tenant yang ditugaskan berikutnya dan tidak menutupi jalur panggilan hanya server.
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"}'Untuk keamanan Kredensial, DWYT dimulai dengan penyimpanan rahasia sisi server. Peta formatnya memadukan itu dengan tidak ada penyematan bundel klien dan berakhir tanpa log publik atau repositori.
Menyelesaikan sebuah tautan
Peta format DWYT meninjau deteksi sumber untuk operasi Resolve. Ini menunjukkan format dari satu URL yang diajukan berikutnya dan tidak menutupi tidak ada keluaran yang ditemukan.
/v1/resolveScope: menyelesaikan| Medan | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
public_media | URL HTTPS | Ya | Halaman media publik atau resmi untuk dianalisis. |
tenant | string | Tidak. | Domain penyewa yang ditetapkan. Biasanya dihilangkan. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Untuk pengenal Format, DWYT dimulai dengan nilai yang dikembalikan tidak berubah. Peta formatnya berpasangan dengan itu dengan ketersediaan per tautan dan berakhir dengan tidak ada label kualitas yang ditebak.
Buat dan ikuti pekerjaan unduhan
Untuk pembuatan Job, DWYT memeriksa persiapan asinkron sebelum permintaan HTTP singkat. Peta format ini juga membuat eksekusi pekerja terbatas jelas.
/v1/jobsLingkup: pekerjaan| Medan | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
public_media | URL HTTPS | Ya | Sumber yang dinormalisasi sama diajukan untuk diselesaikan. |
rendition_key | string | Ya | ID tepat dari respons penyelesaian. |
tenant | string | Tidak. | Domain penyewa yang ditetapkan. Biasanya dihilangkan. |
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} dengan kunci yang sama.| Status | Artinya | Tindakan klien |
|---|---|---|
queued | Diterima ke antrian terbatas. | Poll lagi dengan backoff. |
extracting | Menyegarkan metadata sumber atau rute. | Lanjutkan polling. |
processing | Mengunduh, meremux, atau menggabungkan. | Tunjukkan kemajuan server. |
ready | Unduh yang ditandatangani tersedia. | Kirim URL ke pengguna. |
failed | Kesalahan struktur terminal. | Baca error_code. Coba ulang hanya ketika dianjurkan. |
expired | Keluaran sementara dihapus. | Buat pekerjaan baru. |
curl https://dwyt.app/v1/jobs/FLOW_ID \
-H "X-API-Key: $DWYT_FLOW_SECRET"Pemungutan suara pekerjaan dimulai dengan menunggu awal satu detik pada DWYT. Peta format ini kemudian menyajikan backoff yang dicap. Fakta terakhir adalah pengiriman sementara yang ditandatangani.
Kesalahan yang dapat diprediksi
DWYT menangani kontrak Error dengan pertama mengidentifikasi satu amplop non-2xx. Ini mengikuti dengan ID permintaan dukungan dan menjaga penanganan klien yang dapat diprediksi dalam pandangan.
{
"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 | Arti yang khas | Action |
|---|---|---|
| 400 | URL tidak valid, isi atau format tidak tersedia. | Perbaiki permintaan. Selesaikan lagi untuk format. |
| 401 | Kunci hilang, tidak valid, kedaluwarsa, atau cakupan salah. | Periksa kredensial sisi server. |
| 403 | Kebijakan penyewa atau sumber menolak permintaan. | Jangan melewati kebijakan. Hubungi dukungan. |
| 404 | Pekerjaan yang tidak diketahui atau kadaluarsa. | Buat pekerjaan baru jika sesuai. |
| 429 | Batas permintaan atau pekerjaan aktif telah tercapai. | Kehormatan retry_after_seconds. |
| 503 | Antrian/kapasitas atau hulu sementara tidak tersedia. | Coba lagi dengan penundaan eksponensial dan jitter. |
Kontrak operasional
DWYT meninjau integrasi sebelum memilih kuota yang melindungi klien video dan layanan upstream.
- Gunakan logika aplikasi idempotent dan jangan pernah memulai pekerjaan duplikat untuk klik pengguna yang sama.
- Cache menyelesaikan metadata secara singkat, tetapi selalu memperlakukan URL unduhan yang ditandatangani sebagai berakhir.
- Gunakan bounded exponential backoff dengan jitter untuk
429,503dan kesalahan yang dapat dicoba kembali. - Proses hanya media publik atau media yang Anda diizinkan untuk mengakses. DRM dan kontrol akses tidak dihindari.
- Simpan ID permintaan dan ID pekerjaan dalam log operasional pribadi. Jangan log URL yang diajukan tanpa perlu.
Peta format DWYT meninjau aktivasi sebelum eksplorasi untuk akses Schema. Ini menunjukkan otentikasi yang ditugaskan berikutnya dan tidak menutupi bentuk permintaan yang terdokumentasi.
Aktifkan melalui dukungan
Jelaskan aplikasi di balik permintaan, perkiraan lalu lintas bulanannya dan layanan video yang akan digunakan.DWYT meninjau rincian tersebut, menetapkan izin API yang diperlukan dan mempertahankan tidak ada nilai kunci yang dapat dipulihkan.
Minta aktivasi Kunci adalah tenant-scoped, dapat dicabut dan dikeluarkan melalui formulir Kontak. Skrip anonim tidak dapat menjalankan pekerjaan pengunduh.