Загрузить файлы в «/»
This commit is contained in:
parent
f24f00fd73
commit
7a1d6aa9f4
2 changed files with 238 additions and 0 deletions
119
README.ru.md
Normal file
119
README.ru.md
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# ebany video bot
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
# Translation:
|
||||
[](README.md)
|
||||
[](README.ua.md)
|
||||
[](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
119
README.ua.md
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# ebany video bot
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
# Translation:
|
||||
[](README.md)
|
||||
[](README.ua.md)
|
||||
[](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).
|
||||
Loading…
Add table
Add a link
Reference in a new issue