Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Rutube Shorts Bot

Telegram-бот для скачивания видео из Rutube Shorts.

Возможности

  • Скачивание видео из Rutube Shorts — загрузка видео по ссылке
  • Выбор качества — возможность выбрать разрешение видео (1080p, 720p, 480p и др.)
  • Многопоточная загрузка — ускоренная загрузка через несколько потоков
  • Индикатор прогресса — отображение прогресса загрузки

Требования

  • Python 3.9 или выше

Установка

1. Клонирование репозитория

git clone https://github.com/maxim-vdonsk/Rutube-Shorts-Bot.git
cd Rutube-Shorts-Bot

2. Создание виртуального окружения (рекомендуется)

# macOS/Linux
python3 -m venv venv
source venv/bin/activate

# Windows
python -m venv venv
venv\Scripts\activate

3. Установка зависимостей

pip install -r requirements.txt

4. Настройка переменных окружения

Создайте файл .env в корневой директории:

touch .env

Добавьте в него токен бота:

TELEGRAM_BOT_TOKEN=ваш_токен_бота

Как получить токен бота:

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте команду /newbot
  3. Придумайте имя для бота (например, Rutube Shorts Bot)
  4. Придумайте username (должен заканчиваться на bot, например rutube_shorts_bot)
  5. BotFather выдаст токен — скопируйте его в .env

Запуск

python bot.py

Использование

  1. Запустите бота командой /start
  2. Отправьте ссылку на Rutube Shorts (например: https://rutube.ru/shorts/abc123/)
  3. Выберите разрешение из предложенных вариантов
  4. Дождитесь загрузки — бот отправит видео файлом

Примеры ссылок:

  • 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

Возможные проблемы

1. Ошибка: No module named 'telegram'

Решение:

pip install -r requirements.txt

2. Ошибка: No module named 'dotenv'

Решение:

pip install python-dotenv

3. Бот не отвечает на команды

Возможные причины:

  • Неверный токен в .env
  • Проблемы с интернет-соединением
  • Бот заблокирован

Проверка:

  1. Убедитесь, что токен скопирован без пробелов
  2. Проверьте логи в консоли
  3. Попробуйте перезапустить бота

4. Ошибка: File is too large

Telegram ограничивает размер файлов — 50 MB. Если видео больше, выберите меньшее разрешение.

5. Ошибка: Cannot get the video ID from URL

Решение: Проверьте ссылку. Она должна содержать тип видео:

  • https://rutube.ru/shorts/12345678/
  • https://rutube.ru/video/12345678/
  • https://rutube.ru/12345678/

6. Видео не загружается

Причины:

  • Видео недоступно (удалено или приватное)
  • Проблемы с сетью
  • Таймаут соединения

Решение: Попробуйте другую ссылку или перезапустите бота.


Для разработчика

Как это работает:

  1. Парсинг ссылки — извлечение ID видео из URL
  2. Запрос к API — получение информации о видео и плейлиста m3u8
  3. Загрузка сегментов — видео разбито на части, загружается многопоточно
  4. Сборка файла — сегменты объединяются в один MP4 файл
  5. Отправка — файл отправляется пользователю в Telegram

Структура кода:

  • bot.py — обработчики команд Telegram, управление прогрессом
  • rutube.py — классы для работы с API Rutube:
    • Rutube — основной класс для работы с видео
    • RutubeVideo — отдельное видео с определённым качеством
    • RutubePlaylist — коллекция видео с разными качествами
    • YappyVideo — класс для Yappy (вертикальные видео)

Автор

maxim-vdonsk

GitHub: @maxim-vdonsk


Лицензия

MIT License — свободное использование с указанием авторства.

About

Telegram-бот для скачивания видео из Rutube Shorts с выбором качества и многопоточной загрузкой.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages