nav-img
Evolution

API для DVR и записи потоков

В этом разделе описаны методы API для создания, удаления и изменения настроек DVR и записи потоков.

Общие сведения

  • Обязательные заголовки: CDN-AUTH-TOKEN (авторизационный токен, см. Авторизация);

  • Тип данных ответа: application/json;

  • Под ID ресурса понимается ID RTMP/RTSP-publish ресурса;

  • Используемые сокращения: ИП – исходный плейлист.

Общие ошибки

В ответ на любой из запросов может вернуться одна из следующих ошибок:

Код ответаContent-TypeТело ответаОписание
400text/plainInvalid pathНеверный путь
401text/plainInvalid tokenНе передан заголовок с токеном
403text/plainInvalid accountУказан неверный аккаунт
404text/plainNot foundНеверный URL
405text/plainMethod is not allowedОтказано в доступе к действию
500text/html-Внутренняя ошибка сервера

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

curl 'https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record'

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

Invalid token

Получить настройки всех записей

URL: https://api.cdn.sber.cloud/app/recorder-cloud/v1/<your_account_name>/record

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

  • Доступные querystring-параметры:

НазваниеДопустимые значенияОписание
resource_idID ресурсаID ресурса, к которому применены настройки
allПрисутствие/отсутствие в списке параметровВернуть все инстансы записей, в т.ч. закончившиеся и уже начавшиеся
extra_fieldsСписок строк, разделенный запятымиВернуть дополнительные поля
  • Доступные значения параметра extra_fields:

ЗначениеОписание
statusСтатус записи (wait/progress/finish/error)
  • Возможные коды ответа:

Код ответаДанные ответа
200Список данных о настройках
  • Формат данных о настройках:

КлючОписание
idИдентификатор
idИдентификатор
resource_idID ресурса
account_nameНазвание аккаунта
source_domainДомен ИП
source_pathПуть ИП
stream_typeВид трансляции
launch_typeСпособ запуска записи
stop_timeout Timeout ожидания потока для записи (в секундах)
storage_timeВремя хранения файла записи (в днях)
dvr_enabledВключен ли DVR
dvr_windowОкно DVR (в секундах)
smilЯвляется ли исходных плейлист SMIL-ом
qualitiesОбъект с ссылками и названиями качеств ИП
recordsСписок данных о записях
pathПуть, по которому сохраняются файлы записи
  • Формат данных о записи:

КлючОписание
startДата и время начала записи
stopДата и время окончания записи
init_pathПуть, по которому сохранялся файл записи
  • Формат даты и времени начала и окончания записи

    Значение даты и времени выдается в формате YYYY-MM-DDThh:mm:ssZ в UTC. Пример: 2021-12-30T12:30:05Z

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

curl 'https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record' -H "CDN-AUTH-TOKEN: $TOKEN"

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

[
{
"id": "a9bdcf5f-4e9e-42b3-bfсd-35469d66a44f",
"resource_id": "6434361230573122384_fxqe0wa6vvv",
"account_name": "test_account",
"source_domain": "https://prefix.a.trbcdn.net",
"source_path": "/livemaster/70xs4gn2s0_zv2dm9kt929/playlist.m3u8",
"stream_type": "short",
"launch_type": "button",
"stop_timeout": 1800,
"storage_time": 3,
"dvr_enabled": true,
"dvr_window": 43200,
"smil": false,
"qualities": null,
"records": [
{
"start": "2022-01-01T13:26:26Z",
"stop": "2022-01-01T15:27:34Z",
"init_path": "/records/20220101T121112.m3u8"
},
{
"start": "2022-01-01T16:13:52Z",
"stop": "2022-01-01T17:14:48Z",
"init_path": "/records/20220101T121112.m3u8"
}
],
"path": "/records/20220101T121112.m3u8"
}
]

Создать настройки записи

URL: https://api.cdn.sber.cloud/app/recorder-cloud/v1/<your_account_name>/record

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

  • Content-Type тела запроса: application/json

  • Доступные параметры:

