Как создать Telegram-бота для скачивания видео с YouTube на VPS: пошаговая инструкция 2026
Коротко
---
Узнайте, как создать и настроить Telegram-бота для скачивания видео с YouTube на своем VPS, с пошаговой инструкцией и рекомендациями по безопасности и эффективности.
---
В современном мире потоковое видео становится все более популярным, а возможность скачивать видео с YouTube — востребованный инструмент для пользователей, желающих сохранить контент для офлайн-просмотра. В этой статье мы разберемся, как на практике создать Telegram-бота, который поможет вам скачивать видео с YouTube прямо через удобный мессенджер, используя ваш собственный VPS.
Почему именно Telegram-бот и VPS?
Telegram — одна из самых популярных платформ для обмена сообщениями, благодаря своей безопасности и гибкости. Создав собственного бота, вы получите контроль и безопасность, а VPS — мощный сервер, который обеспечивает стабильную работу и возможность масштабирования.
---
Шаг 1: Подготовка окружения и выбор технологий
Для реализации проекта нам понадобятся:
- VPS-сервер с установленной операционной системой Linux (например, Ubuntu 24.04 или 26.04)
- Python 3.11+ — язык программирования для бота
- библиотеки: python-telegram-bot, yt-dlp (форк youtube-dl с улучшенной поддержкой YouTube)
- Техническое обеспечение: SSH-доступ, базовые навыки работы с командной строкой
Почему именно Python и yt-dlp?
Python — популярный язык для автоматизации задач и создания ботов благодаря богатой экосистеме. yt-dlp — современная библиотека, которая эффективно скачивает видео и аудио с YouTube и других платформ. Она активно развивается и обновляется.
---
Шаг 2: Настройка VPS и установка необходимых компонентов
Обновите систему и установите Python
`bash sudo apt update && sudo apt upgrade -y sudo apt install python3 python3-pip -y `
Установите необходимые библиотеки
`bash pip3 install python-telegram-bot yt-dlp `
Создайте нового Telegram-бота
- Откройте Telegram и найдите бота
- Создайте нового бота командой /newbot
- Получите токен API — он понадобится для взаимодействия с Telegram API
Настройка переменных окружения
Создайте файл .env для хранения токена и других конфиденциальных данных:
`bash nano ~/bot_env/.env `
Добавьте:
`env TELEGRAM_TOKEN=ваш_токен_бота `
Не забудьте защитить файл:
`bash chmod 600 ~/bot_env/.env `
---
Шаг 3: Разработка бота — пример на Python
Создайте файл bot.py:
`python import os import logging from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes from dotenv import load_dotenv from yt_dlp import YoutubeDL
load_dotenv(dotenv_path=os.path.expanduser('~/bot_env/.env'))
TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN")
logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO )
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text( "Привет! Отправьте мне ссылку на видео с YouTube, и я скачаю его для вас." )
async def download_video(update: Update, context: ContextTypes.DEFAULT_TYPE): url = update.message.text.strip() if not url.startswith('http'): await update.message.reply_text("Пожалуйста, отправьте действительную ссылку на YouTube.") return
await update.message.reply_text("Обрабатываю ваш запрос, ожидайте...")
ydl_opts = { 'format': 'bestvideo+bestaudio/best', 'outtmpl': 'downloads/%(title)s.%(ext)s', 'noplaylist': True, 'quiet': True, 'no_warnings': True, }
try: with YoutubeDL(ydl_opts) as ydl: info_dict = ydl.extract_info(url, download=True) filename = ydl.prepare_filename(info_dict) except Exception as e: await update.message.reply_text(f"Ошибка при загрузке видео: {e}") return
await update.message.reply_text("Загружено! Отправляю файл...") try: await context.bot.send_video(chat_id=update.effective_chat.id, video=open(filename, 'rb')) except Exception as e: await update.message.reply_text(f"Не удалось отправить видео: {e}")
def main(): app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
app.add_handler(CommandHandler("start", start)) app.add_handler(CommandHandler("help", start)) app.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), download_video))
app.run_polling()
if name == 'main': main() `
Обратите внимание: В этом коде реализована простая логика — при получении ссылки происходит скачивание и отправка видео обратно.
---
Шаг 4: Запуск и автоматизация
Создайте директорию для загрузок
`bash mkdir -p ~/downloads `
Запуск бота
`bash python3 bot.py `
Настроить автоматический запуск
Для постоянной работы бота рекомендуется использовать systemd или screen/tmux.
Пример systemd сервиса:
`bash sudo nano /etc/systemd/system/ytbot.service `
Вставьте:
`ini [Unit] Description=Telegram YouTube Downloader Bot After=network.target
[Service] User=your_username WorkingDirectory=/home/your_username/ ExecStart=/usr/bin/python3 /home/your_username/bot.py Restart=always
[Install] WantedBy=multi-user.target `
Активируйте и запустите:
`bash sudo systemctl daemon-reload sudo systemctl enable ytbot sudo systemctl start ytbot `
---
Шаг 5: Безопасность и ограничения
- Ограничьте доступ к боту: Не публикуйте токен публично.
- Фильтрация ссылок: Добавьте проверку, чтобы скачивать только YouTube-ссылки.
- Лимиты: Введите лимиты по скорости скачивания или количеству запросов, чтобы избежать перегрузки сервера.
- Обновление yt-dlp: Регулярно обновляйте yt-dlp командой pip3 install -U yt-dlp.
---
Итоги
Создание Telegram-бота для скачивания видео с YouTube — это относительно простая задача при наличии VPS и базовых навыков программирования. В результате вы получите удобный инструмент для быстрого скачивания видео прямо из мессенджера, полностью под вашим контролем.
Используйте данный подход для автоматизации своих задач, улучшения личных сервисов или обучения новым технологиям. В случае расширения возможностей можно добавить поддержку видео высокого разрешения, автоматическую конвертацию или интеграцию с облачными хранилищами.
---
Обратите внимание: Перед использованием любой автоматизированной системы убедитесь в соблюдении правил использования YouTube и авторских прав.
Ещё по теме
Читайте также
CTA · VPSVDS
Личный VPS — без терминала и очередей
Регистрация, импорт профиля и стабильный канал на телефон и компьютер. Тот же принцип, о котором мы пишем в блоге — на практике.