Red5 Documentation

Stream Provisioning

Create Stream Provision

Description

Create a new stream provision for a given Stream and Scope; returns the newly created provision data.

REQUEST

  • URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/{scopeName}/{streamName}?accessToken=<accessToken>
  • Method: POST
  • DATA:
{
  "meta": {
      "authentication": {
      "username": "<username>",
      "password": "<password>"
     },
      "stream": [
        {
          "name": "<variant_name>",
          "bandwidth": "<variant_bitrate>",
          "level": "<variant_level>",
          "properties": {}
         }
],
      "georules": {
      "regions": [
        "<location_name>"
      ],
      "restricted": "<restriction_status>"
    },
    "qos": "<QOS-Constant-Index>"
  }
}

RESPONSE

  • Success: HTTP CODE 200
  • DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
       "meta": {
           "authentication": {
                "username": "<username>",
                "password": "<password>"
            },
            "stream": [
                    {
                        "name": "<variant_name>",
                        "bandwidth": <variant_bitrate>,
                        "level": <variant_level>,
                        "properties": {}
                    }
  ],
            "georules": {
                "regions": [
                    "<location_name>"
                ],
                "restricted": "<restriction_status>"
            },
            "qos": <QOS-Constant-Index>
        }
    },
    "updated": <updated-timestamp>
}
  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

Example

REQUEST URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta/live/stream1?accessToken=xyz123

  • Method: POST
  • Data: JSON
{
  "meta": {
      "authentication": {
      "username": "acme",
      "password": "acme!newpass"
     },
    "stream": [{
          "name": "stream1_3",
          "bandwidth": 200000,
          "level": 3,
          "properties": {
          "videoWidth": 320,
          "videoHeight": 240,
          "videoFPS": 15,
        }
        },
        {
          "name": "stream1_2",
          "bandwidth": 500000,
          "level": 2,
          "properties": {
          "videoWidth": 640,
          "videoHeight": 480,
          "videoFPS": 30,
        }
        },
        {
          "name": "stream1_1",
          "bandwidth": 750000,
          "level": 1,
          "properties": {
          "videoWidth": 800,
          "videoHeight": 600,
          "videoFPS": 30,
        }
        }
    ],
      "georules": {
      "regions": [
        "US",
        "UK"
      ],
       "restricted": "false"
    },
    "qos": 3
  }
}

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "meta": {
            "authentication": {
                "username": "acme",
                "password": "acme!newpass"
            },
            "stream": [
                {
          "name": "stream1_3",
          "bandwidth": 200000,
          "level": 3,
          "properties": {
          "videoWidth": 320,
          "videoHeight": 240,
          "videoFPS": 15,
        }
        },
        {
          "name": "stream1_2",
          "bandwidth": 500000,
          "level": 2,
          "properties": {
          "videoWidth": 640,
          "videoHeight": 480,
          "videoFPS": 30,
        }
        },
        {
          "name": "stream1_1",
          "bandwidth": 750000,
          "level": 1,
          "properties": {
          "videoWidth": 800,
          "videoHeight": 600,
          "videoFPS": 30,
                }
            ],
            "georules": {
                "regions": [
                    "US",
                    "UK"
                ],
                "restricted": "false"
            },
            "qos": 3
        }
    },
    "updated": 1520946314644
}

List Stream Provisions

DESCRIPTION:

Lists the streams that are provisioned through the Stream Manager.

  • URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/?accessToken=<accessToken>

METHOD: GET

RESPONSE

  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

SUCCESS

CODE: 200
DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
        "meta": {
            "authentication": {
                "username": "<username>",
                "password": "<password>"
            },
            "stream": [
                    {
                        "name": "<variant_name>",
                        "level": <variant_level>,
                        "bandwidth": <variant_bitrate>,
                        "properties": {}
                    }
        ],
            "georules": {
                "regions": [
                    "<location_name>"
                ],
                "restricted": "<restriction_status>"
            },
            "qos": <QOS-Constant-Index>
        }
    },
    "updated": <updated-timestamp>
}

Example: Lists the provisioned streams

REQUEST URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta?accessToken=xyz123

