телеграм бот что скидывает видосы в телегу по ссылке
Find a file
2025-12-24 22:41:20 +03:00
instagram-downloader add admin bot 2025-12-20 22:17:20 +03:00
tiktok-downloader Добавлена система очередей для обработки загрузки видео, улучшена обработка ошибок и добавлены новые текстовые сообщения для пользователей. Обновлены таймауты HTTP-запросов для поддержки больших файлов. Обновлены конфигурации Docker для всех загрузчиков с использованием Gunicorn. 2025-12-12 15:41:46 +03:00
vk-downloader Добавлена система очередей для обработки загрузки видео, улучшена обработка ошибок и добавлены новые текстовые сообщения для пользователей. Обновлены таймауты HTTP-запросов для поддержки больших файлов. Обновлены конфигурации Docker для всех загрузчиков с использованием Gunicorn. 2025-12-12 15:41:46 +03:00
yapfiles-downloader Добавлена система очередей для обработки загрузки видео, улучшена обработка ошибок и добавлены новые текстовые сообщения для пользователей. Обновлены таймауты HTTP-запросов для поддержки больших файлов. Обновлены конфигурации Docker для всех загрузчиков с использованием Gunicorn. 2025-12-12 15:41:46 +03:00
youtube-downloader Enhance YouTube video download functionality with improved error handling and format options. Update Docker configuration to use environment variable for port and simplify network settings. 2025-12-24 22:41:20 +03:00
.dockerignore Рефакторинг: микросервисная архитектура 2025-12-11 01:07:04 +03:00
.env.example add admin bot 2025-12-20 22:17:20 +03:00
.gitignore Исключить папки downloads/ из git 2025-12-11 01:07:23 +03:00
admin_bot.py add admin bot 2025-12-20 22:17:20 +03:00
ARCHITECTURE.md Обновлена архитектура и документация: добавлены новые сервисы для TikTok и Yapfiles, обновлены порты для всех загрузчиков, улучшена локализация и добавлены команды бота. Обновлены инструкции по запуску и настройке. 2025-12-12 12:39:11 +03:00
bot.py add admin bot 2025-12-20 22:17:20 +03:00
broadcast.py Обновлено подтверждение перед отправкой сообщения: добавлена обработка исключений для ввода пользователя, чтобы избежать ошибок при некорректном вводе. 2025-12-12 11:34:20 +03:00
docker-compose.yml add admin bot 2025-12-20 22:17:20 +03:00
Dockerfile add admin bot 2025-12-20 22:17:20 +03:00
get_cookies.sh инста и ютуб работают, вк пока нет 2025-12-10 14:46:09 +03:00
get_cookies_local.sh инста и ютуб работают, вк пока нет 2025-12-10 14:46:09 +03:00
README.md Обновлена архитектура и документация: добавлены новые сервисы для TikTok и Yapfiles, обновлены порты для всех загрузчиков, улучшена локализация и добавлены команды бота. Обновлены инструкции по запуску и настройке. 2025-12-12 12:39:11 +03:00
requirements.txt Рефакторинг: микросервисная архитектура 2025-12-11 01:07:04 +03:00
start_all.sh Добавлен новый сервис для загрузки видео с Yapfiles, обновлены конфигурации и текстовые сообщения для поддержки нового источника. Улучшена обработка ошибок и обновлена документация. 2025-12-12 14:45:56 +03:00
stop_all.sh Добавлен новый сервис для загрузки видео с Yapfiles, обновлены конфигурации и текстовые сообщения для поддержки нового источника. Улучшена обработка ошибок и обновлена документация. 2025-12-12 14:45:56 +03:00

Telegram Video Download Bot

Telegram бот для скачивания видео с YouTube, Instagram, TikTok, VK и Yapfiles. Микросервисная архитектура с раздельными сервисами для каждого источника.

Архитектура

Проект разделен на микросервисы:

  • Основной бот (в корне проекта) - Telegram бот, обрабатывает сообщения и оркестрирует запросы к сервисам
  • youtube-downloader - сервис для скачивания с YouTube (порт 5557)
  • instagram-downloader - сервис для скачивания с Instagram (порт 5556)
  • vk-downloader - сервис для скачивания с VK (порт 5555)
  • yapfiles-downloader - сервис для скачивания с Yapfiles (порт 5558)
  • tiktok-downloader - сервис для скачивания с TikTok (порт 5559)

Каждый сервис работает в отдельном Docker контейнере и может быть развернут независимо.

Возможности

  • 📹 Скачивание видео с YouTube
  • 📸 Скачивание видео с Instagram (требуются cookies)
  • 🎵 Скачивание видео с TikTok
  • 🎬 Скачивание видео с VK
  • 📁 Скачивание видео с Yapfiles
  • 🌍 Локализация интерфейса (русский/английский) на основе языка пользователя
  • 📊 Статистика скачанных видео и пользователей
  • 🔄 Автоматическое сохранение статистики в базу данных
  • 👥 Работа в группах с автоматическим обнаружением ссылок
  • 📢 Рассылка сообщений всем пользователям (broadcast.py)

