К содержанию
200 поинтов при регистрацииБез карты

API для скачивания видео с YouTube

Готовая инфраструктура вместо собственного парка серверов. Один запрос — список форматов, второй — скачивание, в ответе file_id, который ваш Telegram-бот сразу отправляет пользователю. Оплата за каждый выполненный запрос, без абонентской платы и без минимального контракта.

Почему не yt-dlp на своём сервере

Скачать одно видео с YouTube несложно. Сложно делать это тысячи раз в день и не останавливаться: YouTube регулярно меняет отдачу, начинает требовать подтверждение «вы не робот», блокирует адреса дата-центров. Приходится следить за этим каждый день, обновлять загрузчик после каждого изменения на стороне площадки и разбирать ночные падения.

Отдельная история — нагрузка. Пользователи приходят волнами, а сервер под пик простаивает в остальное время. Плюс трафик: каждое видео нужно сначала скачать к себе, потом отдать дальше.

Мы живём с этим уже несколько лет: через API проходит 4,4 млн скачиваний в месяц, к нему подключено 56 ботов. Загрузку мы доводим до конца сами — в ответе приходит либо готовый файл, либо понятная причина отказа, и за ошибку поинты не списываются. Всё, что уже скачивали раньше, отдаётся из кэша.

Что умеет API

Все методы — обычные GET-запросы с токеном в заголовке. Ответы в JSON, субтитры — текстом.

  • Данные о видео: название, описание, длительность, канал, счётчики просмотров и лайков, превью.
  • Список доступных форматов с отметкой, какие уже лежат в кэше; для остальных — размер файла.
  • Скачивание в выбранном качестве до 1080p включительно.
  • Выбор языка озвучки для роликов с несколькими аудиодорожками.
  • Субтитры: список дорожек и текст в формате txt или srt.
  • Поиск по YouTube — видео или каналы.
  • Данные о канале и лента его последних видео.

Как выглядит интеграция

Токен передаётся в заголовке X-Token. Если к аккаунту подключено несколько ботов, добавляется заголовок X-Bot-Id — он говорит, какому из ботов доставить файл.

Скачивание асинхронное. Первый запрос GET /video/{id}/download/{format} ставит задачу в очередь и возвращает status: queued. Дальше вы повторяете тот же запрос раз в пять-семь секунд, пока не получите status: ready вместе с file_id. Если файл уже в кэше, file_id приходит в первом же ответе.

Полученный file_id ваш бот передаёт в sendVideo или sendAudio — файл уходит пользователю напрямую из Telegram, минуя ваш сервер. Примеры на curl и Python собраны в быстром старте.

Сколько это стоит

Расчёт ведётся в поинтах: 1 000 поинтов равны 1 $. Скачивание стоит 10 поинтов, то есть 0,01 $, а в пересчёте на тысячу — 10 $. Повторная отдача ролика, который ваш бот уже получал, — 2 поинта, 2 $ за тысячу. Данные о видео — 1 поинт, поиск — 5.

Списание происходит только за успешные ответы. Недоступное видео, ошибка параметра или сбой на нашей стороне баланс не трогают, а запросы статуса загрузки бесплатны.

Пополнение начинается с 5 $. При регистрации на балансе уже лежат 200 поинтов — хватит на 20 скачиваний, чтобы собрать интеграцию и проверить её на реальных роликах. Карта для этого не нужна.

Общий кэш: выигрыш во времени

В кэше около 95 миллионов готовых файлов, и он общий: его пополняет каждое скачивание — ваше или чужое. Популярный ролик почти наверняка уже там, поэтому тянуть его с YouTube заново не нужно и file_id приходит в первом же ответе.

На цену это не влияет: ролик, которого ваш бот ещё не получал, стоит полную цену, даже если он лежит в кэше. Причина в том, что file_id в Telegram привязан к боту, и файл всё равно нужно передать вашему. Льготные 2 поинта списываются за повторную отдачу ролика, который ваш бот уже получал.

Ответ на запрос форматов помечает лежащие в кэше варианты флагом cached, поэтому ваш бот может заранее показать пользователю, что придёт сразу, а что придётся подождать. Предсказывать по этому флагу списание нельзя: он про скорость.

Ограничения, о которых стоит знать заранее

Поддерживается только YouTube. Максимальное качество — 1080p. В цепочке доставки нужен Telegram-бот: файл приходит как file_id, а не как прямая ссылка. Автономный режим без Telegram и другие площадки мы открываем по запросу — сначала измеряем спрос, потом строим.

Вопросы по теме

Нужен ли Telegram-бот, если мне нужен просто файл?

Пока да: результатом скачивания является file_id для вашего бота. Прямая ссылка на файл или выгрузка в ваше S3-хранилище — в списке возможностей по запросу; оставить заявку можно в кабинете.

Сколько стоит тысяча скачиваний?

10 $ за тысячу загрузок до 720p, 12 $ за 1080p и 2 $ за тысячу повторных отдач роликов, которые ваш бот уже получал. Реальная сумма окажется между этими значениями.

Есть ли лимит на число запросов?

Тарифных лимитов нет — вы ограничены балансом. Единственное ограничение техническое: статус одной загрузки не стоит опрашивать чаще, чем раз в несколько секунд, иначе API вернёт подсказку о рекомендуемой паузе.

Как быстро приходит файл?

Из кэша — в первом ответе. Свежая загрузка зависит от длительности ролика и выбранного качества; опрашивайте статус раз в пять-семь секунд и показывайте пользователю, что задача в работе.

Начните с бесплатного баланса

200 поинтов при регистрации — около 20 свежих скачиваний, карта не нужна. Пополнение от 5 $. Вход через Telegram.