- tocdepth
2
API для DVR и записи потоков
В этом разделе описаны методы API для создания, удаления и изменения настроек DVR и записи потоков.
На этой странице
Общие сведения
Обязательные заголовки: CDN-AUTH-TOKEN (авторизационный токен, см. Авторизация);
Тип данных ответа: application/json;
Под ID ресурса понимается ID RTMP/RTSP-publish ресурса;
Используемые сокращения: ИП – исходный плейлист.
Общие ошибки
В ответ на любой из запросов может вернуться одна из следующих ошибок:
Код ответа | Content-Type | Тело ответа | Описание |
---|---|---|---|
400 | text/plain | Invalid path | Неверный путь |
401 | text/plain | Invalid token | Не передан заголовок с токеном |
403 | text/plain | Invalid account | Указан неверный аккаунт |
404 | text/plain | Not found | Неверный URL |
405 | text/plain | Method is not allowed | Отказано в доступе к действию |
500 | text/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_id | ID ресурса | ID ресурса, к которому применены настройки |
all | Присутствие/отсутствие в списке параметров | Вернуть все инстансы записей, в т.ч. закончившиеся и уже начавшиеся |
extra_fields | Список строк, разделенный запятыми | Вернуть дополнительные поля |
Доступные значения параметра
extra_fields
:
Значение | Описание |
---|---|
status | Статус записи (wait/progress/finish/error) |
Возможные коды ответа:
Код ответа | Данные ответа |
---|---|
200 | Список данных о настройках |
Формат данных о настройках:
Ключ | Описание |
---|---|
id | Идентификатор |
id | Идентификатор |
resource_id | ID ресурса |
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 | Да | - | URL | URL исходного плейлиста |
launch_type | Да | - | Способ старта | Способ старта записи |
schedule | Нет | - | Список объектов расписания | Список объектов запланированных записей |
path | Нет | /records/{now}.m3u8 | Путь в хранилище | Путь в хранилище для сохранения записи |
stop_timeout | Нет | 1800 | Целое число (секунды) | Длина timeout-а ожидания потока в секундах |
storage_time | Нет | -1 (не удалять) | Целое число (дни) | Количество дней хранения файла записи после ее завершения |
dvr_enabled | Нет | false | Boolean | Флаг, определяющий наличие возможности DVR в плеере |
dvr_window | Нет | 43200 | Целое число (секунды) | Окно записи |
smil | Нет | false | Boolean | Флаг, определяющий, является ли ИП master-плейлистом |
qualities | Нет | - | Объект | Объект с ссылками и названиями качеств ИП |
Возможные значения вида трансляции:
Значение | Описание |
---|---|
short | Краткосрочная трансляция (до 12 часов) |
long | Постоянная трансляция |
Возможные значения способов старта:
Значение | Описание |
---|---|
stream_start | Старт по публикации потока |
button | Старт по нажатию кнопки (запросу) |
schedule* | Старт в заранее определенное время |
* — данный способ доступен только для записи краткосрочных трансляций
Возможные коды ответа:
Код ответа | Данные ответа | Описание |
---|---|---|
201 | record_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_id | ID ресурса | ID ресурса, к которому применены настройки |
all | Присутствие/отсутствие в списке параметров | Вернуть все инстансы записей, в т.ч. закончившиеся и уже начавшиеся |
extra_fields | Список строк, разделенный запятыми | Вернуть дополнительные поля |
Доступные значения параметра
extra_fields
:
Название | Описание |
---|---|
status | Статус записи (wait/progress/finish/error) |
Возможные коды ответа:
Название | Описание |
---|---|
200 | Список данных о настройках |
Формат данных о настройках:
Ключ | Описание |
---|---|
id | Идентификатор |
resource_id | ID ресурса |
id | Идентификатор |
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/$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'
для Dev & Test