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 Получен список ресурсов или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

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 Получен ресурс или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

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

Код ответа Данные ответа Формат ответа Описание
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.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

Код ответа Данные ответа Формат ответа Описание
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.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

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

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

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

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

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

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

Код ответа Данные ответа Формат ответа Описание
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}}}, "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

Код ответа Данные ответа Формат ответа Описание
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 '{"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

Код ответа Данные ответа Формат ответа Описание
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.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

Код ответа Данные ответа Формат ответа Описание
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 '{"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

Код ответа Данные ответа Формат ответа Описание
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.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

Код ответа Данные ответа Формат ответа Описание
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": "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
Запустили Evolution free tier
для Dev & Test
Получить