Refactor get_output_filename method to improve clarity and efficiency.
🎵 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 с поддержкой libmp3lame, flac, aac
- Telegram Bot Token (получить у @BotFather)
🚀 Установка
- Клонируйте репозиторий:
git clone https://github.com/yourusername/audio-tempo-bot.git
cd audio-tempo-bot
- Установите зависимости:
pip install -r requirements.txt
-
Установите ffmpeg:
Ubuntu/Debian:
sudo apt update sudo apt install ffmpegmacOS:
brew install ffmpegWindows: Скачайте с официального сайта или используйте chocolatey:
choco install ffmpeg -
Настройте бота:
cp env.example .envОтредактируйте
.envфайл и укажите ваш токен бота:BOT_TOKEN=your_bot_token_here FILE_CLEANUP_HOURS=24 MAX_FILE_SIZE_MB=100
🎯 Использование
- Запустите бота:
python bot.py
-
Используйте в Telegram:
- Отправьте боту аудио или видео файл
- Выберите действие:
- 🐌 Slowed (-20%) - замедление на 20%
- 🚀 Speed Up (+20%) - ускорение на 20%
- ✏️ Ввести вручную - введите коэффициент (например, 0.8 или 1.5)
-
Получите результат:
- Для 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 на GitHub.
Сделано с ❤️ для любителей slowed/speed-up музыки