Перейти к содержанию

API для Restream-ресурса $

Описание

В этом разделе описаны методы API для создания, удаления и изменения конфигурации ваших ресурсов.

Все ответы (включая ошибки) возвращаются в формате JSON.

Ниже приведены примеры для управления и конфигурации сервисов, связанных с услугой рестриминга.

Конфигурация для Restream-ресурса

Получить все ресурсы

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/resources

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 Все Restream-ресурсы для аккаунта или описание ошибки JSON Получен список ресурсов или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/app/restream/v2/aloha/resources

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

{
    "account": "aloha",
    "modification_ts": 1572586121,
    "data": {
        "resources": [
            {
            "resource_id": "ewq-123-ewq",
            "name": "asdfasfewefse",
            "type": "short",
            "active": true,
            "creation_ts": 1572586121,
            "modification_ts": 1572586121,
            "restreams": [
                {
                    "schedule": [
                        {
                            "start": "2019-10-30T13:30:59Z",
                            "stop": "2019-10-30T13:31:00Z"
                        },
                        {
                            "start": "2019-10-30T13:40:59Z",
                            "stop": "2019-10-30T13:41:00Z"
                        }
                    ],
                    "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1",
                    "transcoded": false,
                    "transcode_quality": "",
                    "target_type": "customRTMP",
                    "target_url": "rtmp://a.rtmp.com/live2",
                    "target_key": "key1",
                    "login": "",
                    "password": "",
                    "backup": {
                        "target_url": "rtmp://b.com/live2?q=1",
                        "login": "",
                        "password": ""
                    }
                },
                {
                    "schedule": [],
                    "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1_tcode360p",
                    "transcoded": true,
                    "transcode_quality": "360p",
                    "target_type": "customRTMP",
                    "target_url": "rtmp://a.rtmp.com/live2",
                    "target_key": "key1_360",
                    "login": "",
                    "password": "",
                    "backup": {}
                }
            ]
            }
        ]
    }
}

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

{"success": False, "code": 400, "message": "Client not found"}

Получить конкретный ресурс

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/resources/<resource_id>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 Restream-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/app/restream/v2/aloha/resources/ewq-123-ewq

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

{
  "account": "aloha",
  "resource_id": "ewq-123-ewq",
  "modification_ts": 1583852573,
  "data": {
    "active": true,
    "type": "short",
    "name": "asdfasfewefse",
    "restreams": [
      {
        "schedule": [
          {
            "start": "2019-10-30T13:30:59Z",
            "stop": "2019-10-30T13:31:00Z"
          },
          {
            "start": "2019-10-30T13:40:59Z",
            "stop": "2019-10-30T13:41:00Z"
          }
        ],
        "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1",
        "transcoded": false,
        "transcode_quality": "",
        "target_type": "customRTMP",
        "target_url": "rtmp://a.rtmp.com/live2",
        "target_key": "key1",
        "login": "",
        "password": "",
        "backup": {
          "target_url": "rtmp://b.com/live2?q=1",
          "login": "",
          "password": ""
        }
      },
      {
        "schedule": [],
        "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1_tcode360p",
        "transcoded": true,
        "transcode_quality": "360p",
        "target_type": "customRTMP",
        "target_url": "rtmp://a.rtmp.com/live2",
        "target_key": "key1_360",
        "login": "",
        "password": "",
        "backup": {}
      }
    ],
    "resource_id": "ewq-123-ewq",
    "creation_ts": 1583852573,
    "modification_ts": 1583852573
  }
}

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

{"success": False, "code": 400, "message": "Client not found"}

Создать ресурс

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/resources

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными создаваемого ресурса
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 resource_id или описание ошибки JSON Ресурс создан
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X POST \
  -d '{ \
        "active": true, \
        "name": "asdfasfewefse", \
        "type": "short", \
        "restreams": [ \
            { \
                "schedule": [ \
                    { \
                        "start": "2019-10-30T13:30:59Z", \
                        "stop": "2019-10-30T13:31:00Z" \
                    }, \
                    { \
                        "start": "2019-10-30T13:40:59Z", \
                        "stop": "2019-10-30T13:41:00Z" \
                    } \
                ], \
                "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1", \
                "transcoded": false, \
                "transcode_quality": "", \
                "target_type": "customRTMP", \
                "target_url": "rtmp://a.rtmp.com/live2", \
                "target_key": "key1", \
                "login": "", \
                "password": "", \
                "backup": { \
                    "target_url": "rtmp://b.com/live2?q=1", \
                    "login": "", \
                    "password": "" \
                } \
            }, \
            { \
                "schedule": [], \
                "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1_tcode360p", \
                "transcoded": true, \
                "transcode_quality": "360p", \
                "target_type": "customRTMP", \
                "target_url": "rtmp://a.rtmp.com/live2", \
                "target_key": "key1_360", \
                "login": "", \
                "password": "", \
                "backup": {} \
            } \
        ] \
    }' \
  https://api.cdnvideo.ru/app/restream/v2/aloha/resources

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

