телеграм бот что скидывает видосы в телегу по ссылке
Find a file
2026-01-08 19:05:41 +03:00
instagram-downloader Update .env.example with new admin bot token, modify Docker configuration for Instagram downloader to use host network mode, and enhance YouTube downloader with improved cookie validation and error handling for video downloads. 2026-01-08 19:05:41 +03:00
tiktok-downloader Добавлена система очередей для обработки загрузки видео, улучшена обработка ошибок и добавлены новые текстовые сообщения для пользователей. Обновлены таймауты HTTP-запросов для поддержки больших файлов. Обновлены конфигурации Docker для всех загрузчиков с использованием Gunicorn. 2025-12-12 15:41:46 +03:00
vk-downloader вк япфайлс расширил домены 2025-12-25 00:09:47 +03:00
yapfiles-downloader вк япфайлс расширил домены 2025-12-25 00:09:47 +03:00
youtube-downloader Update .env.example with new admin bot token, modify Docker configuration for Instagram downloader to use host network mode, and enhance YouTube downloader with improved cookie validation and error handling for video downloads. 2026-01-08 19:05:41 +03:00
.dockerignore Рефакторинг: микросервисная архитектура 2025-12-11 01:07:04 +03:00
.env.example Update .env.example with new admin bot token, modify Docker configuration for Instagram downloader to use host network mode, and enhance YouTube downloader with improved cookie validation and error handling for video downloads. 2026-01-08 19:05:41 +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 Implement file deletion after successful video sending and update Instagram cookies 2025-12-25 00:35:48 +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