NabStream Написать нам
Документация

Подписанные ссылки

Контент на узлах доступен только по подписанному URL. Ниже — как сформировать подпись и что вернёт узел без неё.

Как это работает

Каждый объект в каталоге /media/ отдаётся только при действительной подписи. Подпись формирует ваш бэкенд по секретному ключу проекта и передаёт зрителю в параметрах ссылки. Узел проверяет подпись и срок действия, и только потом отдаёт сегменты.

Параметры ссылки

ПараметрОписание
expUnix-время, до которого ссылка действительна
sigMD5 от exp, пути и секрета проекта, в base64url без выравнивания

Пример подписи

path = "/media/lesson-42/master.m3u8"
exp  = 1789200000
sig  = base64url(MD5(exp + ":" + path + ":" + secret))

url  = "https://nabstream.ru" + path
     + "?exp=" + exp
     + "&sig=" + sig

Ответ без подписи

Подпись считается для каждого объекта отдельно. Плейлисты отдаются с уже подставленными подписанными ссылками на дорожки и сегменты, поэтому плееру достаточно подписанной ссылки на мастер-плейлист.

Запрос к /media/… без действительной подписи получает 403:

GET /media/lesson-42/master.m3u8
HTTP/2 403

{"error":"signature_required","node":"edge-msk-01"}

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

GET /media/lesson-42/master.m3u8?exp=1700000000&sig=…

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error":"signature_expired","node":"edge-msk-01"}

Состояние узла

Служебный эндпоинт /status возвращает состояние edge-узла в формате JSON — его использует страница статуса сети.

GET /status
HTTP/2 200

{"node":"edge-msk-01","role":"edge","status":"operational"}

Запросить ключ проекта