В этом разделе описаны методы 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'
- Общие сведения
- Общие ошибки
- Получить настройки всех записей
- Создать настройки записи
- Получить настройки записи конкретного потока
- Действия с настройками записи