ebany_video_bot/R.ru.md

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

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