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

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

Описание

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

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

Внимание!

Установлено ограничение на количество обращений к API в размере не больше 5 обращений в минуту.

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

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

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

curl -H 'cdn-auth-token:cdn2_OSKVHEJCGDOPEQJJXQN284ZTQUEPJ2' https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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": {
      "RANDOM01": {
        "stream_name": "RANDOM01_stream01",
        "password": "RtdHESB7aA7rdKDCuVYn5W9Zp",
        "resolution": "720p",
        "name": "stream01",
        "smil": {
          "BANDWIDTH": "5000000",
          "RESOLUTION": "1280x720"
        }
      },
      "RANDOM02": {
        "stream_name": "RANDOM02_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": "p0q2zwj4yih"
    },
    "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
Код ответа Данные ответа Формат ответа Описание
200 Конкретный LIVE-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H 'cdn-auth-token:cdn2_OSKVHEJCGDOPEQJJXQN284ZTQUEPJ2' https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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": {
    "RANDOM01": {
      "stream_name": "RANDOM01_stream01",
      "password": "RtdHESB7aA7rdKDCuVYn5W9Zp",
      "resolution": "720p",
      "name": "stream01",
      "smil": {
        "BANDWIDTH": "5000000",
        "RESOLUTION": "1280x720"
      }
    },
    "RANDOM02": {
      "stream_name": "RANDOM02_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": "p0q2zwj4yih"
  },
  "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/

  • Тип запроса: 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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X POST
  -d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"RANDOM01": {"name": "stream01", "resolution": "720p"}, "RANDOM02": {"name": "stream02", "resolution": "1080p"}}}'
  https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/resource/live/

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

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

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

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

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

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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"RANDOM01": {"name": "stream01", "resolution": "360p"}}}'
  https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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/<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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -d '{"name": "test_resource", "active": false, "type": "RTMP-publish", "streams": {"RANDOM01": {"name": "stream01", "resolution": "360p"}}}'
  https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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/<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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -d '{"name": "test_resource", "active": true, "type": "RTMP-publish", "streams": {"RANDOM01": {"name": "stream01", "resolution": "360p"}}}'
  https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/resource/live/1163546047721937079_p0q2zwj4yih

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

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

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

{"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/RANDOM01_stream01?auth=MkE5MGtjbPljT52t491y6z14C

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

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

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

HLS-cache

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

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

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

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

curl -H 'cdn-auth-token:cdn2_OSKVHEJCGDOPEQJJXQN284ZTQUEPJ2' https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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
Код ответа Данные ответа Формат ответа Описание
200 Конкретный LIVE-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H 'cdn-auth-token:cdn2_OSKVHEJCGDOPEQJJXQN284ZTQUEPJ2' https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/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>/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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X POST
  -d '{"name": "live-qxthy20jjz", "type": "HLS-cache", "streams": {"3it9dwypm4": {"id": "/stream/playlist.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}, "names": ["test-cname.com"]}'
  https://api.cdnvideo.ru/cdn/api/v1/paejgjuv/resource/live/

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

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

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

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

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

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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -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/paejgjuv/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"}

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

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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -d '{"active": false, "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/paejgjuv/resource/live/9282601590143242685_pqy19d9z3pm

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

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

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

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

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

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:cdn2_2YXPIWIYRT15SZGQ2Q0JN362PUDXIE'
  -X PATCH
  -d '{"active": true, "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/paejgjuv/resource/live/9282601590143242685_pqy19d9z3pm

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

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

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

{"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