Files
downloads-all-bot/README.md
2026-01-02 17:48:48 +07:00

71 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 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+](www.python.org)
- [Aiogram 3.x](docs.aiogram.dev) (Telegram Bot Framework)
- [yt-dlp](github.com) (Ядро загрузчика)
- [FFmpeg](ffmpeg.org) (Для обработки и сжатия медиа)
- [Docker](www.docker.com) & `docker-compose.yml` (Оркестрация)
- [WireGuard](www.wireguard.com) (VPN-туннель для локального API)
## 🔑 Получение `API_ID` и `API_HASH`
Для работы локального сервера Telegram API (который позволяет скачивать файлы размером >50 МБ) вам потребуются специальные ключи: `TELEGRAM_API_ID` и `TELEGRAM_API_HASH`.
1. **Авторизуйтесь** в своем аккаунте Telegram через веб-интерфейс: перейдите по ссылке [https://my.telegram.org](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`** в корне проекта.
```dotenv
TELEGRAM_API_ID=ВАШ_СКОПИРОВАННЫЙ_ID
TELEGRAM_API_HASH=ВАШ_СКОПИРОВАННЫЙ_ХЭШ
```
🚀 Быстрый старт (Рекомендуемый способ)
Для запуска всех трех сервисов (VPN, Telegram API Server, Бот) используйте Docker Compose.
1. Клонирование репозитория
```bash
git clone github.com
cd DownloadSM_2.0
````
2. Настройка `.env` файла
```bash
cp .env.example .env
````
3. Запуск сервисов
```bash
docker compose up -d --build
````
Эта команда соберет образ бота, запустит контейнеры и свяжет их между собой через VPN-туннель.
4. Проверка
Вы можете проверить статус контейнеров командой:
```bash
docker compose ps
````
⚙️ Использование (После запуска)
Просто отправьте боту ссылку на поддерживаемый медиа-ресурс (YouTube, TikTok и т.д.), и он предложит выбрать формат загрузки.
📂 Структура проекта
main.py — Точка входа и логика хэндлеров.
downloader.py — Логика взаимодействия с yt-dlp.
info.py — Извлечение метаданных видео.
cache.py — Управление кэшированными файлами.
keyboards.py — Интерактивные меню бота.
🤝 Контакты
Автор: @smolkik-code
Проект создан в учебных и практических целях.