телеграм бот что скидывает видосы в телегу по ссылке
| vk-downloader | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| bot.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| get_cookies.sh | ||
| get_cookies_local.sh | ||
| get_instagram_cookies.sh | ||
| INSTAGRAM_COOKIES_INSTRUCTIONS.md | ||
| README.md | ||
| requirements.txt | ||
| update_instagram_cookies.sh | ||
Telegram Video Download Bot
Telegram бот для скачивания видео с YouTube, Instagram и VK. Поддерживает раздельное развертывание сервисов для работы с VPN и без VPN.
Возможности
- 📹 Скачивание видео с YouTube
- 📸 Скачивание видео с Instagram (требуются cookies)
- 🎬 Скачивание видео с VK (через отдельный микросервис)
- 📊 Статистика скачанных видео и пользователей
- 🔄 Автоматическое сохранение статистики в базу данных
Требования
- 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
VK_DOWNLOADER_URL=http://localhost:5555
- TELEGRAM_BOT_TOKEN — токен бота от @BotFather
- TELEGRAM_BOT_USERNAME — username бота (без @), используется в подписи видео
- VK_DOWNLOADER_URL — URL VK сервиса (для локальной разработки:
http://localhost:5555, для продакшена:http://<ip>:5555)
3. Настройка Instagram (опционально)
Если планируете скачивать видео с Instagram:
- Экспортируйте cookies из браузера (см.
INSTAGRAM_COOKIES_INSTRUCTIONS.md) - Сохраните файл как
instagram_cookies.txtв корне проекта - Формат: Netscape cookies file
Примечание: Без cookies Instagram может блокировать запросы.
4. Запуск основного бота
docker compose up -d
Бот запустится и будет готов к работе!
Проверить статус:
docker compose ps
docker compose logs -f bot
5. Запуск VK сервиса (опционально)
VK сервис можно запустить на том же хосте или на отдельном хосте без VPN:
cd vk-downloader
docker compose up -d
Для работы на отдельном хосте:
- Скопируйте папку
vk-downloaderна целевой хост - Запустите:
docker compose up -d - Обновите
VK_DOWNLOADER_URLв.envосновного бота:http://<ip_хоста>:5555
Использование
- Найдите вашего бота в Telegram по username
- Отправьте команду
/start - Отправьте ссылку на видео (YouTube, Instagram или VK)
- Дождитесь скачивания и получите файл
Команды
/start— начало работы с ботом/stat— статистика: количество пользователей и скачанных видео
Структура проекта
videoDownloadBot/
├── bot.py # Основной код бота
├── requirements.txt # Python зависимости
├── Dockerfile # Образ для основного бота
├── docker-compose.yml # Конфигурация основного бота
├── .env.example # Пример конфигурации
├── instagram_cookies.txt # Cookies для Instagram (создать вручную)
├── data/ # База данных SQLite (создается автоматически)
├── video/ # Временные файлы видео (создается автоматически)
└── vk-downloader/ # Микросервис для VK
├── app.py # Flask API сервис
├── Dockerfile # Образ для VK сервиса
└── docker-compose.yml # Конфигурация VK сервиса
Обновление
git pull
docker compose build
docker compose up -d
Логи
Просмотр логов основного бота:
docker compose logs -f bot
Просмотр логов VK сервиса:
cd vk-downloader
docker compose logs -f
Остановка
# Основной бот
docker compose down
# VK сервис
cd vk-downloader
docker compose down
Развертывание на продакшене
Вариант 1: Все на одном хосте (с VPN)
- Настройте VPN для доступа к YouTube и Instagram
- Запустите основной бот и VK сервис на одном хосте
- В
.envукажите:VK_DOWNLOADER_URL=http://localhost:5555
Вариант 2: Раздельное развертывание (рекомендуется)
Хост 1 (с VPN):
- Основной бот (YouTube, Instagram)
- В
.env:VK_DOWNLOADER_URL=http://<ip_хоста_2>:5555
Хост 2 (без VPN):
- VK сервис (
vk-downloader/) - В
.envосновного бота: IP этого хоста
Преимущества:
- VK работает быстрее без VPN
- Меньше нагрузка на VPN канал
- Возможность масштабирования VK сервиса отдельно
Troubleshooting
Бот не отвечает
- Проверьте логи:
docker compose logs bot - Убедитесь, что токен правильный в
.env
Instagram не работает
- Проверьте наличие
instagram_cookies.txt - Обновите cookies (они могут истечь)
VK не работает
- Проверьте, что VK сервис запущен:
cd vk-downloader && docker compose ps - Проверьте URL в
.env:VK_DOWNLOADER_URL - Проверьте доступность порта 5555
База данных не сохраняется
- Проверьте права на папку
data/ - Убедитесь, что volume смонтирован в
docker-compose.yml
Лицензия
MIT
Поддержка
При возникновении проблем создайте issue в репозитории.