НазваниеОбязательныйЗначение по умолчаниюДопустимые значенияОписание
resource_idНет-ID ресурсаID ресурса, для которого создаются настройки записи
stream_nameДа-СтрокаНазвание потока
stream_typeДа-Вид трансляцииВид трансляции, для которой настраивается запись
sourceДа-URLURL исходного плейлиста
launch_typeДа-Способ стартаСпособ старта записи
scheduleНет-Список объектов расписанияСписок объектов запланированных записей
pathНет/records/{now}.m3u8Путь в хранилище Путь в хранилище для сохранения записи
stop_timeoutНет1800Целое число (секунды)Длина timeout-а ожидания потока в секундах
storage_timeНет-1 (не удалять)Целое число (дни)Количество дней хранения файла записи после ее завершения
dvr_enabledНетfalseBooleanФлаг, определяющий наличие возможности DVR в плеере
dvr_windowНет43200Целое число (секунды)Окно записи
smilНетfalseBooleanФлаг, определяющий, является ли ИП master-плейлистом
qualitiesНет-ОбъектОбъект с ссылками и названиями качеств ИП
  • Возможные значения вида трансляции:

ЗначениеОписание
shortКраткосрочная трансляция (до 12 часов)
longПостоянная трансляция
  • Возможные значения способов старта:

ЗначениеОписание
stream_startСтарт по публикации потока
buttonСтарт по нажатию кнопки (запросу)
schedule*Старт в заранее определенное время

* — данный способ доступен только для записи краткосрочных трансляций

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

Код ответаДанные ответаОписание
201record_idНастройки успешно созданы
409-Настройки записи для ИП уже созданы и активны
422Данные об ошибкахОшибка в значениях параметров

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

curl 'https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record' -X PUT --data '{"stream_name": "6t48oq7ts_i12f41tnkfs_smil", "stream_type":"short", "path":"/records/20220101T175729.m3u8", "smil":true, "qualities": {"https://prefix.a.trbcdn.net/livemaster/6t48oq7ts_i12f41tnkfs_tcode360p/playlist.m3u8": "360p", "https://prefix.a.trbcdn.net/livemaster/6t48oq7ts_i12f41tnkfs_tcode480p/playlist.m3u8": "480p", "https://prefix.a.trbcdn.net/livemaster/6t48oq7ts_i12f41tnkfs_tcode720p/playlist.m3u8": "720p"}, "launch_type": "button", "stop_timeout": 1800, "dvr_enabled": false, "schedule": [], "storage_time": 3, "resource_id": "9778349385416447311_hl4ceseblgw", "source": "https://prefix.a.trbcdn.net/livemaster/xlepd_live-5nls7s5gi2.smil/playlist.m3u8"}' -H "Content-Type: application/json" -H "CDN-AUTH-TOKEN: $TOKEN"

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

{
"id": "b1795283-c88b-43ad-a28b-0659389e82df"
}

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

URL: https://api.cdn.sber.cloud/app/recorder-cloud/v1/<your_account_name>/record/<record_id>

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

  • Доступные querystring-параметры:

НазваниеДопустимые значенияОписание
resource_idID ресурсаID ресурса, к которому применены настройки
allПрисутствие/отсутствие в списке параметровВернуть все инстансы записей, в т.ч. закончившиеся и уже начавшиеся
extra_fieldsСписок строк, разделенный запятымиВернуть дополнительные поля
  • Доступные значения параметра extra_fields:

НазваниеОписание
statusСтатус записи (wait/progress/finish/error)
  • Возможные коды ответа:

НазваниеОписание
200Список данных о настройках
  • Формат данных о настройках:

КлючОписание
idИдентификатор
resource_idID ресурса
idИдентификатор
account_nameНазвание аккаунта
source_domainДомен ИП
source_pathПуть ИП
stream_typeВид трансляции
launch_typeСпособ запуска записи
stop_timeoutTimeout ожидания потока для записи (в секундах)
storage_timeВремя хранения файла записи (в днях)
dvr_enabledВключен ли DVR
dvr_windowОкно DVR (в секундах)
smilЯвляется ли исходных плейлист SMIL-ом
qualitiesОбъект с ссылками и названиями качеств ИП
recordsСписок данных о записях
pathПуть, по которому сохраняются файлы записи
  • Формат данных о записи:

