# ebany video bot ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?style=for-the-badge&logo=python) ![Telegram](https://img.shields.io/badge/Telegram-Bot-2CA5E0?style=for-the-badge&logo=telegram) ![yt-dlp](https://img.shields.io/badge/yt--dlp-Enabled-red?style=for-the-badge&logo=youtube) ![FFmpeg](https://img.shields.io/badge/FFmpeg-Enabled-green?style=for-the-badge&logo=ffmpeg) # Translation: [![English](https://img.shields.io/badge/Language-🇺🇸_English-navy?style=for-the-badge)](README.md) [![Українська](https://img.shields.io/badge/Мова-🇺🇦_Українська-yellow?style=for-the-badge)](R.ua.md) [![Русский](https://img.shields.io/badge/Язык-🇷🇺_Русский-blue?style=for-the-badge)](R.ru.md) --- Цей Telegram-бот призначений для зручного завантаження медіафайлів за посиланнями з популярних соціальних мереж. Бот автоматично завантажує відео в найкращій доступній якості, адаптує їх для нативного програвача Telegram, а також може витягувати аудіодоріжки. ## Можливості * **Мультиплатформеність**: * Підтримує посилання з **YouTube** (включаючи Shorts), **TikTok**, **Instagram** (Reels/Posts) та **SoundCloud**. * Пропонує вибір: завантажити як **Відео** або **Аудіо**. (Для SoundCloud також можна завантажити **обкладинку**). * **Обробка відео**: * Примусове перетворення та вибір кодеку в **H.264 (MP4)** для безперебійного відтворення прямо в чаті Telegram. * Підтримує потокове передавання відео (користувачі можуть почати перегляд до повного завантаження файлу в кеш). * Збереження оригінальної якості: відео надсилаються як несжаті документи, щоб уникнути вбудованого стиснення Telegram. * **Витягування аудіо та метаданих**: * Конвертує аудіодоріжки у формат **MP3** (320kbps). * Автоматично вбудовує якісну обкладинку безпосередньо в завантажені файли MP3. * Витягує оригінальні обкладинки треків (мініатюри) та надсилає їх як несжаті файли з динамічними, безпечними іменами файлів. * **Логування**: * Веде детальні логи з щоденною ротацією в директорії `logs/`. * **Асинхронність**: * Завантаження файлів не блокує роботу бота для інших користувачів завдяки `asyncio.to_thread`. ## Вимоги Для запуску бота вам знадобиться: 1. **Python 3.8+** 2. **FFmpeg** (на рівні системи) — критично важливо для коректної роботи `yt-dlp` (об'єднання відео та аудіо, конвертація кодеків). ### Встановлення FFmpeg: * **Ubuntu/Debian**: `sudo apt update && sudo apt upgrade && sudo apt install ffmpeg` * **Windows**: * **Спосіб 1 (Рекомендований):** Відкрийте термінал (PowerShell або CMD) та виконайте: ```cmd winget install Gyan.FFmpeg ``` > **⚠️ Команда "winget" не знайдена?** > Якщо ви використовуєте старішу версію Windows 10, завантажте та встановіть **App Installer** з [офіційних релізів на GitHub](https://github.com/microsoft/winget-cli/releases) (знайдіть файл `.msixbundle`). * **Спосіб 2 (Ручний):** Завантажте архів з [офіційного репозиторію](https://github.com/GyanD/codexffmpeg/releases), розпакуйте його та додайте шлях до папки `bin` до змінних середовища вашої системи (PATH). ```cmd C:\ffmpeg\bin ``` * **MacOS**: `brew install ffmpeg` ## Встановлення та використання ### 1. Клонуйте репозиторій ```bash git clone https://github.com/Vovan999222/ebany_video_bot.git cd ebany_video_bot ``` ### 2. Створіть віртуальне середовище (Рекомендовано) ```bash python -m venv venv # Windows: venv\Scripts\activate # Linux/Mac: source venv/bin/activate ``` ### 3. Встановіть залежності Ви можете встановити бібліотеки вручну: ```bash pip install aiogram yt-dlp mutagen ``` Або створіть файл `requirements.txt` та встановте через: ```bash pip install -r requirements.txt ``` ### 4. Налаштування Відкрийте файл `config.py` та знайдіть наступний рядок: ```python TOKEN = "" # Вставте ваш токен від @BotFather тут ``` Вставте токен вашого бота всередину лапок. ### 5. Запустіть бота ```bash python bot.py ``` ## Технічні деталі * **Обмеження**: Бот обробляє та надсилає файли розміром до **50 МБ** (обмеження Telegram Bot API). * **Відео**: Налаштування `yt-dlp` примусово запитують формат `bestvideo[ext=mp4][vcodec^=avc]` для виключення кодеків AV1/VP9, які не підтримуються вбудованим програвачем Telegram. * **Аудіо**: Обробляється через `FFmpegExtractAudio` з кодеком MP3. ## Ліцензія Цей проект розповсюджується за [ліцензією MIT](https://raw.githubusercontent.com/Vovan999222/ebany_video_bot/refs/heads/main/LICENSE).