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 URL | Так | Публічна або авторизована медіасторінка для аналізу. |
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 URL | Так | Той самий нормалізований джерело подано для вирішення. |
format_id | рядок | Так | Точний ідентифікатор із відповіді resolve. |
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 | Підписане завантаження доступне. | Надішліть URL користувачу. |
failed | Структурована помилка терміналу. | Читати error_code. Повторюйте лише за порадою. |
expired | Тимчасовий вивід було видалено. | Створити нове завдання. |
curl https://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave робить опитування завдань легким для сканування. Сторінка починається з початкового очікування в одну секунду, переходить до обмеженого відступу і чітко вказує тимчасову підписану доставку.
Передбачувані помилки
Для помилки контракту 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": "…"
}| HTTP | Типове значення | Екшн |
|---|---|---|
| 400 | Неправильна URL-адреса, тіло або недоступний формат. | Виправте запит. Повторіть спробу для форматів. |
| 401 | Відсутній, недійсний, прострочений або з ключем неправильного обсягу. | Перевірте облікові дані на стороні сервера. |
| 403 | Політика орендаря або джерела відхилила запит. | Не порушуйте політику. Зверніться до служби підтримки. |
| 404 | Невідома або прострочена задача. | Створіть нове завдання, якщо це доречно. |
| 429 | Досягнуто ліміт запитів або активних завдань. | Повага retry_after_seconds. |
| 503 | Черга/ємність або вхідні дані тимчасово недоступні. | Повторити з експоненційним збільшенням інтервалу та випадковим зсувом. |
Оперативний контракт
YTSave видає операційну квоту з кожним підтвердженням, щоб захистити користувача API та медіасервіси вгорі ланцюга.
- Використовуйте ідемпотентну логіку застосунку і ніколи не запускайте дублікати завдань для одного й того ж кліку користувача.
- Кешуйте метадані розв’язання коротко, але завжди вважайте підписані URL-адреси завантаження такими, що мають термін дії.
- Використовуйте обмежене експоненційне відновлення з джиттером для
429,503та помилки, які можна повторити. - Обробляйте лише публічні медіа або медіа, до яких ви маєте дозвіл на доступ. DRM та контролі доступу не обходяться.
- Зберігайте ідентифікатори запитів і ідентифікатори завдань у приватних операційних журналах. Не реєструйте надіслані URL-адреси без необхідності.
YTSave керує доступом до схеми, спочатку визначаючи активацію перед дослідженням. Потім відбувається призначена автентифікація, а форми запитів залишаються задокументованими у вигляді. Довідник OpenAPI
Запросити ваш API ключ
Документуйте споживача API, його місячну оцінку запитів і підтримувані вимоги платформи. YTSave перевіряє, чи виправдані розв’язання, подання завдання або обидва перед видачею одноразового видимого ключа.
Запитати доступ до API Ключі мають область дії орендаря, можуть бути відкликані та видаються через форму контакту. Анонімні скрипти не можуть виконувати роботу завантажувача.