Initial commit
This commit is contained in:
163
README.md
Normal file
163
README.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# 🎵 Audio Tempo Bot
|
||||
|
||||
Telegram бот для изменения скорости и pitch аудио файлов. Поддерживает замедление/ускорение треков с сохранением метаданных и автоматической конвертацией для Telegram.
|
||||
|
||||
## ✨ Возможности
|
||||
|
||||
- 🐌 **Замедление** и 🚀 **ускорение** аудио файлов
|
||||
- 📊 **Стандартные пресеты**: -20% (slowed) и +20% (speed up)
|
||||
- ✏️ **Ручной ввод** коэффициента скорости (0.1 - 5.0)
|
||||
- 🎬 **Поддержка видео** - автоматическое извлечение аудио
|
||||
- 🎵 **Множество форматов**: MP3, FLAC, WAV, OGG, M4A, AAC, OPUS и другие
|
||||
- 📝 **Сохранение метаданных**: ID3 теги, artist, album и другие
|
||||
- 🏷️ **Автоматические теги**: добавление "(Slowed)" или "(Speed Up)" в title и имя файла
|
||||
- 📤 **Умная отправка**: автоматическая конвертация FLAC в MP3 для воспроизведения в Telegram
|
||||
- 🗑️ **Автоочистка**: файлы удаляются через 24 часа
|
||||
|
||||
## 📋 Требования
|
||||
|
||||
- Python 3.8+
|
||||
- [ffmpeg](https://ffmpeg.org/download.html) с поддержкой libmp3lame, flac, aac
|
||||
- Telegram Bot Token (получить у [@BotFather](https://t.me/BotFather))
|
||||
|
||||
## 🚀 Установка
|
||||
|
||||
1. **Клонируйте репозиторий:**
|
||||
```bash
|
||||
git clone https://github.com/yourusername/audio-tempo-bot.git
|
||||
cd audio-tempo-bot
|
||||
```
|
||||
|
||||
2. **Установите зависимости:**
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. **Установите ffmpeg:**
|
||||
|
||||
**Ubuntu/Debian:**
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install ffmpeg
|
||||
```
|
||||
|
||||
**macOS:**
|
||||
```bash
|
||||
brew install ffmpeg
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
Скачайте с [официального сайта](https://ffmpeg.org/download.html) или используйте [chocolatey](https://chocolatey.org/):
|
||||
```bash
|
||||
choco install ffmpeg
|
||||
```
|
||||
|
||||
4. **Настройте бота:**
|
||||
```bash
|
||||
cp env.example .env
|
||||
```
|
||||
|
||||
Отредактируйте `.env` файл и укажите ваш токен бота:
|
||||
```
|
||||
BOT_TOKEN=your_bot_token_here
|
||||
FILE_CLEANUP_HOURS=24
|
||||
MAX_FILE_SIZE_MB=100
|
||||
```
|
||||
|
||||
## 🎯 Использование
|
||||
|
||||
1. **Запустите бота:**
|
||||
```bash
|
||||
python bot.py
|
||||
```
|
||||
|
||||
2. **Используйте в Telegram:**
|
||||
- Отправьте боту аудио или видео файл
|
||||
- Выберите действие:
|
||||
- 🐌 **Slowed (-20%)** - замедление на 20%
|
||||
- 🚀 **Speed Up (+20%)** - ускорение на 20%
|
||||
- ✏️ **Ввести вручную** - введите коэффициент (например, 0.8 или 1.5)
|
||||
|
||||
3. **Получите результат:**
|
||||
- Для MP3/OGG/M4A - один файл для воспроизведения в Telegram
|
||||
- Для FLAC/WAV - два файла: MP3 (для прослушивания) и оригинальный формат
|
||||
|
||||
## 📖 Примеры
|
||||
|
||||
**Стандартные варианты:**
|
||||
- `0.8` = замедление на 20% (slowed)
|
||||
- `1.2` = ускорение на 20% (speed up)
|
||||
- `0.5` = замедление в 2 раза
|
||||
- `2.0` = ускорение в 2 раза
|
||||
|
||||
**Диапазон:** от 0.1 до 5.0
|
||||
|
||||
## 🔧 Конфигурация
|
||||
|
||||
Настройки можно изменить в файле `.env`:
|
||||
|
||||
- `BOT_TOKEN` - токен бота Telegram (обязательно)
|
||||
- `FILE_CLEANUP_HOURS` - время хранения файлов в часах (по умолчанию 24)
|
||||
- `MAX_FILE_SIZE_MB` - максимальный размер файла в МБ (по умолчанию 100)
|
||||
|
||||
## 📁 Структура проекта
|
||||
|
||||
```
|
||||
audio-tempo-bot/
|
||||
├── bot.py # Основной файл бота
|
||||
├── audio_processor.py # Обработка аудио (изменение скорости/pitch)
|
||||
├── cleanup.py # Автоматическая очистка старых файлов
|
||||
├── config.py # Конфигурация
|
||||
├── requirements.txt # Зависимости Python
|
||||
├── env.example # Пример конфигурации
|
||||
├── .gitignore
|
||||
├── README.md
|
||||
└── temp/ # Временные файлы (создается автоматически)
|
||||
```
|
||||
|
||||
## 🎨 Особенности
|
||||
|
||||
### Сохранение метаданных
|
||||
- Все ID3 теги сохраняются из исходного файла
|
||||
- Поле `title` обновляется с добавлением "(Slowed)" или "(Speed Up)"
|
||||
- Поле `artist` остается отдельно и не попадает в `title`
|
||||
|
||||
### Умная обработка форматов
|
||||
- **FLAC/WAV** → создается MP3 версия для Telegram + оригинальный формат
|
||||
- **MP3/OGG/M4A** → отправляется напрямую для воспроизведения
|
||||
- **Видео файлы** → автоматически извлекается аудио
|
||||
|
||||
### Безопасность
|
||||
- Автоматическая очистка временных файлов
|
||||
- Проверка размера файлов
|
||||
- Обработка ошибок и таймаутов
|
||||
|
||||
## 🤝 Вклад в проект
|
||||
|
||||
Приветствуются pull requests! Для крупных изменений сначала откройте issue для обсуждения.
|
||||
|
||||
## 📝 Лицензия
|
||||
|
||||
Этот проект распространяется под лицензией MIT. См. файл `LICENSE` для подробностей.
|
||||
|
||||
## ⚠️ Замечания
|
||||
|
||||
- Для обработки больших файлов требуется время
|
||||
- Telegram ограничивает размер файлов (20 МБ для обычных ботов, 50 МБ для Premium)
|
||||
- Убедитесь, что ffmpeg установлен и доступен в PATH
|
||||
|
||||
## 🐛 Известные проблемы
|
||||
|
||||
Если возникают проблемы:
|
||||
- Проверьте, что ffmpeg установлен: `ffmpeg -version`
|
||||
- Убедитесь, что токен бота указан правильно в `.env`
|
||||
- Проверьте логи в файле `bot.log`
|
||||
|
||||
## 📞 Поддержка
|
||||
|
||||
Если у вас возникли вопросы или проблемы, откройте [issue](https://github.com/yourusername/audio-tempo-bot/issues) на GitHub.
|
||||
|
||||
---
|
||||
|
||||
Сделано с ❤️ для любителей slowed/speed-up музыки
|
||||
|
||||
Reference in New Issue
Block a user