Reviewed-on: http://10.0.1.48:3010/smolkik_adm/downloads-all-bot/pulls/1
🚀 DownloadSM 2.0 — Telegram Media Downloader
Telegram-бот для скачивания видео и аудио из различных источников (YouTube, TikTok, Instagram и др.) с поддержкой локального API, кэширования и автоматического сжатия.
✨ Особенности
- Высокое качество: Выбор качества видео (720p, 1080p и т.д.).
- Конвертация в MP3: Быстрое извлечение аудиодорожки.
- Smart Compression: Автоматическое сжатие видео через
FFmpeg, если файл слишком тяжелый. - Local Telegram API: Поддержка отправки файлов размером до 2 ГБ через локальный сервер API.
- Кэширование: Повторные запросы одной и той же ссылки обрабатываются мгновенно.
- Dockerized Setup: Простая установка и запуск всего стека через
docker-compose.
🛠 Технологии
- Python 3.11+
- Aiogram 3.x (Telegram Bot Framework)
- yt-dlp (Ядро загрузчика)
- FFmpeg (Для обработки и сжатия медиа)
- Docker &
docker-compose.yml(Оркестрация) - WireGuard (VPN-туннель для локального API)
🔑 Получение API_ID и API_HASH
Для работы локального сервера Telegram API (который позволяет скачивать файлы размером >50 МБ) вам потребуются специальные ключи: TELEGRAM_API_ID и TELEGRAM_API_HASH.
- Авторизуйтесь в своем аккаунте Telegram через веб-интерфейс: перейдите по ссылке https://my.telegram.org.
- Перейдите в раздел "API development tools" (Инструменты разработки API).
- Заполните форму для создания нового приложения (App title, Short name могут быть любыми, например, "DownloadBot", "DSMBot"). Для поля Platform можете выбрать "Other" или "Desktop".
- Нажмите "Create application".
- На открывшейся странице вы увидите сгенерированные значения
App api_idиApp api_hash. Скопируйте их. - Вставьте эти значения в ваш файл
.envв корне проекта.
TELEGRAM_API_ID=ВАШ_СКОПИРОВАННЫЙ_ID
TELEGRAM_API_HASH=ВАШ_СКОПИРОВАННЫЙ_ХЭШ
🚀 Быстрый старт (Рекомендуемый способ) Для запуска всех трех сервисов (VPN, Telegram API Server, Бот) используйте Docker Compose.
- Клонирование репозитория
git clone github.com
cd DownloadSM_2.0
- Настройка
.envфайла
cp .env.example .env
- Запуск сервисов
docker compose up -d --build
Эта команда соберет образ бота, запустит контейнеры и свяжет их между собой через VPN-туннель. 4. Проверка Вы можете проверить статус контейнеров командой:
docker compose ps
⚙️ Использование (После запуска) Просто отправьте боту ссылку на поддерживаемый медиа-ресурс (YouTube, TikTok и т.д.), и он предложит выбрать формат загрузки. 📂 Структура проекта main.py — Точка входа и логика хэндлеров. downloader.py — Логика взаимодействия с yt-dlp. info.py — Извлечение метаданных видео. cache.py — Управление кэшированными файлами. keyboards.py — Интерактивные меню бота. 🤝 Контакты Автор: @smolkik-code Проект создан в учебных и практических целях.