RTMP/RTSP-publish
Получить все ресурсы
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Array или JSON Object в случае ошибки
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Все LIVE-ресурсы для аккаунта или описание ошибки | JSON | Получен список ресурсов или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
[ { "name": "test_resource", "settings": { "RTMP-publish": { "domain": "p0q2zwj4yih.a.trbcdn.net", "pub_protocol": "rtmp", "master_stream": "jws2w_test_resource.smil", "primary": "a.r.rcloud.ru", "application": "livemaster", "dist_protocol": "https", "backup": "b.r.rcloud.ru" } }, "streams": { "someid1": { "stream_name": "someid1_stream01", "password": "RtdHESB7aA7rdKDCuVYn5W9Zp", "resolution": "720p", "name": "stream01", "smil": { "BANDWIDTH": "5000000", "RESOLUTION": "1280x720" } }, "someid2": { "stream_name": "someid2_stream02", "password": "dRKLVu6v90P5PhSAMIGSIgKuh", "resolution": "1080p", "name": "stream02", "smil": { "BANDWIDTH": "10000000", "RESOLUTION": "1920x1080" } } }, "active": true, "creation_ts": 1542872090, "type": "RTMP-publish", "id": "1163546047721937079_p0q2zwj4yih", "resources": { "http": "test" }, "cdn_domain": "test.a.trbcdn.net", "description": "" } ]
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Обратите внимание
Получить конкретный ресурс
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Конкретный LIVE-ресурс для аккаунта или описание ошибки | JSON | Получен ресурс или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "name": "test_resource", "settings": { "RTMP-publish": { "domain": "p0q2zwj4yih.a.trbcdn.net", "pub_protocol": "rtmp", "master_stream": "jws2w_test_resource.smil", "primary": "a.r.rcloud.ru", "application": "livemaster", "dist_protocol": "https", "backup": "b.r.rcloud.ru" } }, "streams": { "someid1": { "stream_name": "someid1_stream01", "password": "RtdHESB7aA7rdKDCuVYn5W9Zp", "resolution": "720p", "name": "stream01", "smil": { "BANDWIDTH": "5000000", "RESOLUTION": "1280x720" } }, "someid2": { "stream_name": "someid2_stream02", "password": "dRKLVu6v90P5PhSAMIGSIgKuh", "resolution": "1080p", "name": "stream02", "smil": { "BANDWIDTH": "10000000", "RESOLUTION": "1920x1080" } } }, "active": true, "creation_ts": 1542872090, "type": "RTMP-publish", "id": "1163546047721937079_p0q2zwj4yih", "resources": { "http": "test" }, "cdn_domain": "test.a.trbcdn.net", "description": "" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Обратите внимание
Получить статус конкретного ресурса
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Статус Live-ресурса или описание ошибки | JSON | Получен статус ресурса или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
Формат данных ответа:
Параметр | Описание | Возможные значения |
---|---|---|
resource | ID ресурса | ID ресурса из URL запроса |
status | Статус ресурса | "Completed" / "Processing" / "Error" |
message | Описание статуса | "" / "dns processing" / "configuration processing" |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
{"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
{"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
Создать ресурс
URL: https://apicdn.rcloud.ru/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": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "1163546047721937079_p0q2zwj4yih" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменить ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Деактивировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"name": "test_resource", "active": false, "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103856008586" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Активировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"name": "test_resource", "active": true, "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103856008586" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Локальная авторизация $
Создание ресурса с локальной авторизацией
URL: https://apicdn.rcloud.ru/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 '{"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "1163546047721937079_p0q2zwj4yih" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменение локальной авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"auth": {"md5": {"secret": "456", "forever": true}}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Внешняя авторизация $
Создание ресурса с внешней авторизацией
URL: https://apicdn.rcloud.ru/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 '{"auth": {"url": "https://test.com/yourscript"}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "1163546047721937079_p0q2zwj4yih" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменение внешней авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"auth": {"url": "https://test.com/yourscript2"}, "name": "test_resource", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Ограничения раздачи $
Создание ресурса с ограничением раздачи по странам, IP адресам, referer или User-Agent
URL: https://apicdn.rcloud.ru/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": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "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://apicdn.rcloud.ru/cdn/api/v1/testaccount/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" }
Изменение ограничений раздачи ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{"status": "accept", "task_id": "20180402162358692413"}
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Получение ссылок для публикации и раздачи
Для того, чтобы получить полные ссылки для публикации и раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.
Ссылка для публикации потока
<pub_protocol>://<primary|backup>/<application>/<stream_name>?auth=<password>
Пример итоговой ссылки для публикации:
rtmp://a.r.rcloud.ru/livemaster/someid1_stream01?auth=MkE5MGtjbPljT52t491y6z14C
Ссылка для раздачи потока
<dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8
Пример итоговой ссылки для раздачи:
https://p0q2zwj4yih.a.trbcdn.net/livemaster/jws2w_test_resource.smil/playlist.m3u8
Транскодирование $
Вы можете заказать услугу транскодирования входного потока в несколько качеств. Это позволит избежать дополнительных затрат на оборудование или программное обеспечение.
Важно
Данная услуга оплачивается согласно тарифам, указанным в личном кабинете.
Профили транскодирования
На данный момент мы предлагаем следующие профили транскодирования:
ID профиля | Качества | Кодек для видео | Кодек для аудио | Объединение качеств в один поток |
---|---|---|---|---|
360_480_720 | 360p, 480p, 720p | h.264 | AAC/mp3 | + |
480_720_1080 | 480p, 720p, 1080p | h.264 | AAC/mp3 | + |
360_480_720_1080 | 360p, 480p, 720p, 1080p | h.264 | AAC/mp3 | + |
Заказать услугу
URL: https://apicdn.rcloud.ru/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", "transcode_profile": "360_480_720", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "1163546047721937079_p0q2zwj4yih" }
{"status": "error", "message": "Json invalid", "description": "transcode_profile should be one of ['480_720_1080', '360_480_720', '360_480_720_1080']. Not 360_480"}
Обратите внимание
Изменить услугу
Обратите внимание
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: 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", "transcode_profile": "360_480_720_1080", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103450831471" }
{"status": "error", "message": "Json invalid", "description": "there must be only one stream to be transcoded. Not 0"}
Обратите внимание
Отключить услугу
Обратите внимание
Данный запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле PUT запроса.
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: 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", "transcode_profile": "", "type": "RTMP-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "status": "accept", "task_id": "20181122103450831472" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
SRT-publish
Получить все ресурсы
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Array или JSON Object в случае ошибки
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Все LIVE-ресурсы для аккаунта или описание ошибки | JSON | Получен список ресурсов или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
[ { "id": "3087695896608003328_cybku4cl0av", "name": "test_resource", "type": "SRT-publish", "active": true, "streams": { "someid1": { "name": "stream01", "smil": { "BANDWIDTH": "5000000", "RESOLUTION": "1280x720" }, "password": "IEVM5Vyew2nEjPcYZmaskikMN", "resolution": "720p", "stream_name": "someid1_stream01" }, "someid2": { "name": "stream02", "smil": { "BANDWIDTH": "10000000", "RESOLUTION": "1920x1080" }, "password": "SA4fxfaJGK6jLcaADwYZZhe2S", "resolution": "1080p", "stream_name": "someid2_stream02" } }, "settings": { "SRT-publish": { "backup": "b.r.rcloud.ru", "domain": "test.a.trbcdn.net", "primary": "a.r.rcloud.ru", "application": "livemastersrt", "pub_protocol": "srt", "dist_protocol": "https", "master_stream": "kqa3m_test_resource.smil", "transcode_profile": "" } }, "resources": { "http": "test" }, "creation_ts": 1686209143, "description": "", "locations": { "/": { "cache": { "live": true, "valid": { "2xx": "300s", "3xx": "1s", "4xx": "1s", "5xx": "1s" } } } }, "cache": { "live": true, "consider_args": false }, "cdn_domain": "test.a.trbcdn.net" } ]
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Обратите внимание
Для получения неактивных ресурсов используйте query-параметр "active" с значением "false"
Получить конкретный ресурс
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Конкретный LIVE-ресурс для аккаунта или описание ошибки | JSON | Получен ресурс или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "id": "3087695896608003328_cybku4cl0av", "name": "test_resource", "type": "SRT-publish", "active": true, "streams": { "someid1": { "name": "stream01", "smil": { "BANDWIDTH": "5000000", "RESOLUTION": "1280x720" }, "password": "IEVM5Vyew2nEjPcYZmaskikMN", "resolution": "720p", "stream_name": "someid1_stream01" }, "someid2": { "name": "stream02", "smil": { "BANDWIDTH": "10000000", "RESOLUTION": "1920x1080" }, "password": "SA4fxfaJGK6jLcaADwYZZhe2S", "resolution": "1080p", "stream_name": "someid2_stream02" } }, "settings": { "SRT-publish": { "backup": "b.r.rcloud.ru", "domain": "test.a.trbcdn.net", "primary": "a.r.rcloud.ru", "application": "livemastersrt", "pub_protocol": "srt", "dist_protocol": "https", "master_stream": "kqa3m_test_resource.smil", "transcode_profile": "" } }, "resources": { "http": "test" }, "creation_ts": 1686209143, "description": "", "locations": { "/": { "cache": { "live": true, "valid": { "2xx": "300s", "3xx": "1s", "4xx": "1s", "5xx": "1s" } } } }, "cache": { "live": true, "consider_args": false }, "cdn_domain": "test.a.trbcdn.net" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Обратите внимание
Для получения неактивного ресурса используйте query-параметр "active" с значением "false"
Получить статус конкретного ресурса
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Статус Live-ресурса или описание ошибки | JSON | Получен статус ресурса или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
Формат данных ответа:
Параметр | Описание | Возможные значения |
---|---|---|
resource | ID ресурса | ID ресурса из URL запроса |
status | Статус ресурса | "Completed" / "Processing" / "Error" |
message | Описание статуса | "" / "dns processing" / "configuration processing" |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
{"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
{"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
Создать ресурс
URL: https://apicdn.rcloud.ru/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": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "3087695896608003328_cybku4cl0av" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменить ресурс
Обратите внимание
Данный запрос полностью заменяет конфигурацию ресурса на данные, передаваемые в теле PUT запроса.
URL: https://apicdn.rcloud.ru/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": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Деактивировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103856008586" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Активировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103856008586" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Локальная авторизация $
Создание ресурса с локальной авторизацией
URL: https://apicdn.rcloud.ru/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 '{"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "3087695896608003328_cybku4cl0av" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменение локальной авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"auth": {"md5": {"secret": "456", "forever": true}}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Внешняя авторизация $
Создание ресурса с внешней авторизацией
URL: https://apicdn.rcloud.ru/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 '{"auth": {"url": "https://test.com/yourscript"}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}, "someid2": {"name": "stream02", "resolution": "1080p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "3087695896608003328_cybku4cl0av" }
{"status": "error", "message": "Json invalid", "description": "required key name isn't provided"}
Изменение внешней авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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 '{"auth": {"url": "https://test.com/yourscript2"}, "name": "test_resource", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "360p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103856008585" }
{"status": "error", "message": "Json invalid", "description": "stream key length should be between 5 and 10. Not 17"}
Ограничения раздачи $
Создание ресурса с ограничением раздачи по странам, IP адресам, referer или User-Agent
URL: https://apicdn.rcloud.ru/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": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "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://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20180402162358692400", "resource_id": "3087695896608003328_cybku4cl0av" }
{ "status": "error", "message": "json invalid", "description": "limitations : Invalid time interval: start:2021-05-11T19:12:00Z, end:2021-05-09T22:12:00Z" }
Изменение ограничений раздачи ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}, "limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{"status": "accept", "task_id": "20180402162358692401"}
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Получение ссылок для публикации и раздачи
Для того, чтобы получить полные ссылки для публикации и раздачи потоков, необходимо соединить параметры live-ресурса, полученные при GET-запросе.
Ссылка для публикации потока
<pub_protocol>://<primary|backup>:19998/?streamid=#!::r=<application>/<stream_name>,auth=<password>
Пример итоговой ссылки для публикации:
srt://a.r.rcloud.ru:19998/?streamid=#!::r=livemastersrt/someid1_stream01,auth=IEVM5Vyew2nEjPcYZmaskikMN
Ссылка для раздачи потока
<dist_protocol>://<domain>/<application>/<master_stream>/playlist.m3u8
Пример итоговой ссылки для раздачи:
https://test.a.trbcdn.net/livemastersrt/kqa3m_test_resource.smil/playlist.m3u8
Транскодирование $
Вы можете заказать услугу транскодирования входного потока в несколько качеств. Это позволит избежать дополнительных затрат на оборудование или программное обеспечение.
Важно
Профили транскодирования
На данный момент мы предлагаем следующие профили транскодирования:
ID профиля | Качества | Кодек для видео | Кодек для аудио | Объединение качеств в один поток |
---|---|---|---|---|
360_480_720 | 360p, 480p, 720p | h.264 | AAC/mp3 | + |
480_720_1080 | 480p, 720p, 1080p | h.264 | AAC/mp3 | + |
360_480_720_1080 | 360p, 480p, 720p, 1080p | h.264 | AAC/mp3 | + |
Заказать услугу
URL: https://apicdn.rcloud.ru/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", "transcode_profile": "360_480_720", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/
{ "status": "accept", "task_id": "20181122103450831469", "resource_id": "3087695896608003328_cybku4cl0av" }
{"status": "error", "message": "Json invalid", "description": "transcode_profile should be one of ['480_720_1080', '360_480_720', '360_480_720_1080']. Not 360_480"}
Обратите внимание
Изменить услугу
Обратите внимание
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: 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", "transcode_profile": "360_480_720_1080", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103450831471" }
{"status": "error", "message": "Json invalid", "description": "there must be only one stream to be transcoded. Not 0"}
Обратите внимание
Отключить услугу
Обратите внимание
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: 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", "transcode_profile": "", "type": "SRT-publish", "streams": {"someid1": {"name": "stream01", "resolution": "720p"}}}' \ https://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/3087695896608003328_cybku4cl0av
{ "status": "accept", "task_id": "20181122103450831472" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
HLS-cache
Получить все ресурсы
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Array или JSON Object в случае ошибки
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Все LIVE-ресурсы для аккаунта или описание ошибки | JSON | Получен список ресурсов или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/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"}
Обратите внимание
Обратите внимание
Получить конкретный ресурс
URL: https://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/resource/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Доступные параметры query string (* - обязательный параметр):
Название | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|
active | Фильтр по активным/деактивированным ресурсам | true / false | true |
Возможные коды ответа:
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Конкретный LIVE-ресурс для аккаунта или описание ошибки | JSON | Получен ресурс или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/cdn/api/v1/<your_account_name>/status/live/<resource_id>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Тип данных ответа: JSON Object
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Статус Live-ресурса или описание ошибки | JSON | Получен статус ресурса или ошибка |
403 | None | None | Запрещено |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
Формат данных ответа:
Параметр | Описание | Возможные значения |
---|---|---|
resource | ID ресурса | ID ресурса из URL запроса |
status | Статус ресурса | "Completed" / "Processing" / "Error" |
message | Описание статуса | "" / "dns processing" / "configuration processing" |
curl -H "CDN-AUTH-TOKEN: $TOKEN" https://apicdn.rcloud.ru/cdn/api/v1/testaccount/status/live/3087695896608003328_cybku4cl0av
{"resource": "3087695896608003328_cybku4cl0av", "status": "Completed", "message": ""}
{"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}
Создать ресурс
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/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"}
Изменить ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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": "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://apicdn.rcloud.ru/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"}
Деактивировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
{ "status": "accept", "task_id": "20190305103450831479" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Активировать ресурс
Обратите внимание
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/9282601590143242685_pqy19d9z3pm
{ "status": "accept", "task_id": "20190305103450831479" }
{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}
Локальная авторизация $
Обратите внимание
Важно
Создание ресурса с локальной авторизацией
URL: https://apicdn.rcloud.ru/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}}}}' \ https://apicdn.rcloud.ru/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"}
Изменение локальной авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/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"}
Внешняя авторизация $
Важно
Создание ресурса с внешней авторизацией
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/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"}
Изменение внешней авторизации ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/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://apicdn.rcloud.ru/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://apicdn.rcloud.ru/cdn/api/v1/testaccount/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" }
Изменение ограничений раздачи ресурса
Обратите внимание
URL: https://apicdn.rcloud.ru/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://apicdn.rcloud.ru/cdn/api/v1/testaccount/resource/live/1163546047721937079_p0q2zwj4yih
{ "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