https://ytsave.appساخت دانلود ها با YTSave
یک URL رسانه عمومی را حل کنید، یک فرمت دقیق را انتخاب کنید، یک کار غیرهمزمان ایجاد کنید و نتیجه امضا شده را به کاربر خود تحویل دهید.همان خط لوله تولید محدود شده وب سایت YTSave را قدرت می دهد.
شروع سریع
YTSave میزبان API را با شناسایی ابتدای اعتبارات فعال شده توسط پشتیبانی اداره می کند.این با یک نقطه پایانی مستاجر اختصاص داده شده دنبال می شود و یک مسیر تماس فقط سرور را در نظر می گیرد.
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"}'برای توضیح ایمنی اعتبارنامه، YTSave ذخیرهسازی مخفی سمت سرور را از عدم جاسازی بسته کلاینت جدا میکند. یک رکورد شواهد هیچ لاگ یا مخزن عمومی را جایگاه خاصی نمیدهد.
حل یک پیوند
YTSave با شناسایی اول تشخیص منبع، عملیات Resolve را مدیریت می کند.این با فرمت ها از یک URL ارسال شده پیروی می کند و هیچ خروجی اختراع شده ای را در نظر نمی گیرد.
/v1/resolveدامنه: حل| فیلد | نوع | لازم است | شرح |
|---|---|---|---|
url | نشانی وب HTTPS | بله | صفحه رسانه های عمومی یا مجاز برای تجزیه و تحلیل. |
tenant | رشته | نه | دامنه مستاجر اختصاص داده شده.معمولا حذف می شود. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}برای توضیح شناسه فرمت، YTSave مقدار بازگردانده شده را بدون تغییر از دسترسی هر لینک جدا میکند. یک رکورد شواهد هیچ برچسب کیفیت حدسی را جایگاه خاصی نمیدهد.
ایجاد و پیگیری یک کار دانلود
برای ایجاد کار، YTSave با آماده سازی غیرهمزمان شروع می شود.سجل اثبات آن آن را با یک درخواست HTTP کوتاه جفت می کند و با اجرای کارگر محدود شده به پایان می رسد.
/v1/jobsحوزه: مشاغل| فیلد | نوع | لازم است | شرح |
|---|---|---|---|
url | نشانی وب HTTPS | بله | همان منبع نرمال شده ارائه شده برای حل. |
format_id | رشته | بله | یک شناسه دقیق از پاسخ حل. |
tenant | رشته | نه | دامنه مستاجر اختصاص داده شده.معمولا حذف می شود. |
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} با همان کلید| وضعیت | معنی | عمل مشتری |
|---|---|---|
queued | پذیرفته شده در صف محدود شده | دوباره با عقب نشینی نظرسنجی کنید. |
extracting | بازسازی متادیتا یا مسیر منبع | به نظر سنجی ادامه دهید. |
processing | دانلود کردن، ریماکس کردن یا ادغام کردن | نمایش پیشرفت سرور |
ready | دانلود امضا شده در دسترس است. | آدرس را برای کاربر ارسال کنید. |
failed | خطای ساختاری ترمینال | خوانده شده error_code.فقط در صورت توصیه دوباره سعی کنید |
expired | خروجی موقت حذف شد. | ایجاد یک شغل جدید |
curl https://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave باعث می شود که Job polling به راحتی اسکن شود.صفحه با یک ثانیه انتظار اولیه شروع می شود ، به backoff محدود حرکت می کند و به وضوح تحویل موقت امضا شده را بیان می کند.
خطاهای قابل پیش بینی
برای قرارداد خطا، YTSave یک پاکت غیر 2xx را قبل از یک شناسه درخواست پشتیبانی بررسی می کند.این رکورد شواهد همچنین مدیریت قابل پیش بینی مشتری را روشن می کند.
{
"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": "…"
}| انتقال ابرمتن | معنی معمول | کنش |
|---|---|---|
| 400 | URL نامعتبر، بدنه یا فرمت در دسترس نیست. | درخواست را اصلاح کنید.برای فرمت ها دوباره حل کنید. |
| 401 | کلید گمشده، نامعتبر، منقضی شده یا با دامنه اشتباه. | اعتبار جانبی سرور را بررسی کنید. |
| 403 | مستاجر یا منبع سیاست درخواست را رد کرد. | از سیاست دور نشوید با پشتیبانی تماس بگیرید |
| 404 | شغل نامعلوم یا منقضی شده | در صورت لزوم یک شغل جدید ایجاد کنید. |
| 429 | درخواست یا حد فعال-کار رسیده است. | افتخار retry_after_seconds. |
| 503 | صف / ظرفیت یا بالادست به طور موقت در دسترس نیست. | دوباره با عقب نشینی نمایی و جیتر سعی کنید. |
قرارداد عملیاتی
YTSave با هر تایید یک سهمیه عملیاتی را برای حفظ مصرف کننده API و خدمات رسانه های بالادستی صادر می کند.
- از منطق برنامه idempotent استفاده کنید و هرگز کارهای تکراری را برای همان کلیک کاربر شروع نکنید.
- حافظه نهان به طور خلاصه فراداده را حل می کند، اما همیشه با URL های دانلود امضا شده به عنوان انقضا رفتار می کند.
- استفاده از پسانداز نمایی محدود شده با جیتر برای
429,503و خطاهای قابل بازنگری - فقط رسانه های عمومی یا رسانه هایی را که مجاز به دسترسی به آنها هستید پردازش کنید. DRM و کنترل های دسترسی دور زده نمی شوند.
- شناسه های درخواست و شناسه های کار را در لاگ های عملیاتی خصوصی نگه دارید. URL های ارسال شده را بدون نیاز به آن لاگ نکنید.
YTSave دسترسی Schema را با شناسایی ابتدایی فعال سازی قبل از کاوش مدیریت می کند.این با احراز هویت اختصاص داده شده دنبال می شود و اشکال درخواست مستند را در نظر می گیرد. مرجع OpenAPI
درخواست کلید API خود را
مصرفکننده API، برآورد درخواست ماهانه و الزامات پلتفرم پشتیبانی شده آن را مستندسازی کنید. YTSave بررسی میکند که آیا حل، ارسال کار یا هر دو موجه هستند قبل از صدور کلید یکبار قابل مشاهده.
درخواست دسترسی API کلیدها محدوده مستاجر، قابل لغو و از طریق فرم تماس صادر می شوند.اسکریپت های ناشناس نمی توانند کار دانلودر را اجرا کنند.