Загрузить файлы в «/»

This commit is contained in:
themaster1970sf 2026-04-09 17:04:44 +03:00
parent f24f00fd73
commit 7a1d6aa9f4
2 changed files with 238 additions and 0 deletions

119
README.ru.md Normal file
View file

@ -0,0 +1,119 @@
# 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)](README.ua.md)
[![Русский](https://img.shields.io/badge/Язык-🇷🇺_Русский-blue?style=for-the-badge)](README.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).

119
README.ua.md Normal file
View file

@ -0,0 +1,119 @@
# 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)](README.ua.md)
[![Русский](https://img.shields.io/badge/Язык-🇷🇺_Русский-blue?style=for-the-badge)](README.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).