Перейти к содержимому

YouTube Metadata API

Автор Команда TunelioОпубликовано

YouTube metadata API возвращает структурированные факты о видео — название, длительность, превью и доступные форматы — ничего не скачивая. В этом руководстве показано, как прочитать эти данные одним запросом к endpoint Tunelio GET /info.

Что возвращает endpoint метаданных

GET /info принимает единственный параметр url и возвращает название видео, длительность (в секундах и в читаемом виде), превью в максимальном разрешении и массив formats, описывающий каждую скачиваемую видео- и аудиоверсию с точными размерами файлов.

curl "https://tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ" \
  -H "Authorization: Bearer tnl_your_api_key"
{
  "title": "Example Video",
  "duration_seconds": 213,
  "duration_str": "03:33",
  "thumbnail": "https://i.ytimg.com/vi_webp/…/maxresdefault.webp",
  "formats": [
    { "quality": "1080p", "file_size_str": "48.10 MB", "width": 1920, "height": 1080 },
    { "quality": "720p",  "file_size_str": "28.52 MB", "width": 1280, "height": 720 }
  ],
  "audioFormat": { "format": "mp3", "file_size_str": "3.29 MB" }
}

Типичные сценарии

  • Показать превью видео — название, картинку и длительность — до того, как пользователь скачает.
  • Дать пользователю выбрать формат, показав каждое разрешение и его точный размер.
  • Проверить ссылку и убедиться, что видео существует, прежде чем тратить кредиты на загрузку.

Чтение в Python

import os, requests

info = requests.get(
    "https://tunelio.dev/info",
    params={"url": "https://youtu.be/dQw4w9WgXcQ"},
    headers={"Authorization": f"Bearer {os.environ['TUNELIO_KEY']}"},
).json()

print(info["title"], info["duration_str"])
for f in info["formats"]:
    print(f["quality"], f["file_size_str"])

Проверка видео перед загрузкой

GET /info — ещё и самый дешёвый способ убедиться, что видео существует и доступно для скачивания, прежде чем тратить кредиты на /create. Если ссылка приватная, удалённая или гео-заблокированная, /info вернёт ошибку, которую можно сразу показать пользователю — без напрасной попытки загрузки. Поле duration_seconds здесь тоже полезно: им удобно отсекать трансляции или видео длиннее, чем допускает приложение.

Превью и длительность

Поле thumbnail — изображение в максимальном разрешении, которое YouTube отдаёт для видео, так что карточку-превью можно отрисовать без второго запроса. duration_str уже отформатирован как HH:MM:SS (или MM:SS, если меньше часа), а duration_seconds даёт целое число для собственного форматирования или фильтрации.

Стоимость

Каждый вызов GET /info стоит 6 кредитов, а новые аккаунты начинают со 100 бесплатных. Поскольку /info сообщает точные размеры файлов, пользователь может выбрать формат до того, как вы потратите 10 кредитов на загрузку через GET /create.

Дальше

Смотрите полную документацию API с полной схемой ответа /info и всеми полями — или соедините его с GET /create, чтобы превратить прочитанные метаданные в прямую ссылку на скачивание.

Частые вопросы

Скачивает ли metadata API само видео?

Нет. GET /info только читает метаданные — название, длительность, превью и форматы. Когда нужна ссылка на скачивание, используйте GET /create.

Возвращает ли он размер каждого формата?

Да. Каждый элемент массива formats содержит точный размер в байтах и читаемую строку, а для видеоформатов ещё ширину и высоту.

Похожие руководства