КлючОписание
startДата и время начала записи
stopДата и время окончания записи
init_pathПуть, по которому сохранялся файл записи

Формат даты и времени начала и окончания записи:

Значение даты и времени выдается в формате YYYY-MM-DDThh:mm:ssZ в UTC. Пример: 2021-12-30T12:30:05Z

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "CDN-AUTH-TOKEN: $TOKEN"

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

[
{
"id": "089ec628-1e96-482e-a43d-02537b6f8f8e",
"resource_id": "2415236563435151586_izxvl4r88pc",
"account_name": "testaccount",
"source_domain": "https://prefix.a.trbcdn.net",
"source_path": "/livemaster/dxsbm_live-sj74f3ih5co.smil/playlist.m3u8",
"stream_type": "short",
"launch_type": "schedule",
"stop_timeout": 1800,
"storage_time": 87,
"dvr_enabled": false,
"dvr_window": 43200,
"smil": true,
"qualities": {
"https://prefix.a.trbcdn.net/livemaster/bkxw4xqxna_7vn4752dq4_tcode360p/playlist.m3u8": "360p",
"https://prefix.a.trbcdn.net/livemaster/bkxw4xqxna_7vn4752dq4_tcode480p/playlist.m3u8": "480p",
"https://prefix.a.trbcdn.net/livemaster/bkxw4xqxna_7vn4752dq4_tcode720p/playlist.m3u8": "720p"
},
"records": [],
"path": null
}
]

Действия с настройками записи

URL: https://api.cdn.sber.cloud/app/recorder-cloud/v1/<your_account_name>/record/<record_id>

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

  • Content-Type тела запроса: application/json

  • Доступные параметры:

НазваниеОбязательныйЗначение по умолчаниюДопустимые значенияОписание
actionНетchangeСтрока действияНазвание действия, которое необходимо осуществить над настройками
  • Возможные коды ответа:

Код ответаДанные ответаОписание
200-Действие успешно совершено
400-Запись с указанным ``record_id`` не найдена
422Данные об ошибкахОшибка в значениях параметров

Изменение настроек записи

  • action: change

  • Доступные параметры:

НазваниеОбязательныйЗначение по умолчаниюДопустимые значенияОписание
stream_typeНет-Вид трансляцииВид трансляции, для которой настраивается запись
launch_typeНет-Способ стартаСпособ старта записи
scheduleНет-Список объектов расписанияСписок объектов запланированных записей
pathНет-Путь в хранилищеПуть в хранилище для сохранения записи
storage_timeНет-Целое число (дни)Количество дней хранения файла записи после ее завершения
dvr_enabledНет-BooleanФлаг, определяющий наличие возможности DVR в плеере
Примечание

Во время активной записи возможно изменять только параметр dvr_enabled

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "cdn-auth-token: $TOKEN" -X PATCH --data '{"stream_type": "long", "dvr_enabled": true}' -H 'Content-Type: application/json'

Старт записи

  • action: start

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "cdn-auth-token: $TOKEN" -X PATCH --data '{"action": "start"}' -H 'Content-Type: application/json'

Остановка записи

  • action: stop

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "cdn-auth-token: $TOKEN" -X PATCH --data '{"action": "stop"}' -H 'Content-Type: application/json'

Cброс DVR

  • action: restart

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "cdn-auth-token: $TOKEN" -X PATCH --data '{"action": "restart"}' -H 'Content-Type: application/json'

Деактивация настроек записи

  • action: deactivate

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

curl "https://api.cdn.sber.cloud/app/recorder-cloud/v1/testaccount/record/$RECORD_ID" -H "cdn-auth-token: $TOKEN" -X PATCH --data '{"action": "deactivate"}' -H 'Content-Type: application/json'