Method: GET

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "meta": {
            "authentication": {
                "username": "acme",
                "password": "acme!newpass"
            },
            "stream": [
                {
                    "name": "stream1_1",
                    "bandwidth": 25000,
                    "level": 3,
                    "properties": {}
                },
                {
                    "name": "stream1_2",
                    "bandwidth": 37500,
                    "level": 2,
                    "properties": {}
                },
                {
                    "name": "stream1_3",
                    "bandwidth": 62500,
                    "level": 1,
                    "properties": {}
                }
            ],
            "georules": {
                "regions": [
                    "US",
                    "UK"
                ],
                "restricted": "false"
            },
            "qos": 3
        }
    },
    "updated": 1520946314644
}

Read Stream Provision

DESCRIPTION:

Reads and returns a stream provision from Stream Manager data store for a given Stream and Scope.

  • URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/{scopeName}/{streamName}?accessToken=<accessToken>

METHOD: GET

RESPONSE

  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

SUCCESS

CODE: 200
DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
        "meta": {
            "authentication": {
                "username": "<username>",
                "password": "<password>"
            },
            "stream": [
                    {
                        "name": "<variant_name>",
                        "bandwidth": <variant_bitrate>,
                        "level": <variant_level>,
                        "properties": {}
                    }
        ],
            "georules": {
                "regions": [
                    "<location_name>"
                ],
                "restricted": "<restriction_status>"
            },
            "qos": <QOS-Constant-Index>
        }
    },
    "updated": <updated-timestamp>
}

Example: Reads a stream provision data from store

REQUEST URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta/live/stream1?accessToken=xyz123

Method: GET

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "meta": {
            "authentication": {
                "username": "acme",
                "password": "acme!newpass"
            },
            "stream": [
                {
                    "name": "stream1_1",
                    "bandwidth": 25000,
                    "level": 3,
                    "properties": {}
                },
                {
                    "name": "stream1_2",
                    "bandwidth": 37500,
                    "level": 2,
                    "properties": {}
                },
                {
                    "name": "stream1_3",
                    "bandwidth": 62500,
                    "level": 1,
                    "properties": {}
                }
            ],
            "georules": {
                "regions": [
                    "US",
                    "UK"
                ],
                "restricted": "false"
            },
            "qos": 3
        }
    },
    "updated": 1520946314644
}

Read Stream Provision Fragment

Description

Reads and returns a part of the stream provision from Stream Manager data store for a given Stream and Scope by a specified meta ‘key’.

NOTE: The property targeted by the key parameter must exist at the root level, ie: under the meta object.

URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/{scopeName}/{streamName}?accessToken=<accessToken>&key=<metaKey>

  • Method: GET

  • Parameters:

Parameter Description Value
key Name of a property to be read. This property should exist under the root object meta A property name string

RESPONSE

  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

SUCCESS

  • CODE: 200
  • DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
        "<key>": {
        <data>
    },
    "updated": <updated-timestamp>
}

Example: Reading global authentication information

URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta/live/stream1?accessToken=xyz123&key=authentication

Method: GET

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "authentication": {
            "username": "acme",
            "password": "acme!newpass"
        }
    },
    "updated": 1520946314644
}

Update Stream Provision

DESCRIPTION

Updates a provision in the Stream Manager data store for a given Stream and Scope with new data and returns the updated provision.

  • URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/{scopeName}/{streamName}?accessToken=<accessToken>
  • METHOD: PUT
  • DATA:
{
  "meta": {
    "authentication": {
      "username": "<username>",
      "password": "<password>"
    },
    "stream": [
                    {
                        "name": "<variant_name>",
                        "bandwidth": <variant_bitrate>,
                        "level": <variant_level>,
                        "properties": {}
                    }
      ],
    "georules": {
      "regions": [
        "<location_name>"
      ],
      "restricted": "<restriction_status>"
    },
    "qos": <QOS-Constant-Index>
  }
}

RESPONSE

  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

