ebany_video_bot/R.ua.md

119 lines
6.3 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.

# 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).