Всплеск

API Всплеска

Подключайте прямые эфиры и записи, получайте клипы с субтитрами вебхуком. Все запросы — JSON по HTTPS, базовый адрес:

BASEhttps://api-live.neuroseti.info/api/v1

Ключи

Ключ передаётся в заголовке Authorization. В кабинете их два вида: vs_live_… для работы и vs_test_… для песочницы — в ней эфиры не обрабатываются, а вебхуки приходят с тестовыми клипами.

HEADERAuthorization: Bearer vs_live_…

Без ключа или с отозванным ключом ответ — 401:

401Unauthorized
{ "detail": "Not authenticated" }

Подключить эфир

POST/streams

Для прямого эфира передайте RTMP- или HLS-адрес в source и mode: "live". Для записи — ссылку на файл и mode: "vod". Ответ приходит сразу со статусом connecting.

ПолеТипОписание
sourcestringRTMP/HLS-адрес трансляции или ссылка на запись.
modestringlive или vod.
clip_len[int, int]Минимальная и максимальная длина клипа в секундах. По умолчанию [15, 60].
min_scoreintПорог оценки от 0 до 100. Клипы ниже порога не рендерятся. По умолчанию 70.
langstringЯзык субтитров: ru, en или auto.
chatstringСсылка на лог или WebSocket чата — с ним моменты находятся точнее.
template_idstringШаблон субтитров и обложки.
webhook_urlstringКуда присылать события по клипам.

Статус эфира

GET/streams/{id}

Статус проходит стадии connecting → watching → finished или failed. Пока эфир идёт, в clips_ready растёт число готовых клипов.

200OK
{
  "id": "str_51d0c3e8",
  "status": "watching",
  "elapsed_sec": 6455,
  "clips_ready": 3,
  "chat_rate": 41
}
DELETE/streams/{id}

Остановить наблюдение досрочно. Уже готовые клипы сохраняются.

Клипы

GET/streams/{id}/clips

Список клипов эфира по убыванию оценки. Ссылки на файлы в files действуют 24 часа — забирайте клипы в своё хранилище.

ПолеОписание
atВремя момента в эфире, HH:MM:SS
scoreОценка от 0 до 100
reasonСработавшие сигналы: chat_spike, voice_peak, laugh, donation, viewers_up
titlesТри варианта заголовка
filesmp4 (1080×1920), srt, cover.jpg

Шаблоны

Шаблон задаёт шрифт и цвета субтитров, подсветку текущего слова, положение текста и плашку с названием канала. Создаётся в кабинете, дальше передавайте его template_id. Список шаблонов — GET /templates.

Если шаблон не указан, используется стандартный: крупный белый текст, текущее слово — жёлтым, без плашки.

Вебхуки

На каждое событие мы шлём POST на ваш webhook_url. Заголовок X-Vsplesk-Signature — HMAC-SHA256 от тела запроса на секрете вебхука; сверяйте его, прежде чем доверять данным. Если ваш сервер не ответил 2xx, повторим до 8 раз с растущей паузой.

СобытиеКогда приходит
clip.readyКлип отрендерен, ссылки на файлы внутри
stream.finishedЭфир закончился, все клипы готовы
stream.failedНе удалось подключиться к источнику

Ошибки

КодЗначение
400Некорректное тело запроса или неподдерживаемый источник
401Нет ключа или ключ отозван
404Эфир или клип не найден
409Этот источник уже подключён
429Слишком много запросов — см. Retry-After

Лимиты

ПараметрЗначение
Одновременных эфиров5 (тариф API — по договору)
Длительность записидо 12 часов
Запросов в минуту120
Хранение клиповпо сроку тарифа, ссылки на файлы — 24 часа
Нужен пример под ваш стек? Напишите в поддержку из кабинета — пришлём фрагмент на Python, Node.js или Go.