2026-01-06 00:44:56 +07:00
2026-01-05 20:37:55 +07:00
2026-01-06 00:44:56 +07:00
2026-01-02 17:48:48 +07:00
2026-01-02 17:48:48 +07:00
2026-01-02 17:48:48 +07:00
2026-01-02 17:48:48 +07:00
2026-01-02 17:48:48 +07:00

🚀 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.

  1. Авторизуйтесь в своем аккаунте Telegram через веб-интерфейс: перейдите по ссылке https://my.telegram.org.
  2. Перейдите в раздел "API development tools" (Инструменты разработки API).
  3. Заполните форму для создания нового приложения (App title, Short name могут быть любыми, например, "DownloadBot", "DSMBot"). Для поля Platform можете выбрать "Other" или "Desktop".
  4. Нажмите "Create application".
  5. На открывшейся странице вы увидите сгенерированные значения App api_id и App api_hash. Скопируйте их.
  6. Вставьте эти значения в ваш файл .env в корне проекта.
TELEGRAM_API_ID=ВАШ_СКОПИРОВАННЫЙ_ID
TELEGRAM_API_HASH=ВАШ_СКОПИРОВАННЫЙ_ХЭШ

🚀 Быстрый старт (Рекомендуемый способ) Для запуска всех трех сервисов (VPN, Telegram API Server, Бот) используйте Docker Compose.

  1. Клонирование репозитория
git clone github.com
cd DownloadSM_2.0
  1. Настройка .env файла
cp .env.example .env 
  1. Запуск сервисов
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 Проект создан в учебных и практических целях.

Description
No description provided
Readme 114 KiB
Languages
Python 99.3%
Dockerfile 0.7%