Evolution
Тема интерфейса

API-методы RTMP/RTSP-publish

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Array или JSON Object в случае ошибки

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

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdn.sber.cloud/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.sber.cloud",
"application": "livemaster",
"dist_protocol": "https",
"backup": "b.r.sber.cloud"
}
},
"streams": {
"someid1": {
"stream_name": "someid1_stream01",
"password": "j8eAMouA15uA0VHPZeicNWa7SL",
"resolution": "720p",
"name": "stream01",
"smil": {
"BANDWIDTH": "5000000",
"RESOLUTION": "1280x720"
}
},
"someid2": {
"stream_name": "someid2_stream02",
"password": "i7uOAouA15uA0VHPYioaSQt4KN",
"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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

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

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

curl -H 'cdn-auth-token:cdn2_I7UOAOUA15UA0VHPYIOASQT4KN' https://api.cdn.sber.cloud/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.sber.cloud",
"application": "livemaster",
"dist_protocol": "https",
"backup": "b.r.sber.cloud"
}
},
"streams": {
"someid1": {
"stream_name": "someid1_stream01",
"password": "j8eAMouA15uA0VHPZeicNWa7SL",
"resolution": "720p",
"name": "stream01",
"smil": {
"BANDWIDTH": "5000000",
"RESOLUTION": "1280x720"
}
},
"someid2": {
"stream_name": "someid2_stream02",
"password": "i7uOAouA15uA0VHPYioaSQt4KN",
"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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными создаваемого ресурса

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id, resource_id или описание ошибкиJSONСоздан, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с новыми данными ресурса

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}'
https://api.cdn.sber.cloud/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"
}

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

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиJSONДеактивирован, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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

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

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

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

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

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

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиJSONАктивирован, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"name": "test_resource", "active": true, "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}'
https://api.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными создаваемого ресурса и параметрами локальной авторизации

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id, resource_id или описание ошибкиJSONСоздан, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с измененными параметрами локальной авторизации

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"auth": {"md5": {"secret": "456", "forever": true}}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}'
https://api.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными создаваемого ресурса и параметрами внешней авторизации

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id, resource_id или описание ошибкиJSONСоздан, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с измененными параметрами внешней авторизации

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"auth": {"url": "https://test.com/yourscript2"}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \
https://api.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными создаваемого ресурса и параметрами ограничений

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id, resource_id или описание ошибкиJSONСоздан, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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.cdn.sber.cloud/cdn/api/v1/<account_name>/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"
}

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

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с измененными параметрами ограничений

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \
https://api.cdn.sber.cloud/cdn/api/v1/<account_name>/resource/live/<resource_id>

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

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

Ссылка для раздачи потока

<dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8

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

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

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

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

Внимание

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

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

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

ID профиляКачестваКодек для видеоКодек для аудиоОбъединение качеств в один поток
360_480_720360p, 480p, 720ph.264AAC/mp3+
480_720_1080480p, 720p, 1080ph.264AAC/mp3+
360_480_720_1080360p, 480p, 720p, 1080ph.264AAC/mp3+

Заказать услугу

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными создаваемого ресурса и выбранным профилем транскодирования

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id, resource_id или описание ошибкиJSONСоздан, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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.cdn.sber.cloud/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"
}
Внимание

Если вы заказываете услугу транскодирования, для ресурса указывается один входной поток.

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

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными ресурса и новым профилем транскодирования

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PUT \
-d '{"name": "test_resource", "transcode_profile": "360_480_720_1080", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \
https://api.cdn.sber.cloud/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"
}
Внимание

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

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

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

URL: https://api.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/

  • Тип запроса: PUT

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными ресурса и пустым профилем транскодирования

  • Тип данных ответа: JSON Object

Код ответаДанные ответаФормат ответаОписание
200task_id или описание ошибкиNoneИзменен, id задачи в общей очереди задач или ошибка
400NoneNoneНеверный запрос
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

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

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

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

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

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

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