Files
audio-tempo-bot/README.md
2025-11-01 00:10:38 +04:00

164 lines
6.6 KiB
Markdown
Raw 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.
# 🎵 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 музыки