Skip to content

ReNothingg/ReSave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReSave

ReSave logo

Telegram-бот для скачивания видео и медиаконтента

Открыть бота: @ReSafeBot

Python 3.9+ Telegram Bot yt-dlp

Что умеет бот

  • Скачивает видео по ссылке с популярных платформ через yt-dlp.
  • Работает в inline-режиме (можно отправлять ссылку прямо из поля ввода).
  • Поддерживает работу в группах.
  • Грузит видео в фоне и отправляет результат по готовности.
  • Использует очередь и ограничения на пользователя.
  • Хранит статистику в SQLite и автоматически мигрирует старый user_stats.json.
  • Поддерживает админ-команды и базовую статистику.

Быстрый старт

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

pip install -r requirements.txt

Настройка .env

Скопируйте .env.example в .env и заполните нужные значения:

BOT_TOKEN=ваш_токен_бота
ADMIN_IDS=123456789
VIP_USERS=

Cookies для yt-dlp (опционально)

Если нужны авторизованные источники, добавьте cookies в cookies.txt.

Запуск

python main.py

Конфигурация

Основные параметры находятся в config.py:

Параметр Назначение
BOT_TOKEN Токен Telegram-бота (читается из .env)
ADMIN_IDS, VIP_USERS ID админов и VIP-пользователей
TEMP_DIR Временная директория для загрузок
STATS_DB_PATH SQLite-файл со статистикой
MAX_CONCURRENT_DOWNLOADS Лимит одновременных загрузок
MAX_DOWNLOADS_PER_USER Лимит активных загрузок на пользователя
MAX_FILE_SIZE, SEND_AS_DOC_LIMIT Ограничения по размеру и порог отправки как документа
MAX_VIDEO_DURATION_FREE, MAX_VIDEO_DURATION_PREMIUM Лимит длительности для free/premium
MAX_PLAYLIST_ITEMS_FREE, MAX_PLAYLIST_ITEMS_PREMIUM Лимит элементов плейлиста для free/premium
LOG_LEVEL Уровень логирования (INFO, DEBUG, ...)

Структура проекта

  • main.py - точка входа.
  • src/ - основная логика приложения.
  • tests/ - автоматические тесты.
  • temp_downloads/ - временные загруженные файлы.
  • cookies.txt - cookies для yt-dlp.
  • database.db - SQLite-база со статистикой.
  • bot.log - локальные логи.

Проверка проекта

python -m unittest discover -s tests -v

В репозитории также настроен GitHub Actions workflow CI, который компилирует исходники и запускает тесты на каждый push и pull request.

Запуск как systemd-сервис (Linux)

sudo systemctl start resave
sudo systemctl status resave

Полезные команды:

sudo systemctl restart resave
journalctl -u resave -f
sudo systemctl enable resave

Примечания

  • Если ffmpeg не установлен, часть медиавозможностей может быть недоступна.
  • Бот больше не устанавливает зависимости на лету: перед запуском нужно явно выполнить pip install -r requirements.txt.
  • Обычные плейлисты ставятся в очередь автоматически в среднем качестве, если пользователь укладывается в лимиты.

About

Telegram-бот для скачивания видео и медиаконтента. Поддерживает inline-режим, работу в группах, очередь загрузок и базовую статистику пользователей.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages