API для LIVE-ресурса
Описание
В этом разделе описаны методы API для создания, удаления и изменения конфигурации ваших ресурсов.
Все ответы (включая ошибки) возвращаются в формате JSON.
Внимание!
- Установлено ограничение на количество обращений к API в размере не больше 20 обращений в минуту для POST, PUT и PATCH запросов.
При достижении лимита будет получен ответ со статус-кодом 200:
{"status": "error", "message": "Rate limit exceeded", "description": "Request is forbidden"}
- В системе существует ограничение на ресурсы - до 100 шт. Если вам нужно больше ресурсов, то обратитесь к вашему персональному менеджеру или в саппорт.
Ниже приведены примеры для управления и конфигурации сервисов, связанных с услугой живых трансляций.
Получение информации о потоках
Общие сведения
Внимание!
- Установлено ограничение на количество обращений к API:
- не больше 10 обращений в минуту.
Обязательные заголовки: CDN-AUTH-TOKEN (авторизационный токен, см. Авторизация).
В случае корректного ответа API возвращается 2xx код ответа и текст ответа следующего формата:
{ "status": "Completed", "data": <ответ от API>, "<параметр запроса 1>": "value1", "<параметр запроса 2>": "value2" }
В случае ошибочного ответа API возвращает соответствующий код ответа и текст ответа следующего формата:
{ "status": "Forbidden", "description": "Token is expired" }
В поле description
возвращается текстовое описание ошибки.
Получить статус потока
URL: https://api.cdnvideo.ru/app/streams/v1/<your_account_name>/status/<stream_name>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Параметры запроса: отсутствуют
- Тип данных ответа: JSON Object
- Параметры ответа:
Параметр | Тип | Описание |
---|---|---|
is_alive | boolean | Активен ли поток |
start_ts | integer или null | Время появления потока. Если поток есть на нескольких серверах, то минимальное из hosts.start_ts .Возможные значения: UTC timestamp - если поток активенnull - если поток неактивен |
hosts | array | Список серверов, на которых есть поток |
hosts.host | string | Сервер |
hosts.start_ts | integer | Время появления потока на сервере |
Пример запроса
curl -H "CDN-AUTH-TOKEN: $TOKEN" 'https://api.cdnvideo.ru/app/streams/v1/testaccount/status/test/stream1'
Пример ответа для неактивного потока
{ "status": "Completed", "stream_name": "test/stream1", "data": { "is_alive": false, "start_ts": null, "hosts": [] } }
Пример ответа для активного потока
{ "status": "Completed", "stream_name": "test/stream1", "data": { "is_alive": true, "start_ts": 1693392088, "hosts": [ { "host": "ffce3977afe64227676096887231adba", "start_ts": 1693392088 }, { "host": "7bd5e6ccea2e689d252eb4c183a1aaf6", "start_ts": 1693392089 } ] } }
RTMP/RTSP-publish и SRT-publish
Описание API
Получение ссылок для публикации и раздачи
Для того, чтобы получить полные ссылки для публикации и раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.
Ссылка для публикации потока
RTMP/RTSP-publish:
<pub_protocol>://<primary|backup>/<application>/<stream_name>?auth=<password>
SRT-publish:
<pub_protocol>://<primary|backup>:19998/?streamid=#!::r=<application>/<stream_name>,auth=<password>
Примеры итоговых ссылок для публикации:
rtmp://a.r.cdnvideo.net/livemaster/someid1_stream01?auth=MkE5MGtjbPljT52t491y6z14C srt://a.r.cdnvideo.net:19998/?streamid=#!::r=livemastersrt/someid1_stream01,auth=IEVM5Vyew2nEjPcYZmaskikMN
Ссылка для раздачи потока
<dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8
Пример итоговой ссылки для раздачи:
https://p0q2zwj4yih.a.trbcdn.net/livemaster/jws2w_test_resource.smil/playlist.m3u8
HLS-pull
Описание API
Получение ссылок для раздачи
Для того, чтобы получить полные ссылки раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе, и путь до плейлиста.
<dist_protocol>://<cdn_domain|names>/<playlist_path>
Примеры итоговых CDN-ссылок на плейлисты:
https://wtx3l7rtrl6.a.trbcdn.net/stream/playlist.m3u8 https://test.cname.com/stream/playlist.m3u8