Команды бота

  • /start — начало работы с ботом
  • /stat — статистика: количество пользователей и скачанных видео
  • /support — информация о боте и контакт автора

Требования

  • Docker и Docker Compose
  • Telegram Bot Token (получить у @BotFather)
  • Для Instagram: файл с cookies (см. раздел Instagram ниже)

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

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

git clone <repository_url>
cd videoDownloadBot

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

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

cp .env.example .env
nano .env  # или используйте любой редактор

Необходимые переменные:

TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
TELEGRAM_BOT_USERNAME=your_bot_username

# Downloader Services URLs
YOUTUBE_DOWNLOADER_URL=http://localhost:5557
INSTAGRAM_DOWNLOADER_URL=http://localhost:5556
VK_DOWNLOADER_URL=http://localhost:5555
YAPFILES_DOWNLOADER_URL=http://localhost:5558
TIKTOK_DOWNLOADER_URL=http://localhost:5559

3. Настройка Instagram (опционально)

Если планируете скачивать видео с Instagram:

  1. Экспортируйте cookies из браузера (см. instagram-downloader/INSTAGRAM_COOKIES_INSTRUCTIONS.md)
  2. Сохраните файл как instagram_cookies.txt в папке instagram-downloader/
cd instagram-downloader
./get_instagram_cookies.sh

4. Запуск сервисов

Каждый сервис запускается отдельно:

# Запуск сервисов загрузчиков
cd youtube-downloader && docker compose up -d && cd ..
cd instagram-downloader && docker compose up -d && cd ..
cd vk-downloader && docker compose up -d && cd ..
cd yapfiles-downloader && docker compose up -d && cd ..
cd tiktok-downloader && docker compose up -d && cd ..

# Запуск основного бота (из корня проекта)
docker compose up -d

5. Проверка статуса

# Проверка всех сервисов
docker ps | grep -E "(video_download_bot|youtube|instagram|vk|yapfiles|tiktok)"

Порты сервисов

Сервис Порт
VK Downloader 5555
Instagram Downloader 5556
YouTube Downloader 5557
Yapfiles Downloader 5558
TikTok Downloader 5559

Рассылка сообщений

Скрипт broadcast.py позволяет отправить сообщение всем пользователям бота:

# Простое сообщение
./broadcast.py -y "Текст сообщения"

# С HTML-разметкой
./broadcast.py -y --html '<b>Важно!</b> Новая функция добавлена.'

# Из файла
./broadcast.py -y --file announcement.txt --html

# Посмотреть список пользователей
./broadcast.py --list

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

videoDownloadBot/
├── bot.py                      # Код основного Telegram бота
├── broadcast.py                # Скрипт для рассылки сообщений
├── requirements.txt            # Python зависимости бота
├── Dockerfile                  # Образ для бота
├── docker-compose.yml          # Конфигурация бота
├── .env.example                # Пример конфигурации
├── data/                       # База данных (bot.db)
├── video/                      # Скачанные видео
├── youtube-downloader/         # Сервис для YouTube
├── instagram-downloader/       # Сервис для Instagram
├── vk-downloader/              # Сервис для VK
├── yapfiles-downloader/        # Сервис для Yapfiles
├── tiktok-downloader/          # Сервис для TikTok
├── README.md                   # Этот файл
└── ARCHITECTURE.md             # Описание архитектуры

API Endpoints

Все сервисы загрузчиков предоставляют одинаковый API:

  • GET /health - проверка здоровья сервиса
  • POST /download/stream - скачивание видео (возвращает бинарные данные)
POST /download/stream
Content-Type: application/json

{
  "url": "https://youtube.com/watch?v=..."
}

Обновление

git pull

# Пересобрать и перезапустить основной бот
docker compose down && docker compose up -d --build

# Пересобрать сервисы загрузчиков
cd youtube-downloader && docker compose up -d --build && cd ..
cd instagram-downloader && docker compose up -d --build && cd ..
cd vk-downloader && docker compose up -d --build && cd ..
cd yapfiles-downloader && docker compose up -d --build && cd ..
cd tiktok-downloader && docker compose up -d --build && cd ..

Локализация

Бот автоматически определяет язык пользователя из настроек Telegram:

  • Если язык начинается с ru — интерфейс на русском
  • Иначе — интерфейс на английском

Язык сохраняется в базе данных для каждого пользователя.

Troubleshooting

Бот не отвечает

  • Проверьте логи: docker compose logs bot
  • Убедитесь, что токен правильный в .env
  • Проверьте, что все сервисы запущены и доступны

Сервис не работает

  • Проверьте логи сервиса: cd <service>-downloader && docker compose logs -f
  • Проверьте URL в .env
  • Для Instagram: проверьте валидность cookies

База данных не сохраняется

  • Проверьте права на папку data/
  • Убедитесь, что volume смонтирован в docker-compose.yml

Лицензия

MIT

Поддержка

При возникновении проблем создайте issue в репозитории или свяжитесь с автором: @rvrubel