Окуляр Войти
Документация

API платформы

Версия v1. Базовый адрес выдаётся вместе с проектом. Все запросы — по HTTPS, авторизация по токену проекта.

Авторизация

Токен проекта передаётся в заголовке. Получить его можно в личном кабинете.

Authorization: Bearer <project_token>

Загрузка сегментов

Исходник заливается частями. Каждая часть отправляется методом POST на путь загрузки с идентификатором сессии. Тело запроса — бинарные данные сегмента.

POST/api/v1/ingest/segments/{session_id}

ПараметрГдеОписание
session_idпутьИдентификатор сессии загрузки, полученный при её открытии
Content-Typeзаголовокapplication/octet-stream
X-Playback-Session-IdзаголовокСлужебный идентификатор части в рамках сессии
curl -X POST \
  "https://<base>/api/v1/ingest/segments/9f3c1a7e" \
  -H "Authorization: Bearer <project_token>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @chunk-000.bin

Успешная часть подтверждается кодом 200. Когда все части загружены, сессия закрывается и видео уходит в обработку.

Статус обработки

GET/api/v1/videos/{video_id}

Возвращает текущее состояние: queued, processing, ready или failed.

{
  "id": "vid_7d21",
  "state": "ready",
  "duration": 184.2,
  "renditions": ["360p", "720p", "1080p"]
}

Выдача потока

GET/api/v1/videos/{video_id}/manifest.m3u8

Возвращает адаптивный HLS-манифест. Сегменты раздаются с ближайшего узла сети.

Вебхуки

При смене состояния видео платформа отправляет POST на указанный в проекте адрес с телом события.

{ "event": "video.ready", "video_id": "vid_7d21" }

Ошибки

КодЗначение
400Некорректный запрос или тело сегмента
401Отсутствует или неверный токен проекта
404Сессия или видео не найдены
413Превышен размер части