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

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

Описание

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

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

Внимание!

  1. Установлено ограничение на количество обращений к API в размере не больше 20 обращений в минуту для POST и PUT запросов. При достижении лимита будет получен ответ со статус-кодом 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
          }
        ]
      }
    }
    

    Конфигурация для LIVE-ресурса

    RTMP/RTSP-publish

    Получить все ресурсы

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Array или JSON Object в случае ошибки

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Все LIVE-ресурсы для аккаунта или описание ошибки JSON Получен список ресурсов или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    [
      {
        "name": "test_resource",
        "settings": {
          "RTMP-publish": {
            "domain": "p0q2zwj4yih.a.trbcdn.net",
            "pub_protocol": "rtmp",
            "master_stream": "jws2w_test_resource.smil",
            "primary": "a.r.cdnvideo.net",
            "application": "livemaster",
            "dist_protocol": "https",
            "backup": "b.r.cdnvideo.net"
          }
        },
        "streams": {
          "someid1": {
            "stream_name": "someid1_stream01",
            "password": "RtdHESB7aA7rdKDCuVYn5W9Zp",
            "resolution": "720p",
            "name": "stream01",
            "smil": {
              "BANDWIDTH": "5000000",
              "RESOLUTION": "1280x720"
            }
          },
          "someid2": {
            "stream_name": "someid2_stream02",
            "password": "dRKLVu6v90P5PhSAMIGSIgKuh",
            "resolution": "1080p",
            "name": "stream02",
            "smil": {
              "BANDWIDTH": "10000000",
              "RESOLUTION": "1920x1080"
            }
          }
        },
        "active": true,
        "creation_ts": 1542872090,
        "type": "RTMP-publish",
        "id": "1163546047721937079_p0q2zwj4yih",
        "resources": {
          "http": "test"
        },
        "cdn_domain": "test.a.trbcdn.net",
        "description": ""
      }
    ]
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивных ресурсов используйте query-параметр "active" с значением "false"

    Получить конкретный ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Конкретный LIVE-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "name": "test_resource",
      "settings": {
        "RTMP-publish": {
          "domain": "p0q2zwj4yih.a.trbcdn.net",
          "pub_protocol": "rtmp",
          "master_stream": "jws2w_test_resource.smil",
          "primary": "a.r.cdnvideo.net",
          "application": "livemaster",
          "dist_protocol": "https",
          "backup": "b.r.cdnvideo.net"
        }
      },
      "streams": {
        "someid1": {
          "stream_name": "someid1_stream01",
          "password": "RtdHESB7aA7rdKDCuVYn5W9Zp",
          "resolution": "720p",
          "name": "stream01",
          "smil": {
            "BANDWIDTH": "5000000",
            "RESOLUTION": "1280x720"
          }
        },
        "someid2": {
          "stream_name": "someid2_stream02",
          "password": "dRKLVu6v90P5PhSAMIGSIgKuh",
          "resolution": "1080p",
          "name": "stream02",
          "smil": {
            "BANDWIDTH": "10000000",
            "RESOLUTION": "1920x1080"
          }
        }
      },
      "active": true,
      "creation_ts": 1542872090,
      "type": "RTMP-publish",
      "id": "1163546047721937079_p0q2zwj4yih",
      "resources": {
        "http": "test"
      },
      "cdn_domain": "test.a.trbcdn.net",
      "description": ""
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивного ресурса используйте query-параметр "active" с значением "false"

    Получить статус конкретного ресурса

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 Статус Live-ресурса или описание ошибки JSON Получен статус ресурса или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Формат данных ответа:

    Параметр Описание Возможные значения
    resource ID ресурса ID ресурса из URL запроса
    status Статус ресурса "Completed" / "Processing" / "Error"
    message Описание статуса "" / "dns processing" / "configuration processing"

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
    

    Пример неуспешного ответа

    {"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
    

    Создать ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменить ресурс

    Обратите внимание

    Данный запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле PUT запроса.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PUT
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PUT \
      -d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Изменить ресурс частично

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными первого уровня
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"name": "test_resource"}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "resource name length should be between 5 and 100. Not 3"}
    

    Деактивировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Деактивирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": false}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008586"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Активировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Активирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": true}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008586"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Локальная авторизация $

    Создание ресурса с локальной авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение локальной авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененными параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"auth": {"md5": {"secret": "456", "forever": true}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Внешняя авторизация $

    Создание ресурса с внешней авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"auth": {"url": "https://test.com/yourscript"}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение внешней авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"auth": {"url": "https://test.com/yourscript2"}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Ограничения раздачи $

    Создание ресурса с ограничением раздачи по странам, IP адресам, referer или User-Agent

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X POST \
    -d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "limitations": {"geo": [{"default_action": "allow", "exclude": [{"country": "RU", "region": "BEL", "action": "deny"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}, {"default_action": "allow", "exclude": [{"country": "RU", "region": "CR", "action": "deny"}, {"country": "RU", "region": null, "action": "deny"}], "times": [{"start": "2019-07-20T14:19:00Z", "end": null}]}], "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}], "referer": [{"default_action": "deny", "exclude": [{"referer":"*.ru"}], "times": [{"start": null, "end": "2019-07-20T14:18:00Z"}]}], "useragent": [{"default_action": "deny", "exclude": [{"useragent": "browser_name"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
    "status": "accept",
    "task_id": "20180402162358692413",
    "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {
    "status": "error",
    "message": "json invalid",
    "description": "limitations : Invalid time interval: start:2021-05-11T19:12:00Z, end:2021-05-09T22:12:00Z"
    }
    

    Изменение ограничений раздачи ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X PATCH \
    -d '{"limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {"status": "accept", "task_id": "20180402162358692413"}
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Получение ссылок для публикации и раздачи

    Для того, чтобы получить полные ссылки для публикации и раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.

    Ссылка для публикации потока
    <pub_protocol>://<primary|backup>/<application>/<stream_name>?auth=<password>
    

    Пример итоговой ссылки для публикации:

    rtmp://a.r.cdnvideo.net/livemaster/someid1_stream01?auth=MkE5MGtjbPljT52t491y6z14C
    

    Ссылка для раздачи потока
    <dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8
    

    Пример итоговой ссылки для раздачи:

    https://p0q2zwj4yih.a.trbcdn.net/livemaster/jws2w_test_resource.smil/playlist.m3u8
    

    Транскодирование $

    Вы можете заказать услугу транскодирования входного потока в несколько качеств. Это позволит избежать дополнительных затрат на оборудование или программное обеспечение.

    Важно

    Данная услуга оплачивается согласно тарифам, указанным в личном кабинете.

    Профили транскодирования

    На данный момент мы предлагаем следующие профили транскодирования:

    ID профиля Качества Кодек для видео Кодек для аудио Объединение качеств в один поток
    360_480_720 360p, 480p, 720p h.264 AAC/mp3 +
    480_720_1080 480p, 720p, 1080p h.264 AAC/mp3 +
    360_480_720_1080 360p, 480p, 720p, 1080p h.264 AAC/mp3 +
    Заказать услугу

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и выбранным профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"name": "test_resource", "transcode_profile": "360_480_720", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "transcode_profile should be one of ['480_720_1080', '360_480_720', '360_480_720_1080']. Not 360_480"}
    

    Обратите внимание

    Если Вы заказываете услугу транскодирования, то для ресурса указывается ТОЛЬКО ОДИН входной поток.

    Изменить услугу

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новым профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"transcode_profile": "360_480_720_1080"}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831471"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "there must be only one stream to be transcoded. Not 0"}
    

    Обратите внимание

    Если Вы изменяете услугу транскодирования, то для ресурса указывается ТОЛЬКО ОДИН входной поток.

    Отключить услугу

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с пустым профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"transcode_profile": ""}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831472"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    SRT-publish

    Получить все ресурсы

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Array или JSON Object в случае ошибки

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Все LIVE-ресурсы для аккаунта или описание ошибки JSON Получен список ресурсов или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    [
        {
          "id": "3087695896608003328_cybku4cl0av",
          "name": "test_resource",
          "type": "SRT-publish",
          "active": true,
          "streams": {
            "someid1": {
              "name": "stream01",
              "smil": {
                "BANDWIDTH": "5000000",
                "RESOLUTION": "1280x720"
              },
              "password": "IEVM5Vyew2nEjPcYZmaskikMN",
              "resolution": "720p",
              "stream_name": "someid1_stream01"
            },
            "someid2": {
              "name": "stream02",
              "smil": {
                "BANDWIDTH": "10000000",
                "RESOLUTION": "1920x1080"
              },
              "password": "SA4fxfaJGK6jLcaADwYZZhe2S",
              "resolution": "1080p",
              "stream_name": "someid2_stream02"
            }
          },
          "settings": {
            "SRT-publish": {
              "backup": "b.r.cdnvideo.net",
              "domain": "test.a.trbcdn.net",
              "primary": "a.r.cdnvideo.net",
              "application": "livemastersrt",
              "pub_protocol": "srt",
              "dist_protocol": "https",
              "master_stream": "kqa3m_test_resource.smil",
              "transcode_profile": ""
            }
          },
          "resources": {
            "http": "test"
          },
          "creation_ts": 1686209143,
          "description": "",
          "locations": {
            "/": {
              "cache": {
                "live": true,
                "valid": {
                  "2xx": "300s",
                  "3xx": "1s",
                  "4xx": "1s",
                  "5xx": "1s"
                }
              }
            }
          },
          "cache": {
            "live": true,
            "consider_args": false
          },
          "cdn_domain": "test.a.trbcdn.net"
        }
    ]
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивных ресурсов используйте query-параметр "active" с значением "false"

    Получить конкретный ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Конкретный LIVE-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "id": "3087695896608003328_cybku4cl0av",
      "name": "test_resource",
      "type": "SRT-publish",
      "active": true,
      "streams": {
        "someid1": {
          "name": "stream01",
          "smil": {
            "BANDWIDTH": "5000000",
            "RESOLUTION": "1280x720"
          },
          "password": "IEVM5Vyew2nEjPcYZmaskikMN",
          "resolution": "720p",
          "stream_name": "someid1_stream01"
        },
        "someid2": {
          "name": "stream02",
          "smil": {
            "BANDWIDTH": "10000000",
            "RESOLUTION": "1920x1080"
          },
          "password": "SA4fxfaJGK6jLcaADwYZZhe2S",
          "resolution": "1080p",
          "stream_name": "someid2_stream02"
        }
      },
      "settings": {
        "SRT-publish": {
          "backup": "b.r.cdnvideo.net",
          "domain": "test.a.trbcdn.net",
          "primary": "a.r.cdnvideo.net",
          "application": "livemastersrt",
          "pub_protocol": "srt",
          "dist_protocol": "https",
          "master_stream": "kqa3m_test_resource.smil",
          "transcode_profile": ""
        }
      },
      "resources": {
        "http": "test"
      },
      "creation_ts": 1686209143,
      "description": "",
      "locations": {
        "/": {
          "cache": {
            "live": true,
            "valid": {
              "2xx": "300s",
              "3xx": "1s",
              "4xx": "1s",
              "5xx": "1s"
            }
          }
        }
      },
      "cache": {
        "live": true,
        "consider_args": false
      },
      "cdn_domain": "test.a.trbcdn.net"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивного ресурса используйте query-параметр "active" с значением "false"

    Получить статус конкретного ресурса

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 Статус Live-ресурса или описание ошибки JSON Получен статус ресурса или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Формат данных ответа:

    Параметр Описание Возможные значения
    resource ID ресурса ID ресурса из URL запроса
    status Статус ресурса "Completed" / "Processing" / "Error"
    message Описание статуса "" / "dns processing" / "configuration processing"

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
    

    Пример неуспешного ответа

    {"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
    

    Создать ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "3087695896608003328_cybku4cl0av"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменить ресурс

    Обратите внимание

    Данный запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле PUT запроса.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PUT
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PUT \
      -d '{"name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Изменить ресурс частично

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными первого уровня
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"name": "test_resource"}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "resource name length should be between 5 and 100. Not 3"}
    

    Деактивировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Деактивирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": false}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008586"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Активировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Активирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": true}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008586"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Локальная авторизация $

    Создание ресурса с локальной авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "3087695896608003328_cybku4cl0av"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение локальной авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"auth": {"md5": {"secret": "456", "forever": true}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Внешняя авторизация $

    Создание ресурса с внешней авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"auth": {"url": "https://test.com/yourscript"}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "3087695896608003328_cybku4cl0av"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение внешней авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"auth": {"url": "https://test.com/yourscript2"}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Ограничения раздачи $

    Создание ресурса с ограничением раздачи по странам, IP адресам, referer или User-Agent

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X POST \
    -d '{"name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "limitations": {"geo": [{"default_action": "allow", "exclude": [{"country": "RU", "region": "BEL", "action": "deny"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}, {"default_action": "allow", "exclude": [{"country": "RU", "region": "CR", "action": "deny"}, {"country": "RU", "region": null, "action": "deny"}], "times": [{"start": "2019-07-20T14:19:00Z", "end": null}]}], "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}], "referer": [{"default_action": "deny", "exclude": [{"referer":"*.ru"}], "times": [{"start": null, "end": "2019-07-20T14:18:00Z"}]}], "useragent": [{"default_action": "deny", "exclude": [{"useragent": "browser_name"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
    "status": "accept",
    "task_id": "20180402162358692400",
    "resource_id": "3087695896608003328_cybku4cl0av"
    }
    

    Пример неуспешного ответа

    {
    "status": "error",
    "message": "json invalid",
    "description": "limitations : Invalid time interval: start:2021-05-11T19:12:00Z, end:2021-05-09T22:12:00Z"
    }
    

    Изменение ограничений раздачи ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X PATCH \
    -d '{"limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {"status": "accept", "task_id": "20180402162358692401"}
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Получение ссылок для публикации и раздачи

    Для того, чтобы получить полные ссылки для публикации и раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.

    Ссылка для публикации потока
    <pub_protocol>://<primary|backup>:19998/?streamid=#!::r=<application>/<stream_name>,auth=<password>
    

    Пример итоговой ссылки для публикации:

    srt://a.r.cdnvideo.net:19998/?streamid=#!::r=livemastersrt/someid1_stream01,auth=IEVM5Vyew2nEjPcYZmaskikMN
    

    Ссылка для раздачи потока
    <dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8
    

    Пример итоговой ссылки для раздачи:

    https://test.a.trbcdn.net/livemastersrt/kqa3m_test_resource.smil/playlist.m3u8
    

    Транскодирование $

    Вы можете заказать услугу транскодирования входного потока в несколько качеств. Это позволит избежать дополнительных затрат на оборудование или программное обеспечение.

    Важно

    Данная услуга оплачивается согласно тарифам, указанным в личном кабинете.

    Профили транскодирования

    На данный момент мы предлагаем следующие профили транскодирования:

    ID профиля Качества Кодек для видео Кодек для аудио Объединение качеств в один поток
    360_480_720 360p, 480p, 720p h.264 AAC/mp3 +
    480_720_1080 480p, 720p, 1080p h.264 AAC/mp3 +
    360_480_720_1080 360p, 480p, 720p, 1080p h.264 AAC/mp3 +
    Заказать услугу

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и выбранным профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"name": "test_resource", "transcode_profile": "360_480_720", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831469",
      "resource_id": "3087695896608003328_cybku4cl0av"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "transcode_profile should be one of ['480_720_1080', '360_480_720', '360_480_720_1080']. Not 360_480"}
    

    Обратите внимание

    Если Вы заказываете услугу транскодирования, то для ресурса указывается ТОЛЬКО ОДИН входной поток.

    Изменить услугу

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новым профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"transcode_profile": "360_480_720_1080"}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831471"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "there must be only one stream to be transcoded. Not 0"}
    

    Обратите внимание

    Если Вы изменяете услугу транскодирования, то для ресурса указывается ТОЛЬКО ОДИН входной поток.

    Отключить услугу

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с пустым профилем транскодирования
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"transcode_profile": ""}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103450831472"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    HLS-cache

    Получить все ресурсы

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Array или JSON Object в случае ошибки

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Все LIVE-ресурсы для аккаунта или описание ошибки JSON Получен список ресурсов или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    [
      {
        "origin": {
          "https": true,
          "servers": {
            "yourdomain.com": {
              "backup": false,
              "port": 80,
              "weight": 1
            }
          }
        },
        "cdn_domain": "wtx3l7rtrl6.a.trbcdn.net",
        "name": "live-qxthy19jjz",
        "streams": {
          "2it9dwypm4": {
            "id": "/stream/playlist.m3u8"
          }
        },
        "names": ["test.cname.com"],
        "active": true,
        "creation_ts": 1551853456,
        "type": "HLS-cache",
        "id": "8053158264585032642_wtx3l7rtrl6",
        "resources": {
          "http": "wtx3l7rtrl6"
        },
        "description": ""
      }
    ]
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивных ресурсов используйте query-параметр "active" с значением "false"

    Получить конкретный ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object

    Доступные параметры query string (* - обязательный параметр):

    Название Описание Допустимые значения Значение по умолчанию
    active Фильтр по активным/деактивированным ресурсам true / false true

    Возможные коды ответа:

    Код ответа Данные ответа Формат ответа Описание
    200 Конкретный LIVE-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/8053158264585032642_wtx3l7rtrl6
    

    Пример успешного ответа

    {
      "origin": {
        "https": true,
        "servers": {
          "yourdomain.com": {
            "backup": false,
            "port": 80,
            "weight": 1
          }
        }
      },
      "cdn_domain": "wtx3l7rtrl6.a.trbcdn.net",
      "name": "live-qxthy19jjz",
      "streams": {
        "2it9dwypm4": {
          "id": "/stream/playlist.m3u8"
        }
      },
      "names": ["test.cname.com"],
      "active": true,
      "creation_ts": 1551853456,
      "type": "HLS-cache",
      "id": "8053158264585032642_wtx3l7rtrl6",
      "resources": {
        "http": "wtx3l7rtrl6"
      },
      "description": ""
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Обратите внимание

    Для получения неактивного ресурса используйте query-параметр "active" с значением "false"

    Получить статус конкретного ресурса

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>

    • Тип запроса: GET
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 Статус Live-ресурса или описание ошибки JSON Получен статус ресурса или ошибка
    403 None None Запрещено
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Формат данных ответа:

    Параметр Описание Возможные значения
    resource ID ресурса ID ресурса из URL запроса
    status Статус ресурса "Completed" / "Processing" / "Error"
    message Описание статуса "" / "dns processing" / "configuration processing"

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
    

    Пример успешного ответа

    {"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
    

    Пример неуспешного ответа

    {"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
    

    Создать ресурс

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"name": "live-qxthy20jjz", "type": "HLS-cache", "streams": {"3it9dwypm4": {"id": "/stream/playlist.m3u8"}}, "origin": {"https": false, "read_timeout": "10s", "connect_timeout": "10s", "send_timeout": "10s", "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}, "names": ["test-cname.com"]}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831469",
      "resource_id": "9282601590143242685_pqy19d9z3pm"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменить ресурс

    Обратите внимание

    Данный запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле PUT запроса.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PUT
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными ресурса
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PUT \
      -d '{"name": "live-qxthy20jjz-2", "type": "HLS-cache", "streams": {"4it9dwypm4": {"id": "/stream/playlist-2.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831470"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Изменить ресурс частично

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с новыми данными первого уровня
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"name": "test_resource"}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20181122103856008585"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "resource name length should be between 5 and 100. Not 3"}
    

    Деактивировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Деактивирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": false}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831479"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Активировать ресурс

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки JSON Активирован, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"active": true}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831479"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Локальная авторизация $

    Обратите внимание

    Локальная авторизация может быть настроена только для какого-либо location. Включить ее для всего HLS-cache ресурса невозможно.

    Важно

    Если локальная авторизация включается для location-ов, затрагивающих плейлисты (m3u8, mpd), то для корректной работы необходимо отключить кэширование для этих location-ов.

    Создание ресурса с локальной авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"locations": {"~* \\.m3u8$": {"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}}}, "name": "live-qxthy20jjz", "type": "HLS-cache", "streams": {"3it9dwypm4": {"id": "/stream/playlist.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831469",
      "resource_id": "9282601590143242685_pqy19d9z3pm"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение локальной авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами локальной авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"locations": {"~* \\.m3u8$": {"auth": {"md5": {"secret": "234", "forever": true, "anywhere": true}}, "cache": {"valid": {"2xx": "1s", "3xx": "1s"}}}, "/": {"cache": {"valid": {"2xx": "300s", "3xx": "1s", "4xx": "1s", "5xx": "1s"}}}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831470"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Внешняя авторизация $

    Важно

    Внешняя авторизация может быть настроена только для какого-либо location. Включить ее для всего HLS-cache ресурса невозможно.

    Создание ресурса с внешней авторизацией

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X POST \
      -d '{"locations": {"~* \\.m3u8$": {"auth": {"url": "https://test.com/yourscript"}}}, "name": "live-qxthy20jjz", "type": "HLS-cache", "streams": {"3it9dwypm4": {"id": "/stream/playlist.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831469",
      "resource_id": "9282601590143242685_pqy19d9z3pm"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
    

    Изменение внешней авторизации ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененяемыми параметрами внешней авторизации
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
      -X PATCH \
      -d '{"locations": {"~* \\.m3u8$": {"auth": {"url": "https://test.com/yourscript_new"}, "cache": {"valid": {"2xx": "1s", "3xx": "1s"}}}, "/": {"cache": {"valid": {"2xx": "300s", "3xx": "1s", "4xx": "1s", "5xx": "1s"}}}}}' \
      https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
    

    Пример успешного ответа

    {
      "status": "accept",
      "task_id": "20190305103450831470"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
    

    Ограничения раздачи $

    Создание ресурса с ограничением раздачи по странам, IP адресам, referer или User-Agent

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/

    • Тип запроса: POST
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с данными создаваемого ресурса и параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X POST \
    -d '{"name": "test_resource", "type": "HLS-cache", "streams": {"someid1": {"id": "/stream/playlist.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}, "names": ["test-cname.com"], "limitations": {"geo": [{"default_action": "allow", "exclude": [{"country": "RU", "region": "BEL", "action": "deny"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}, {"default_action": "allow", "exclude": [{"country": "RU", "region": "CR", "action": "deny"}, {"country": "RU", "region": null, "action": "deny"}], "times": [{"start": "2019-07-20T14:19:00Z", "end": null}]}], "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}], "referer": [{"default_action": "deny", "exclude": [{"referer":"*.ru"}], "times": [{"start": null, "end": "2019-07-20T14:18:00Z"}]}], "useragent": [{"default_action": "deny", "exclude": [{"useragent": "browser_name"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/
    

    Пример успешного ответа

    {
    "status": "accept",
    "task_id": "20180402162358692413",
    "resource_id": "1163546047721937079_p0q2zwj4yih"
    }
    

    Пример неуспешного ответа

    {
    "status": "error",
    "message": "json invalid",
    "description": "limitations : Invalid time interval: start:2021-05-11T19:12:00Z, end:2021-05-09T22:12:00Z"
    }
    

    Изменение ограничений раздачи ресурса

    Обратите внимание

    Данный запрос полностью заменяет поля первого уровня ресурса на данные, передаваемые в теле PATCH запроса. Не переданные поля запрос не изменяет.

    URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

    • Тип запроса: PATCH
    • Заголовки: CDN-AUTH-TOKEN
    • Тело запроса: JSON с измененными параметрами ограничений
    • Тип данных ответа: JSON Object
    Код ответа Данные ответа Формат ответа Описание
    200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
    400 None None Неверный запрос
    404 None None Не найдено
    500 None None Внутренняя ошибка сервера
    503 None None Сервис недоступен

    Пример запроса

    curl -H "CDN-AUTH-TOKEN: $TOKEN" \
    -X PATCH \
    -d '{"limitations": {"geo": [{"default_action": "allow", "exclude": [{"country": "RU", "region": "BEL", "action": "deny"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}, {"default_action": "allow", "exclude": [{"country": "RU", "region": "CR", "action": "deny"}, {"country": "RU", "region": null, "action": "deny"}], "times": [{"start": "2019-07-20T14:19:00Z", "end": null}]}], "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}], "referer": [{"default_action": "deny", "exclude": [{"referer":"*.ru"}], "times": [{"start": null, "end": "2019-07-20T14:18:00Z"}]}], "useragent": [{"default_action": "deny", "exclude": [{"useragent": "browser_name"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}]}}' \
    https://api.cdnvideo.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
    

    Пример успешного ответа

    {
    "status": "accept",
    "task_id": "20180402162358692413"
    }
    

    Пример неуспешного ответа

    {"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
    

    Получение ссылок для раздачи

    Для того, чтобы получить полные ссылки раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.

    <pub_protocol>://<cdn_domain>/<stream_id>
    
    <pub_protocol>://<names>/<stream_id>
    

    Пример итоговых CDN-ссылок на плейлист:

    https://wtx3l7rtrl6.a.trbcdn.net/stream/playlist.m3u8
    
    https://test.cname.com/stream/playlist.m3u8