скачивание аудиодорожки в телеграм бот по ссылке на ютуб
Find a file
2026-01-28 17:48:52 +03:00
app исправили баг когда видео из плейлиста 2026-01-28 17:48:52 +03:00
.env.example Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
.gitignore Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
docker-compose.yml Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
Dockerfile Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
README.md Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
requirements.txt Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00
youtube_mp3_telegram_service_TZ.md Fix bot polling, downloads, and file delivery 2026-01-28 14:45:56 +03:00

YouTube → MP3 Telegram Service

Сервис для скачивания аудио из YouTube видео через Telegram ботов.

Описание

Сервис состоит из двух Telegram ботов:

  1. User-bot — принимает ссылки на YouTube видео и возвращает MP3 файлы
  2. Admin-bot — получает уведомления о всех скачанных файлах с метаданными

Требования

  • Docker и Docker Compose
  • Ubuntu 24.04 (или другая Linux система)
  • Токены Telegram ботов

Установка и запуск

  1. Скопируйте .env.example в .env:

    cp .env.example .env
    
  2. Отредактируйте .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
    
  3. Запустите сервис:

    docker compose up -d --build
    
  4. Просмотр логов:

    docker compose logs -f
    
  5. Остановка сервиса:

    docker compose down
    

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

User-bot

Отправьте боту ссылку на YouTube видео:

  • https://www.youtube.com/watch?v=...
  • https://youtu.be/...

Бот обработает запрос и отправит вам MP3 файл с названием, идентичным названию видео.

Admin-bot

  1. Напишите admin-bot команду /start для регистрации в качестве администратора
  2. Вы будете получать уведомления о всех скачанных файлах:
    • Название файла
    • 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