119 lines
6.3 KiB
Markdown
119 lines
6.3 KiB
Markdown
# ebany video bot
|
||
|
||

|
||

|
||

|
||

|
||
|
||
# Translation:
|
||
[](README.md)
|
||
[](R.ua.md)
|
||
[](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).
|