Help Center/ Live/ Media Live API Reference/ Examples/ Example 1: Creating a Channel
Updated on 2024-08-13 GMT+08:00

Example 1: Creating a Channel

This section describes how to call Media Live APIs to create a channel.

Used APIs

To use token-based authentication, obtain a user token and add X-Auth-Token to the request header of the service API when making an API request.

Procedure

  1. Obtain a user token and use it to authenticate the calling of Media Live APIs.

    For details, see Making an API Request. CN North-Beijing4 is used as an example. If you need to call a Media Live API in another region, replace the endpoint with the IAM endpoint of the corresponding region.

    POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
    Content-Type: application/json
    {
      "auth": {
        "identity": {
          "methods": [
            "password"
          ],
          "password": {
            "user": {
              "name": "username", 
              "password": "password", 
              "domain": {
                "name": "domainname" 
              }
            }
          }
        },
        "scope": {
          "project": {
             "name": "projectname"      
     }
        }
      }
    }
    As shown in Figure 1, information in the red box indicates the user token.
    Figure 1 Obtaining the user token

  2. Select the POST request method and enter the request URI.

    POST https://live.cn-north-4.myhuaweicloud.com/v1/{project_id}/ott/channels
    live.cn-north-4.myhuaweicloud.com is the endpoint of Media Live. You can obtain the endpoint from Endpoints.

    The region where an IAM API is called must be the same as the region where a Media Live API is called. For example, the user token obtained when you call an IAM API in the CN North-Beijing4 region can only be used to authenticate the requests for calling Media Live APIs in the CN North-Beijing4 region.

  3. In the request header, add X-Auth-Token and set its value to be the token obtained in 1.
  4. Transfer the following parameters in the request body. For details about the parameters, see the API for creating an OTT channel.

    {
        "domain": "push.domain.com",
        "app_name": "ott",
        "id": "testChannel",
        "name": "testChannel",
        "input": {
            "input_protocol": "FLV_PULL",
            "sources": [
                {
                    "url": "http://push.domain.com/ott/testChannel/index.flv",
                    "bitrate": 2048,
                    "width": 2096,
                    "height": 1024
                }
            ]
        },
        "record_settings": {
            "rollingbuffer_duration": 3600
        },
        "encoder_settings": [
            {
                "template_id": "hd"
            }
        ],
        "endpoints": [
            {
                "hls_package": [
                    {
                        "url": "pull.domain.com/ott/testChannel/index.m3u8",
                        "stream_selection": [
                            {
                                "key": "bitrate=900000-1800000",
                                "max_bandwidth": 1800000,
                                "min_bandwidth": 900000
                            }
                        ],
                        "segment_duration_seconds": 4,
                        "encryption": {
                            "drm_content_id": "xxxx",
                            "system_ids": [
                                "FairPlay"
                            ],
                            "auth_info": "Basic xxxx",
                            "km_url": "https://drmdomain/xxx"
                        }
                    }
                ]
            }
        ],
        "state": "ON"
    }

    If the request succeeds, only a status code 201 Created is returned.

    If the request fails, the following error code and error description are returned along with a status code 400 Bad Request:

    "result_code": "LIVE.100011001",
    "result_msg": "Request parameters is invalid"