nav-img
Evolution

HLS-cache

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

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/

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

[
{
"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.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: $TOKEN" https://api.cdn.sber.cloud/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.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": "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.cdn.sber.cloud/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.cdn.sber.cloud/cdn/api/v1/<your_account_name>/resource/live/<resource_id>

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

  • Тип запроса: 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": "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.cdn.sber.cloud/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"
}

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

Запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле 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 '{"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.cdn.sber.cloud/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm

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

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

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

{
"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 '{"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.cdn.sber.cloud/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 ресурса невозможно.

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

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

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 '{"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}}}, "names": ["test-cname.com"]}' \
https://api.cdn.sber.cloud/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.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 '{"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"}}}}, "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.cdn.sber.cloud/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.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 '{"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.cdn.sber.cloud/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.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 '{"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"}}}}, "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.cdn.sber.cloud/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.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": "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.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": "HLS-cache", "streams": {"someid1": {"id": "/stream/playlist-2.m3u8"}}, "origin": {"https": false, "servers": {"yourdomain.com": {"port": 80, "weight": 1, "backup": false}}}, "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/<resource_id>

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

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