SUCCESS

  • CODE: 200
  • DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
        "meta": {
            "authentication": {
                "username": "<username",
                "password": "<password>"
            },
            "stream": [
                    {
                        "name": "<variant_name>",
                        "bandwidth": <variant_bitrate>,
                        "level": <variant_level>,
                        "properties": {}
                    }
        ],
            "georules": {
                "regions": [
                    "<location_name>"
                ],
                "restricted": "<restriction_status>"
            },
            "qos": <QOS-Constant-Index>
        }
    },
    "updated": <updated-timestamp>
}

Example: Updating authentication password and inverting georule restriction status

  • URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta/live/stream1?accessToken=xyz123
  • Method: PUT
  • Data: JSON
{
  "meta": {
    "authentication": {
      "username": "acme",
      "password": "acme!diffpass"
    },
    "stream": [{
          "name": "stream1_1",
          "bandwidth": 25000,
          "level": 3,
          "properties": {

          }
        },
        {
          "name": "stream1_2",
          "bandwidth": 37500,
          "level": 2,
          "properties": {

          }
        },
        {
          "name": "stream1_3",
          "bandwidth": 62500,
          "level": 1,
          "properties": {

          }
        }
    ],
    "georules": {
     "regions": [
        "US",
        "UK"
      ],
      "restricted": "true"
     },
    "qos": 3
  }
}

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "meta": {
            "authentication": {
                "username": "acme",
                "password": "acme!diffpass"
            },
            "stream": [
                {
                    "name": "stream1_1",
                    "bandwidth": 25000,
                    "level": 3,
                    "properties": {}
                },
                {
                    "name": "stream1_2",
                    "bandwidth": 37500,
                    "level": 2,
                    "properties": {}
                },
                {
                    "name": "stream1_3",
                    "bandwidth": 62500,
                    "level": 1,
                    "properties": {}
                }
            ],
            "georules": {
                "regions": [
                    "US",
                    "UK"
                ],
                "restricted": "true"
            },
            "qos": 3
        }
    },
    "updated": 1520947709222
}

Delete Stream Provision

DESCRIPTION

Deletes a stream provision from Stream Manager data store by a given Stream and Scope and returns the deleted provision data.

  • URI: http://{host}:{port}/streammanager/api/3.1/admin/event/meta/{scopeName}/{streamName}?accessToken=<accessToken>
  • METHOD: DELETE

RESPONSE

  • Failure: HTTP CODE 400 or 404
  • Data:
{
  "errorMessage": "<error-message-string>",
  "timestamp": <error-timestamp>
}

SUCCESS

  • CODE: 200
  • DATA:
{
    "name": "<streamName>",
    "scope": "<scopeName>",
    "data": {
        "meta": {
            "authentication": {
                "username": "<username",
                "password": "<password>"
            },
            "stream": [
                    {
                        "name": "<variant_name>",
                        "bandwidth": <variant_bitrate>,
                        "level": <variant_level>,
                        "properties": {}
                    }
       ],
            "georules": {
                "regions": [
                    "<location_name>"
                ],
                "restricted": "<restriction_status>"
            },
            "qos": <QOS-Constant-Index>
        }
    },
    "updated": <updated-timestamp>
}

Example: Deletes the stream provision created earlier

  • URI: https://streammanager.url.com/streammanager/api/3.1/admin/event/meta/live/stream1?accessToken=xyz123
  • Method: DELETE

RESPONSE

  • Success: HTTP CODE 201
  • Data:
{
    "name": "stream1",
    "scope": "live",
    "data": {
        "meta": {
            "authentication": {
                "username": "acme",
                "password": "acme!newpass"
            },
            "stream": [
                {
                    "name": "stream1_1",
                    "bandwidth": 25000,
                    "level": 3,
                    "properties": {}
                },
                {
                    "name": "stream1_2",
                    "bandwidth": 37500,
                    "level": 2,
                    "properties": {}
                },
                {
                    "name": "stream1_3",
                    "bandwidth": 62500,
                    "level": 1,
                    "properties": {}
                }
            ],
            "georules": {
                "regions": [
                    "US",
                    "UK"
                ],
                "restricted": "false"
            },
            "qos": 3
        }
    },
    "updated": 1520947709222
}