YouTube to MP4 API
Автор Команда TunelioОпубликовано
YouTube to MP4 API превращает ссылку на видео в прямую ссылку на MP4, которую приложение может использовать сразу — вплоть до 4K. В этом руководстве показано, как выбрать разрешение и получить готовую ссылку на MP4 одним запросом к Tunelio API.
Как работает YouTube to MP4 API
Вы отправляете ссылку на YouTube и нужное разрешение, а API возвращает подписанную ссылку на скачивание собранного MP4 (видео и аудио вместе). Нет очереди рендеринга и опроса статуса — ссылка приходит в том же ответе.
Сначала список разрешений, потом загрузка
Вызовите GET /info, чтобы узнать, какие разрешения есть у видео и сколько весит каждый MP4, затем вызовите GET /create с выбранным quality. Пример ниже запрашивает 1080p:
# Доступные разрешения MP4 и размеры (6 кредитов)
curl "https://tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ" \
-H "Authorization: Bearer tnl_your_api_key"
# Прямая ссылка на MP4 1080p (10 кредитов)
curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=1080p" \
-H "Authorization: Bearer tnl_your_api_key"Ответ create содержит url на MP4, предлагаемое имя файла, итоговый file_size в байтах и метку expires, показывающую, как долго действует подписанная ссылка.
Доступные разрешения MP4
- 144p, 240p, 360p, 480p — небольшие файлы для превью и пользователей с медленным каналом.
- 720p и 1080p — обычные «HD»-загрузки для большинства приложений.
- 2160p (4K) — доступно на тарифе Mega для источников с высоким разрешением.
Пример на Node.js
const res = await fetch(
"https://tunelio.dev/create?" + new URLSearchParams({
url: "https://youtu.be/dQw4w9WgXcQ",
quality: "1080p",
}),
{ headers: { Authorization: "Bearer " + process.env.TUNELIO_KEY } }
);
const { url, filename, file_size_str } = await res.json();
console.log(filename, file_size_str, url);Сохраните MP4 в своё хранилище
Поскольку /create возвращает обычную HTTPS-ссылку, MP4 можно стримить прямо на диск или в объектное хранилище, не буферизуя весь файл в памяти. Получив url из ответа /create, делаете обычный GET:
import requests
with requests.get(download_url, stream=True) as r:
r.raise_for_status()
with open("video.mp4", "wb") as f:
for chunk in r.iter_content(1 << 20):
f.write(chunk)Если ссылка пережила свою метку expires, вызовите GET /create ещё раз за свежей — метаданные из GET /info не изменились, так что повторяется только последний шаг, а не повторный разбор видео.
Дальше
Смотрите полную документацию API с полной схемой ответа, кодами ошибок и лимитами — или заберите 100 бесплатных кредитов и запросите первую ссылку на MP4.
Частые вопросы
Умеет ли API скачивать 4K MP4 с YouTube?
Да. Запросите quality=2160p на тарифе Mega, чтобы получить ссылку на 4K MP4, если у исходного видео есть 4K-версия.
MP4 — это один файл со звуком?
Да. /create возвращает собранный MP4 с видео и аудио вместе, так что скачанный файл играет сразу, без отдельного слияния.
Как долго действует ссылка на скачивание?
Подписанная url содержит метку expires — обычно несколько часов, — после чего вы просто запрашиваете свежую.