2025-11-01 00:10:38 +04:00
2025-11-01 00:05:56 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:05:56 +04:00
2025-11-01 00:10:38 +04:00
2025-11-01 00:10:38 +04:00

🎵 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)

🚀 Установка

  1. Клонируйте репозиторий:
git clone https://github.com/yourusername/audio-tempo-bot.git
cd audio-tempo-bot
  1. Установите зависимости:
pip install -r requirements.txt
  1. Установите ffmpeg:

    Ubuntu/Debian:

    sudo apt update
    sudo apt install ffmpeg
    

    macOS:

    brew install ffmpeg
    

    Windows: Скачайте с официального сайта или используйте chocolatey:

    choco install ffmpeg
    
  2. Настройте бота:

    cp env.example .env
    

    Отредактируйте .env файл и укажите ваш токен бота:

    BOT_TOKEN=your_bot_token_here
    FILE_CLEANUP_HOURS=24
    MAX_FILE_SIZE_MB=100
    

🎯 Использование

  1. Запустите бота:
python bot.py
  1. Используйте в Telegram:

    • Отправьте боту аудио или видео файл
    • Выберите действие:
      • 🐌 Slowed (-20%) - замедление на 20%
      • 🚀 Speed Up (+20%) - ускорение на 20%
      • ✏️ Ввести вручную - введите коэффициент (например, 0.8 или 1.5)
  2. Получите результат:

    • Для 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 музыки

Description
No description provided
Readme MIT 46 KiB
Languages
Python 100%