Чем 1080p отличается от остальных форматов
В невысоких разрешениях YouTube обычно отдаёт готовый файл с картинкой и звуком вместе. В 1080p видео и аудио идут отдельными потоками, которые нужно скачать и склеить в один файл. Это дополнительная работа и заметно больший объём трафика, поэтому Full HD стоит немного дороже остальных форматов: 12 поинтов против 10.
Для вас разница остаётся внутри одного запроса: склейка и выбор дорожек происходят на нашей стороне, на выходе — готовый файл, который бот отправляет пользователю.
Как запросить 1080p
Сначала GET /video/{id}/formats. В ответе — объект с доступными форматами по ключам 240p, 360p, 480p, 720p, 1080p. У каждого есть флаг cached; размер файла возвращается у тех, которых в кэше нет. Если ключа 1080p нет, ролик недоступен в этом качестве: автор загрузил его в меньшем разрешении или файл превышает допустимый размер.
Затем GET /video/{id}/download/1080p. Для файла из кэша ответ содержит status: ready и file_id сразу. Если в кэше его нет — status: queued; повторяйте запрос раз в пять-семь секунд, пока не получите ready. Полученный file_id отправляется пользователю через sendVideo.
Язык озвучки
Многие ролики выходят с несколькими аудиодорожками — оригинал и переводы. В ответе на запрос форматов у таких видео есть поле voices: языки дорожек с отметкой, какие из них уже в кэше. Чтобы получить нужную озвучку, добавьте к запросу скачивания параметр lang, например lang=ru. Без параметра отдаётся дорожка по умолчанию.
Каждая комбинация качества и озвучки кэшируется отдельно: если ролик в 1080p с русской дорожкой уже кто-то запрашивал, он придёт в первом же ответе. Цена обычная, если ваш бот его ещё не получал.
Субтитры
GET /video/{id}/subtitles возвращает список доступных дорожек субтитров и ничего не стоит. Текст конкретной дорожки — GET /video/{id}/subtitles/{lang}, 1 поинт; параметр f выбирает формат: txt для чистого текста или srt с таймкодами, если нужно вшить субтитры в плеер.
Сколько стоит Full HD
1 000 поинтов равны 1 $. Загрузка в 1080p — 12 поинтов, то есть 0,01 $ за файл или 12 $ за тысячу. Повторная отдача — 2 поинта независимо от качества: повторно отданный 1080p стоит столько же, сколько 360p.
Пробного баланса в 200 поинтов хватает на 16 загрузок в Full HD или 100 повторных отдач. Пополнение — от 5 $, списания только за успешные ответы.
Кэш и популярные ролики
В кэше около 95 миллионов файлов — его наполняют все, кто работает через API. Каждая загрузка в 1080p, ваша или чужая, пополняет кэш: следующий запрос того же ролика в том же качестве не уходит на YouTube, а отдаётся сразу. Full HD собирается из двух дорожек, поэтому на нём эта разница во времени заметнее всего.
На цену кэш не влияет — она зависит от того, получал ли этот ролик ваш бот. Для сервисов, где пользователи просят одни и те же новые выпуски, это выгодно: первый запрос вашего бота идёт по полной цене, а каждый следующий запрос того же ролика в том же формате — за 2 поинта.
Вопросы по теме
Есть ли 1440p или 4K?
Нет. Максимальное качество — 1080p. Форматы выше в списке не появляются.
Почему у некоторых видео нет 1080p?
Либо автор загрузил ролик в меньшем разрешении, либо итоговый файл превышает допустимый размер. В обоих случаях ключ 1080p отсутствует в ответе /formats — ориентируйтесь на него, а не на настройки плеера YouTube.
Дороже ли повторная отдача 1080p?
Нет. Повторная отдача ролика, который ваш бот уже получал, стоит 2 поинта в любом качестве. Разница в цене есть только у загрузок роликов, которых у вашего бота ещё не было: 10 поинтов до 720p и 12 за 1080p.
Можно ли получить 1080p с другой озвучкой?
Да, если у ролика есть нужная дорожка — она будет перечислена в voices у формата 1080p. Передайте её код параметром lang при скачивании.