# 🎵 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/kilyabin/audio-tempo-bot/issues) на GitHub. --- Сделано с ❤️ для любителей slowed/speed-up музыки