Этот проект представляет собой Telegram-бота на базе aiogram, который скачивает аудио с YouTube, автоматически разбивает большие файлы на части с помощью ffmpeg, и отправляет их пользователю. Бот также использует Celery и Redis для фоновой обработки, Docker для контейнеризации и Flower для мониторинга задач.
- Простой интерфейс: Просто отправьте боту ссылку на видео — он сам скачает аудио, и пришлёт вам готовое аудио.
- Система избранного: Понравился трек? Добавьте его в избранное одним нажатием! Бот запомнит его, чтобы вы могли вернуться к нему позже. Передумали? Просто нажмите 👎, и трек исчезнет из избранного.
- Разделение больших файлов: Если файл слишком большой для Telegram, бот автоматически разобьёт его на части с помощью ffmpeg и отправит вам по очереди.
- Фоновая обработка: Разбиение большого аудио на части происходит с использованием Celery и Redis. Для удобства отслеживания добавлен Flower.
- Временная директория: Аудио не хранятся в БД, а находятся в общем томе (Для Celery и бота) и удаляются после обработки.
- Клонируйте репозиторий
git clone https://github.com/dagedarr/youtube-music-bot.git
cd youtube-music-bot/
Если вы не используете Git, то вы можете просто скачать исходный код репозитория в ZIP-архиве и распаковать его на свой компьютер.
- Переименуйте .env.example в .env и следуйте инструкциям внутри этого файла
- Запустите docker-compose
cd infra/
docker-compose up -d
- Примените миграции как запустится БД
docker-compose exec app alembic upgrade head
- В директории youtube-music-bot выполните следующие команды:
python main.py
celery -A tasks.tasks:app worker --loglevel=INFO --pool=solo
celery -A tasks.tasks:app flower
Вы успешно установили бота и готовы начать его использовать!
Если у вас есть предложения по улучшению или вы обнаружили баг, не стесняйтесь создать issue, отправить pull request либо написать напрямую автору. Ваш вклад приветствуется!