Telegram-бот для скачивания видео из Rutube Shorts.
- Скачивание видео из Rutube Shorts — загрузка видео по ссылке
- Выбор качества — возможность выбрать разрешение видео (1080p, 720p, 480p и др.)
- Многопоточная загрузка — ускоренная загрузка через несколько потоков
- Индикатор прогресса — отображение прогресса загрузки
- Python 3.9 или выше
git clone https://github.com/maxim-vdonsk/Rutube-Shorts-Bot.git
cd Rutube-Shorts-Bot# macOS/Linux
python3 -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
venv\Scripts\activatepip install -r requirements.txtСоздайте файл .env в корневой директории:
touch .envДобавьте в него токен бота:
TELEGRAM_BOT_TOKEN=ваш_токен_бота- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Придумайте имя для бота (например,
Rutube Shorts Bot) - Придумайте username (должен заканчиваться на
bot, напримерrutube_shorts_bot) - BotFather выдаст токен — скопируйте его в
.env
python bot.py- Запустите бота командой
/start - Отправьте ссылку на Rutube Shorts (например:
https://rutube.ru/shorts/abc123/) - Выберите разрешение из предложенных вариантов
- Дождитесь загрузки — бот отправит видео файлом
- Shorts:
https://rutube.ru/shorts/12345678/ - Yappy:
https://rutube.ru/yappy/12345678/ - Обычные видео:
https://rutube.ru/video/12345678/
Rutube-Shorts-Bot/
├── bot.py # Основной файл бота
├── rutube.py # Модуль для работы с API Rutube
├── requirements.txt # Список зависимостей
├── README.md # Документация
├── .env # Токен бота (не хранить в git!)
├── .gitignore # Игнорирование файлов
└── downloads/ # Временная папка для видео
└── *.mp4 # Загруженные файлы
| Файл | Назначение |
|---|---|
bot.py |
Telegram-бот с обработчиками команд |
rutube.py |
Модуль для парсинга и загрузки видео с Rutube |
requirements.txt |
Зависимости Python |
| Библиотека | Назначение |
|---|---|
python-telegram-bot |
Работа с Telegram Bot API |
python-dotenv |
Загрузка токена из .env |
m3u8 |
Парсинг плейлистов m3u8 (видео-сегменты) |
alive-progress |
Индикатор прогресса загрузки |
requests |
HTTP-запросы к API Rutube |
| Переменная | Описание |
|---|---|
TELEGRAM_BOT_TOKEN |
Токен вашего Telegram-бота из @BotFather |
Решение:
pip install -r requirements.txtРешение:
pip install python-dotenvВозможные причины:
- Неверный токен в
.env - Проблемы с интернет-соединением
- Бот заблокирован
Проверка:
- Убедитесь, что токен скопирован без пробелов
- Проверьте логи в консоли
- Попробуйте перезапустить бота
Telegram ограничивает размер файлов — 50 MB. Если видео больше, выберите меньшее разрешение.
Решение: Проверьте ссылку. Она должна содержать тип видео:
- ✅
https://rutube.ru/shorts/12345678/ - ✅
https://rutube.ru/video/12345678/ - ❌
https://rutube.ru/12345678/
Причины:
- Видео недоступно (удалено или приватное)
- Проблемы с сетью
- Таймаут соединения
Решение: Попробуйте другую ссылку или перезапустите бота.
- Парсинг ссылки — извлечение ID видео из URL
- Запрос к API — получение информации о видео и плейлиста m3u8
- Загрузка сегментов — видео разбито на части, загружается многопоточно
- Сборка файла — сегменты объединяются в один MP4 файл
- Отправка — файл отправляется пользователю в Telegram
- bot.py — обработчики команд Telegram, управление прогрессом
- rutube.py — классы для работы с API Rutube:
Rutube— основной класс для работы с видеоRutubeVideo— отдельное видео с определённым качествомRutubePlaylist— коллекция видео с разными качествамиYappyVideo— класс для Yappy (вертикальные видео)
maxim-vdonsk
GitHub: @maxim-vdonsk
MIT License — свободное использование с указанием авторства.