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 | Превышен размер части |