https://ytsave.appBangun unduhan dengan YTSave
Selesaikan URL media publik, pilih format yang tepat, buat pekerjaan asinkron dan serahkan hasil yang ditandatangani ke pengguna Anda. Pipa produksi terbatas yang sama memasok daya situs web YTSave.
Awal yang cepat
YTSave menangani host API dengan pertama mengidentifikasi kredensial yang diaktifkan dukungan. Ia mengikuti dengan titik akhir tenant yang ditugaskan dan menjaga jalur panggilan hanya server dalam pandangan.
X-API-Key: ys_live_…YTSaveClientv1# Available only after support activation
export YTSAVE_API_KEY="issued-after-review"
curl -X POST https://ytsave.app/v1/resolve \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}'Untuk menjelaskan keamanan Credential, YTSave memisahkan penyimpanan rahasia sisi server dari tidak ada penempatan bundle klien. Sebuah catatan bukti memberikan tidak ada log publik atau repositori tempatnya sendiri.
Menyelesaikan sebuah tautan
YTSave menangani operasi Resolve dengan pertama-tama mengidentifikasi deteksi sumber. Ia mengikuti dengan format dari satu URL yang diajukan dan menyimpan tidak ada keluaran yang diciptakan dalam pandangan.
/v1/resolveScope: menyelesaikan| Medan | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
url | 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 menjelaskan Format identifikator, YTSave memisahkan nilai yang dikembalikan tidak berubah dari ketersediaan per-link. Sebuah catatan bukti memberikan tidak ada label kualitas tebak tempatnya sendiri.
Buat dan ikuti pekerjaan unduhan
Untuk pembuatan pekerjaan, YTSave dimulai dengan persiapan asinkron. Rekaman buktinya berpasangan dengan permintaan HTTP singkat dan berakhir dengan eksekusi pekerja terbatas.
/v1/jobsLingkup: pekerjaan| Medan | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
url | URL HTTPS | Ya | Sumber yang dinormalisasi sama diajukan untuk diselesaikan. |
format_id | string | Ya | ID tepat dari respons penyelesaian. |
tenant | string | Tidak. | Domain penyewa yang ditetapkan. Biasanya dihilangkan. |
curl -X POST https://ytsave.app/v1/jobs \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID","format_id":"18"}'job_id.GET /v1/jobs/{job_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://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave membuat polling Job mudah dipindai. Halaman dimulai dengan menunggu awal satu detik, pindah ke backoff yang dicap, dan dengan jelas menyatakan pengiriman sementara yang ditandatangani.
Kesalahan yang dapat diprediksi
Untuk kontrak Error, YTSave memeriksa satu amplop non-2xx sebelum sebuah ID permintaan dukungan. Catatan bukti ini juga membuat penanganan klien yang dapat diprediksi jelas.
{
"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
YTSave mengeluarkan kuota operasional dengan setiap persetujuan untuk melindungi konsumen API dan layanan media hulu.
- 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.
YTSave menangani akses Schema dengan pertama mengidentifikasi aktivasi sebelum eksplorasi. Ia mengikuti dengan otentikasi yang ditugaskan dan menjaga bentuk permintaan yang terdokumentasi dalam pandangan. Referensi OpenAPI
Minta kunci API Anda
Dokumentasikan konsumen API, perkiraan permintaan bulanan, dan persyaratan platform yang didukung. YTSave meninjau apakah penyelesaian, pengajuan pekerjaan, atau keduanya dibenarkan sebelum mengeluarkan kunci yang hanya terlihat sekali.
Minta akses API Kunci adalah tenant-scoped, dapat dicabut dan dikeluarkan melalui formulir Kontak. Skrip anonim tidak dapat menjalankan pekerjaan pengunduh.