{
"success":true,
"code":200,
"message":"OK",
"resource_id": "123-qwe-123"
}

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

{"success": False, "code": 400, "message": "Client not found"}

Изменить конкретный ресурс

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/resources/<resource_id>

  • Тип запроса: PUT
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с новыми данными ресурса
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 OK или описание ошибки JSON Ресурс изменен
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X PUT \
  -d '{ \
        "active": true, \
        "name": "asdfasfewefse", \
        "type": "short", \
        "restreams": [ \
            { \
            "schedule": [ \
                { \
                    "start": "2019-10-30T13:30:59Z", \
                    "stop": "2019-10-30T13:31:00Z" \
                }, \
                { \
                    "start": "2019-10-30T13:40:59Z", \
                    "stop": "2019-10-30T13:41:00Z" \
                } \
            ], \
            "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1", \
            "transcoded": false, \
            "transcode_quality": "", \
            "target_type": "customRTMP", \
            "target_url": "rtmp://a.rtmp.com/live2", \
            "target_key": "key1", \
            "login": "", \
            "password": "", \
            "backup": { \
                "target_url": "rtmp://b.com/live2?q=1", \
                "login": "", \
                "password": "" \
            } \
        }, \
        { \
            "schedule": [], \
            "source": "rtmp://a.r.cdnvideo.net/livemaster/aaaaa_teststream1_tcode360p", \
            "transcoded": true, \
            "transcode_quality": "360p", \
            "target_type": "customRTMP", \
            "target_url": "rtmp://a.rtmp.com/live2", \
            "target_key": "key1_360", \
            "login": "", \
            "password": "", \
            "backup": {} \
        }]}' \
  https://api.cdnvideo.ru/app/restream/v2/aloha/resources/123-qwe-123

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

{
"success":true,
"code":200,
"message":"OK"
}

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

{"success": False, "code": 400, "message": "Client not found"}

Получение статусов ресурсов

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/status

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 Статус всех Restream-ресурсов или описание ошибки JSON Получен статус
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X GET \
  https://api.cdnvideo.ru/app/restream/v2/aloha/status

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

{
  "account": "aloha",
  "data": [
    {
      "resource_id": "ewq-123-ewq",
      "status": [
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url",
          "target_key": "key1"
        },
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url2",
          "target_key": "key1"
        },
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url3",
          "target_key": "key1"
        }
      ]
    }
  ]
}

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

{"success": False, "code": 400, "message": "Client not found"}

Получение статуса конкретного ресурса

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/status?resource_id=<resource_id>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 Статус Restream-ресурса или описание ошибки JSON Получен статус
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X GET \
  'https://api.cdnvideo.ru/app/restream/v2/aloha/status?resource_id=ewq-123-ewq'

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

{
  "account": "aloha",
  "data": [
    {
      "resource_id": "ewq-123-ewq",
      "status": [
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url",
          "target_key": "key1"
        },
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url2",
          "target_key": "key1"
        },
        {
          "status": {
            "code": 3,
            "description": "Source stream is not published"
          },
          "source": "url",
          "target_url": "url3",
          "target_key": "key1"
        }
      ]
    }
  ]
}

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

{"success": False, "code": 400, "message": "Client not found"}

Получение истории статусов конкретного ресурса

URL: https://api.cdnvideo.ru/app/restream/v2/<your_account_name>/history?resource_id=<resource_id>&start=<YYYY-mm-ddTHH:MM:SSZ>&end=<YYYY-mm-ddTHH:MM:SSZ>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 История статусов Restream-ресурса или описание ошибки JSON Получена история статусов
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X GET \
  'https://api.cdnvideo.ru/app/restream/v2/aloha/history?resource_id=ewq-123-ewq&start=2020-03-01T12:00:00Z&end=2020-03-01T14:00:00Z'

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

{
    "account": "aloha",
    "resource_id": "ewq-123-ewq",
    "start": "2020-03-01T12:00:00",
    "end": "2020-03-01T13:00:00",
    "data": [
        {
            "source": "url",
            "history": {
                "target_url1": {
                    "target_key1”: [
                        {
                            "code": 2,
                            "description": "Source stream not found",
                            "time": 1583065877
                        },
                        {
                            "code": 0,
                            "description": "OK",
                            "time": 1583065879
                        },
                        {
                            "code": 7,
                            "description": "Restream stopped",
                            "time": 1583067077
                        }
                    ]
                }
            }
        },
        {
            "source": "url2",
            "history": {
                "target_url2": {
                    "target_key2: [
                        {
                            "code": 5,
                            "description": "No status changes found",
                            "time": 1583074800
                        }
                    ]
                }
            }
        }
    ]
}

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

{"success": False, "code": 400, "message": "Client not found"}