Бесплатный backend для скачивания YouTube видео с использованием yt-dlp.
- ✅ Скачивание YouTube видео в любом качестве
- ✅ Скачивание YouTube Shorts
- ✅ Извлечение аудио (MP3)
- ✅ Поддержка форматов: best, 1080p, 720p, audio
- ✅ Асинхронная обработка запросов
- ✅ CORS для работы с любым frontend
- ✅ Автоматическая очистка старых задач
Проверка работы API
Response:
{
"status": "ok",
"message": "YouTube Downloader API with yt-dlp",
"version": "1.0.0"
}Начать скачивание видео
Request:
{
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"quality": "best"
}Quality options:
best- лучшее качествоfhd- 1080phd- 720paudio- только аудио (MP3)
Response:
{
"task_id": "uuid-here",
"status": "pending"
}Проверить статус задачи
Response:
{
"status": "processing",
"url": "...",
"quality": "best"
}Status values:
pending- в очередиprocessing- обрабатываетсяcompleted- готовоfailed- ошибка
Получить ссылку на скачивание
Response:
{
"download_url": "https://...",
"title": "Video Title",
"thumbnail": "https://...",
"duration": 180,
"view_count": 1000000,
"channel": "Channel Name"
}Получить информацию о видео без скачивания
Request:
{
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}Response:
{
"title": "Video Title",
"thumbnail": "https://...",
"duration": 180,
"view_count": 1000000,
"channel": "Channel Name",
"formats": [
{"quality": "1080p", "height": 1080, "ext": "mp4"},
{"quality": "720p", "height": 720, "ext": "mp4"}
]
}- Зайди на https://railway.app
- Зарегистрируйся через GitHub
- Нажми "New Project"
- Выбери "Deploy from GitHub repo"
- Выбери репозиторий с этим кодом
- Railway автоматически определит Python и установит зависимости
В Railway добавь переменную:
PORT=5000(обычно не нужно, Railway сам установит)
Railway автоматически задеплоит приложение и даст тебе URL типа:
https://your-app.railway.app
- Зайди на https://render.com
- Зарегистрируйся через GitHub
- Нажми "New +" → "Web Service"
- Подключи GitHub репозиторий
- Настройки:
- Name: youtube-downloader-api
- Environment: Python 3
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app - Plan: Free
Render автоматически задеплоит и даст URL типа:
https://youtube-downloader-api.onrender.com
# Установить зависимости
pip install -r requirements.txt
# Запустить сервер
python app.pyСервер запустится на http://localhost:5000
# Проверка работы
curl http://localhost:5000/
# Начать скачивание
curl -X POST http://localhost:5000/start \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","quality":"hd"}'
# Проверить статус
curl http://localhost:5000/status/TASK_ID
# Получить ссылку
curl http://localhost:5000/download/TASK_ID- Задачи хранятся в памяти (при перезапуске сервера теряются)
- Старые задачи (>1 часа) автоматически удаляются
- Нет rate limiting (можно добавить при необходимости)
yt-dlp регулярно обновляется для поддержки изменений YouTube.
Обновить версию в requirements.txt:
yt-dlp==latest
Или установить последнюю версию:
pip install --upgrade yt-dlp- YouTube изменил API, нужно обновить yt-dlp
- Видео недоступно или удалено
- Видео имеет возрастные ограничения
- YouTube заблокировал IP сервера
- Попробуй использовать VPN или другой хостинг
- Используй качество
hdвместоbest - Проверь скорость интернета на сервере
- ✅ CORS настроен для работы с любым доменом
- ✅ Нет хранения файлов на сервере
- ✅ Автоматическая очистка старых задач
⚠️ Нет rate limiting (добавь при необходимости)⚠️ Нет аутентификации (добавь при необходимости)
MIT License - используй свободно!