Перейти к содержанию

API для LIVE-ресурса

Описание

В этом разделе описаны методы API для создания, удаления и изменения конфигурации ваших ресурсов.

Все ответы (включая ошибки) возвращаются в формате JSON.

Внимание!

  1. Установлено ограничение на количество обращений к API в размере не больше 20 обращений в минуту для POST, PUT и PATCH запросов. При достижении лимита будет получен ответ со статус-кодом 200:
    {"status": "error", "message": "Rate limit exceeded", "description": "Request is forbidden"}
    
  2. В системе существует ограничение на ресурсы - до 100 шт. Если вам нужно больше ресурсов, то обратитесь к вашему персональному менеджеру или в саппорт.

Ниже приведены примеры для управления и конфигурации сервисов, связанных с услугой живых трансляций.

Получение информации о потоках

Общие сведения

Внимание!

  1. Установлено ограничение на количество обращений к 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