feat(shazam): реальный двухстадийный флоу shazam-api.com (recognize → poll)

- ShazamClient: POST /api/recognize (multipart file) → uuid, затем поллинг
  POST /api/results/{uuid} до status="completed" (12×1.2с ≈ до 15с)
- из ответа берём track.title (песня) и track.subtitle (исполнитель); обложки
  в API нет — подтягиваем из нашей БД по normKey (resolveCover в сервисе)
- авторизация Authorization: Bearer; база https://shazam-api.com/api по умолч.
- SHAZAM_API_KEY проброшен в docker-compose + .env.example (значение — на сервере)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nk
2026-06-07 18:45:00 +03:00
parent 1616c231b7
commit 059ebc9c45
3 changed files with 77 additions and 67 deletions

View File

@@ -21,6 +21,10 @@ PORT=3000
# Обогащение треков (Discogs): личный токен из discogs.com → Settings → Developers
DISCOGS_TOKEN=
# Распознавание треков (shazam-api.com): ключ из ЛК (Authorization: Bearer)
SHAZAM_API_KEY=
# База API Shazam (необязательно, по умолчанию https://shazam-api.com/api)
# SHAZAM_API_URL=https://shazam-api.com/api
# Базовый публичный URL бэкенда — для абсолютных ссылок на обложки (/covers/*.webp)
PUBLIC_BASE_URL=http://121.127.37.212:3000
# Каталог для сохранённых обложек (в docker — volume /data/covers)