Телеграм-бот-викторина для угадывания песен популярных исполнителей. Бот выбирает случайный трек артиста из Spotify, скачивает его с YouTube, вырезает случайный 15-секундный фрагмент и предлагает пользователю угадать название песни.
- Поиск артиста через Spotify API
- Выбор случайного топ-трека исполнителя
- Загрузка аудио с YouTube с помощью yt-dlp
- Обрезка случайного 15-секундного фрагмента (pydub)
- Интерактивные кнопки с вариантами ответа (InlineKeyboard)
- Асинхронная работа (AsyncTeleBot, asyncio)
-
Пользователь вводит команду:
/game <имя артиста> -
Бот:
- находит артиста в Spotify
- выбирает случайный трек из топ-10
- скачивает трек
- вырезает случайные 15 секунд
-
Пользователю отправляется аудио и 3 варианта ответа
-
После нажатия кнопки бот сообщает, правильный ли выбор
Убедитесь, что у вас установлен Python 3.9+
pip install pyTelegramBotAPI spotipy yt-dlp pydub spotdlТакже требуется установленный FFmpeg:
sudo apt install ffmpegbrew install ffmpegСкачать с https://ffmpeg.org и добавить в PATH
-
Перейдите на https://developer.spotify.com/dashboard
-
Создайте приложение
-
Скопируйте:
- Client ID
- Client Secret
- Redirect URI
Вставьте данные в код:
SPOTIFY_CLIENT_ID = "your_client_id"
SPOTIFY_CLIENT_SECRET = "your_client_secret"
SPOTIFY_REDIRECT_URI = "http://localhost:8888/callback"- Создайте бота через @BotFather
- Получите токен
- Вставьте токен:
bot = AsyncTeleBot('YOUR_TELEGRAM_BOT_TOKEN')python main.py.
├── main.py
├── downloads/
│ └── <chat_id>.mp3
├── README.md
- Проект использует загрузку аудио с YouTube — убедитесь, что вы соблюдаете правила и законы вашей страны
- Spotify используется только для получения метаданных, не для скачивания