Трансляции и повторы
Живой счёт кортов — из облака, публично. Видеотрансляция корта — с сервера корта клуба. Хайлайты и разбор матча — в облаке, только для участников; поделиться клипом можно публичной ссылкой.
Живой счёт клуба
GET /v1/live/{club_id} — публичный метод без авторизации. Возвращает счёт идущих матчей на кортах клуба, отсортированный по имени корта.
curl "https://адрес-вашего-сервера/api/v1/live/c1"
# → {"items": [{"court": "court4", "score": "6:4 3:2 · 30-15",
# "teams": "Иван/Олег — Анна/Мария", "set_no": 2, "on_air": true}]}- Счёт корта присылает сервер корта (
POST /v1/ingest/live); если 180 секунд обновлений нет, корт пропадает из ответа. Пустой список — сейчас никто не играет со счётом. scoreиteams— готовые строки для показа;on_air: true— на корте идёт видеотрансляция.- Опрашивайте раз в несколько секунд; вызывайте со своего сервера — из браузера на чужом домене запрос не пройдёт (см. ограничения).
Готовое табло для экрана в клубе: https://адрес-вашего-сервера/api/tv/<id клуба> — страница сама обновляет счёт каждые 3 секунды.
Видеотрансляция корта
Видео идёт не через облако, а прямо с сервера корта клуба. Адрес сервера корта клуб получает при подключении. Страницы и списки трансляции открываются без PIN — в них то же, что и так видно в кадре.
| Адрес на сервере корта | Что отдаёт |
|---|---|
/watch?court=<корт> | Страница просмотра трансляции корта для зрителя |
/live.json | Корты в эфире: court, teams, score, stream (основной поток HLS), stream_auto (список качеств), qualities, watch (ссылка на страницу просмотра) |
/live/<корт>/state.json | Идёт ли трансляция корта и счёт |
/live/<корт>/cams.json | Камеры эфира для переключателя и сетка «Все камеры», с признаком готовности потока |
/live/<корт>/index.m3u8, master.m3u8 | Поток HLS: основной и общий список качеств для автоматического выбора |
- Пути в
/live.jsonотносительные — добавляйте к ним адрес сервера корта. - Поток открывается, только пока трансляция идёт: после матча по старой ссылке ответ
404. - Дополнительные камеры и «Все камеры» поднимаются, когда зритель их выбрал, и гаснут без просмотров — не встраивайте их в постоянный опрос.
Повторы и хайлайты матча
После матча сервер корта отправляет в облако результат, статистику и клипы (см. «Сервер корта и облако»). Игрок видит всё в карточке матча:
GET /v1/matches/my— последние матчи игрока;GET /v1/matches/{match_id}— карточка: счёт, AI-статистика, хайлайты по моментам (главный клип, ракурсы других камер, вертикальная копия 9:16), движение.- Карточка отдаётся только участникам матча; посторонним —
404. - Ссылки на видео подписываются при каждом запросе карточки и живут минуты (по умолчанию 15). Не храните их — запрашивайте карточку заново. Пустой
urlиready: false— видео ещё едет в хранилище. - У клипа может быть несколько качеств (
renditions): основное 720p и облегчённые копии для слабой связи. GET /v1/cv/match/{match_id}— розыгрыши с траекториями мяча и тепловая карта для своей визуализации.GET /v1/matches/{match_id}/review— текстовый разбор игры, если он включён.
Поделиться клипом
curl -X POST "https://адрес-вашего-сервера/api/v1/matches/8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20/clips/f0c3a8e1-4d27-4b96-a5e3-9c18d2b7f604/share" \
-H "Authorization: Bearer <токен игрока>"
# → {"url": "https://адрес-вашего-сервера/card/clip/<токен>", "title": "Смэш в сетку"}Ссылка ведёт на публичную страницу клипа с превью для соцсетей. Получить её может только участник матча.
Отметить розыгрыш
Игрок нажимает «в нарезку» сразу после красивого розыгрыша — POST /v1/matches/mark. Корт берётся из идущей брони игрока; отметка уходит на сервер корта с ответом на его отчёт о здоровье и поднимает ближайший розыгрыш в отборе хайлайтов.