скачивание аудиодорожки в телеграм бот по ссылке на ютуб
| app | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
| youtube_mp3_telegram_service_TZ.md | ||
YouTube → MP3 Telegram Service
Сервис для скачивания аудио из YouTube видео через Telegram ботов.
Описание
Сервис состоит из двух Telegram ботов:
- User-bot — принимает ссылки на YouTube видео и возвращает MP3 файлы
- Admin-bot — получает уведомления о всех скачанных файлах с метаданными
Требования
- Docker и Docker Compose
- Ubuntu 24.04 (или другая Linux система)
- Токены Telegram ботов
Установка и запуск
-
Скопируйте
.env.exampleв.env:cp .env.example .env -
Отредактируйте
.envи укажите токены ваших ботов:IS_PROD=false TG_USER_BOT_TOKEN_TEST=your_test_user_bot_token TG_ADMIN_BOT_TOKEN_TEST=your_test_admin_bot_token TG_USER_BOT_TOKEN_PROD=your_prod_user_bot_token TG_ADMIN_BOT_TOKEN_PROD=your_prod_admin_bot_token -
Запустите сервис:
docker compose up -d --build -
Просмотр логов:
docker compose logs -f -
Остановка сервиса:
docker compose down
Использование
User-bot
Отправьте боту ссылку на YouTube видео:
https://www.youtube.com/watch?v=...https://youtu.be/...
Бот обработает запрос и отправит вам MP3 файл с названием, идентичным названию видео.
Admin-bot
- Напишите admin-bot команду
/startдля регистрации в качестве администратора - Вы будете получать уведомления о всех скачанных файлах:
- Название файла
- Username пользователя (или user_id)
- Исходная ссылка на видео
- Сам MP3 файл
Особенности
- Очередь задач: Все запросы обрабатываются последовательно (FIFO)
- Безопасные имена файлов: Автоматическая очистка запрещённых символов
- Обработка ошибок: Информативные сообщения об ошибках
- Логирование: Подробные логи всех операций
- Временные файлы: Автоматическое удаление после отправки
Структура проекта
.
├── app/
│ ├── __init__.py
│ ├── main.py # Главный файл запуска
│ ├── config.py # Конфигурация
│ ├── user_bot.py # User-bot
│ ├── admin_bot.py # Admin-bot
│ ├── queue_manager.py # Менеджер очереди
│ ├── youtube_downloader.py # Скачивание и конвертация
│ └── admin_manager.py # Управление администраторами
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env.example
└── README.md
Переменные окружения
IS_PROD— режим работы (true/false)TG_USER_BOT_TOKEN_PROD— токен user-bot для продакшенаTG_ADMIN_BOT_TOKEN_PROD— токен admin-bot для продакшенаTG_USER_BOT_TOKEN_TEST— токен user-bot для тестаTG_ADMIN_BOT_TOKEN_TEST— токен admin-bot для тестаADMIN_CHAT_ID— (опционально) ID чата для отправки уведомленийWORKDIR— рабочая директория для временных файлов (по умолчанию/data)LOG_LEVEL— уровень логирования (по умолчаниюINFO)
Логи
Логи доступны через:
docker compose logs -f
Или для конкретного сервиса:
docker compose logs -f youtube-mp3-service