Use the Cloud Slicer Live (CSL) API, which is a versioned API, to perform the following tasks:
Category | Description |
---|---|
Cloud Slicer Live Management |
Manage your CSL slicers.
|
Tasks |
Retrieve information about Cloud Slicer Live management tasks.
|
Ingest Points |
Manage the ingest points to which an encoder must push a video feed.
|
Reference |
Retrieve information that you may use when setting up a CSL slicer.
|
Monitoring |
Retrieve information about the health of the link between the encoder and the CSL slicer. GET /managed-slicer/slicer/monitor/Slicer ID
|
The Cloud Slicer Live API uses our standard API authentication.
Use the following workflow to use a CSL slicer to publish a stream:
Identify the slicer version, protocol, and region where your CSL slicer will be created.
Find out the CSL slicer's current status through the Get CSL Slicer endpoint. Wait until the CSL slicer's status is RUNNING.
Use the following base URL:
Manage your CSL slicers.
Creates a CSL slicer.
Prerequisites
Before creating a CSL slicer, you must first perform the following steps:
Use the above information to create a CSL slicer through this endpoint.
After you have created a CSL slicer, find out its current status through the Get CSL Slicer endpoint. Wait until the CSL slicer's status is RUNNING.
Request syntax:
Request body parameters:
Pass the following request body parameters:
Name |
Data Type |
Description |
---|---|---|
configuration |
String |
Defines the slicer's configuration. Specify each setting as a key-value pair. Use a new line character (\n) to delimit each setting. Example: 'configuration': 'slicerID:basketballSlicer\nremote:1\nmeta:event=March Madness'
|
default_slicer_config Required |
Boolean |
Determines whether the slicer will use a default Live Slicer configuration. |
ingest_point_id Required |
String |
Identifies an ingest point by its system-defined ID. Use the Get All Ingest Points endpoint to retrieve a list of ingest points and their system-defined IDs. |
notes |
String |
Defines the slicer's notes. |
profile_id |
String |
Identifies an encoding profile by its system-defined ID. Use the Get Encoding Profiles endpoint to retrieve a list of encoding profiles and their system-defined IDs. Default value: Our service assigns a default encoding profile to the slicer when this property is omitted. |
server_region_id Required |
String |
Identifies the slicer's region by its system-defined ID. You must specify a region that matches the one assigned to this slicer's ingest point (ingest_point_id property). Use the Get CSL Regions endpoint to retrieve a list of regions and their system-defined IDs. |
slicer_id |
String |
Sets the slicer's ID. Use this ID to identify this slicer when setting up a live channel or a live event. |
source_ip Required |
String |
UDP Only Identifies the IP address of the computer generating the UDP multicast stream. |
stream_type_name Required |
String |
Identifies the protocol for the feed that will be ingested by this slicer. |
version_id |
String |
Identifies a slicer version by its system-defined ID. This slicer runs on this slicer version. You must specify a slicer version that is specific to the region defined within this slicer's ingest point (reserved_endpoint_id property). |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path that returns this resource. |
@type |
String |
Returns ManagedSlicer. |
mss_server_id |
String |
Indicates the slicer's system-defined ID. |
slicer |
Dictionary |
Contains information that describes this slicer. |
task |
Dictionary |
Describes the task associated with this request to create a slicer. |
server_region_id |
String |
Indicates the slicer's region by its system-defined ID. Use the Get CSL Regions endpoint to retrieve a list of regions and their system-defined IDs. |
The slicer dictionary describes a slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
creation_time |
String |
Indicates the timestamp (UTC) at which the slicer was created. Example: Sep 28, 2024 9:21:36 PM
|
docker_tag | String |
Reserved for future use. |
ingest_point_id |
String |
Indicates an ingest point by its system-defined ID. Use the Get Ingest Point endpoint to retrieve an ingest point by its system-defined ID. |
isolation_required |
Boolean |
Indicates whether the slicer will run on a private host. |
profile |
String |
Provides basic information about the slicer's encoding profile. Specifically, it indicates the encoding profile's ID, frames per second, and maximum height. Example: 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 1, "id": 4}',
|
server_region |
String |
Indicates the slicer's region by its name. |
slicer_api_url |
String |
Indicates the URL that accepts Live Slicer API requests for this slicer. |
slicer_config |
String |
Indicates this slicer's slicer configuration. Example: 'slicer_config': 'slicerID:slicer_abc338_fgad12_28Sep2022_1664400095\nusername:joe@example.com\napikey:*****\ninput:rtmp\nport:47965\nssl_port:47968\napi_port:47966\nmanual_ip:ingest-prod-1-us-east-1.mss.aws.oath.cloud\nrtmp_url:rtmp://0.0.0.0:47965/mss/d7182b4c-9b72-465d-b218-9c5e1e0fe3gf\n',
|
slicer_domain_name |
String |
Indicates the domain assigned to the slicer. |
slicer_id |
String |
Indicates the slicer's ID. Use this ID to identify this slicer when setting up a live channel or a live event. |
slicer_ports |
Dictionary |
Contains the slicer's ports. |
slicer_secure_stream_url |
String |
Indicates the encrypted URL to which you may push your feed. This slicer will ingest the content that is pushed to this URL. |
slicer_software_version | String | Indicates the slicer software version. |
slicer_stream_key |
String |
RTMP or RTMPS Indicates the slicer's stream key. |
slicer_stream_url |
String |
Indicates the URL to which you may push your feed. This slicer will ingest the content that is pushed to this URL. |
slicer_version |
String |
Indicates a slicer version by its system-defined ID. This slicer runs on this slicer version. |
source_ip_address |
String |
Indicates the IP address of the computer generating the UDP multicast stream. |
status |
String |
Indicates the slicer's status (e.g., INITIALIZING). |
The slicer_ports dictionary describes each port associated with this slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
UDP Only Indicates the port on which the slicer will listen for the UDP stream. |
api_port |
Number |
Indicates the port on which the slicer will listen for API calls. |
ssl_port |
Number |
Indicates the port on which the slicer will expose the authenticated API over TLS. Use this parameter to allow the slicer to communicate with the Live Events Dashboard without causing mixed content blocking. |
The task dictionary describes the task associated with this request to create a slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
id |
String |
Indicates the task's system-defined ID. |
state |
String |
Indicates the task's current state. |
operation |
String |
Indicates the type of operation that was performed. |
Call the create_csl_slicer module (Python 3) to create a CSL slicer. This module imports names from the api_auth module.
import json, requests, datetime, time from api_auth import APICredentials, APIParams class CSLSlicer: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Create a CSL slicer. """ self._create_csl_slicer() def _create_csl_slicer(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers") ingest_point_id = 'f0a214a437024a9c85c59f6f1bd55b3e' # Replace with the desired ingest point's ID. region_id = 'e1d9f8f3c9a24be68177654ded5b2912' # Replace with the desired region's ID. payload = { 'slicer_id': 'basketball_slicer', # Replace with the CSL slicer's Slicer ID. 'ingest_point_id': ingest_point_id, 'server_region_id': region_id, 'default_slicer_config': False, 'stream_type_name': "RTMP", 'configuration': 'remote:on\ndescription:Sports\ninput:rtmp\nautoexpire_age:3' } headers = {'Content-Type': 'application/json'} response = requests.post( url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers ) print(response.json()) CSLSlicer().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers', '@type': 'ManagedSlicer', 'mss_server_id': '2803da54cb8e47668f36908bef564fee', 'slicer': { 'slicer_id': 'basketball_slicer', 'status': 'INITIALIZING', 'server_region': 'us-east-2', 'slicer_version': 'STABLE', 'source_ip_address': '0.0.0.0', 'slicer_api_url': 'https://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:46213', 'slicer_config': 'slicerID:basketball_slicer\nusername:joe@example.com\napikey:*****\ninput:rtmp\nremote:on\ndescription:Sports\nautoexpire_age:3\nport:46210\nssl_port:46213\napi_port:46211\nmanual_ip:ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud\nrtmp_url:rtmp://0.0.0.0:46210/mss/6c03c9bd-78d7-4a93-aebb-74802392fdad\n', 'creation_time': 'Mar 15, 2022 5:03:39 PM', 'slicer_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'slicer_ports': { 'port': 46210, 'api_port': 46211, 'ssl_port': 46213 }, 'slicer_stream_url': 'rtmp://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud/slicer46210', 'slicer_stream_key': '6c03c9bd-78d7-4a93-aebb-74802392fdad', 'slicer_secure_stream_url': 'rtmps://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:4935/slicer46210', 'ingest_point_id': '23b43aec-db87-4d31-8466-3ff67dafa8d9', 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 2, "id": 4}', 'isolation_required': True, 'slicer_software_version': '21061800', 'docker_tag': '0.7.21061800' }, 'task': { 'id': '56bb9b87-6167-4345-b530-3fc4d45be1ea', 'state': 'IN_PROGRESS', 'operation': 'CREATE' }, 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e' }
Deletes a CSL slicer.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired CSL slicer. Use the Get All CSL Slicers endpoint to retrieve a list of CSL slicers and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns CSLSlicer. |
task |
Dictionary |
Contains information that describes the task associated with this request to delete a CSL slicer. |
The task dictionary describes the task created for this CSL slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
id |
String |
Indicates the task's system-defined ID. |
state |
String |
Indicates the task's current state. |
operation |
String |
Indicates the type of operation that was performed. |
Call the delete_csl_slicer module (Python 3) to delete a CSL slicer. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicer: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._delete_csl_slicer() def _delete_csl_slicer(self): csl_slicer_id = '12a214a437024a9c85c59f6f1bd5532g' # Replace with the desired CSL slicer ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/", csl_slicer_id) headers = {'Content-Type': 'application/json'} response = requests.delete( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicer().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/2568156a35804b84b9031948341160e0', '@type': 'ManagedSlicer', 'task': { 'id': '83f4dc38-e280-4f0e-846f-053790592c11', 'state': 'IN_PROGRESS', 'operation': 'DELETE' } }
Retrieves a list of CSL slicers.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of Dictionaries |
Contains a list of your CSL slicers. |
total_items |
Number |
Indicates the total number of CSL slicers. |
The items list describes each CSL slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path that returns this resource. |
@type |
String |
Returns ManagedSlicer. |
id |
String |
Indicates the CSL slicer's system-defined ID. |
created |
String |
Indicates the timestamp at which the CSL slicer was created. |
lastmod |
String |
Indicates the timestamp at which the CSL slicer was last modified. |
profile |
String |
Describes the encoding profile assigned to the CSL slicer. |
slicer_id |
String |
Indicates the CSL slicer's Slicer ID. |
status |
String |
Indicates the CSL slicer's status. |
stream_type_id |
String |
Indicates the system-defined ID for the CSL slicer's protocol. |
slicer_stream_key |
String |
Reserved for future use. |
slicer_stream_url |
String |
Indicates the URL to which you may push your feed. This CSL slicer will ingest the content that is pushed to this URL. |
slicer_secure_stream_url |
String |
RTMP Only Indicates a secure URL to which you may push your feed. This CSL slicer will ingest the content that is pushed to this URL. |
slicer_software_version |
String |
Reserved for future use. |
slicer_version |
String |
Indicates a slicer version by its system-defined ID. This CSL slicer runs on this slicer version. |
channel_id |
String |
Indicates a live channel by its system-defined ID. |
classification |
String |
Reserved for future use. |
notes |
String |
Indicates the notes associated with this CSL slicer. |
slicer_name |
String |
Indicates the CSL slicer's name. |
Call the get_all_csl_slicers module (Python 3) to retrieve a list of CSL slicers. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class CSLSlicers: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get all CSL slicers. """ self._get_all_csl_slicers() def _get_all_csl_slicers(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers") response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) print(response.json()) CSLSlicers().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers', '@type': 'Collection', 'items': [{ '@id': '/api/v4/managed-slicer/slicers/fb35725e43454d4d9bd6d67b355ed690', '@type': 'ManagedSlicer', 'id': 'fb35725e43454d4d9bd6d67b355ed690', 'created': '2022-03-10T17:11:28.403Z', 'lastmod': '2022-03-10T17:11:44.925Z', 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 2, "id": 4}', 'slicer_id': 'devtest1', 'status': 'COMPLETED', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'slicer_stream_key': None, 'slicer_stream_url': 'rtmp://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:46245', 'slicer_secure_stream_url': None, 'slicer_software_version': None, 'slicer_version': 'STABLE', 'channel_id': '', 'classification': 'prod', 'notes': '', 'slicer_name': 'devtest1' }, { '@id': '/api/v4/managed-slicer/slicers/2803da54cb8e47668f36908bef564fee', '@type': 'ManagedSlicer', 'id': '2803da54cb8e47668f36908bef564fee', 'created': '2022-03-15T17:03:40.314Z', 'lastmod': '2022-03-15T17:49:36.221Z', 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 2, "id": 4}', 'slicer_id': 'basketball_slicer', 'status': 'COMPLETED', 'stream_type_id': '', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'slicer_stream_key': '6c03c9bd-78d7-4a93-aebb-74802392fdad', 'slicer_stream_url': 'rtmp://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud/slicer46210', 'slicer_secure_stream_url': 'rtmps://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:4935/slicer46210', 'slicer_software_version': None, 'slicer_version': 'STABLE', 'channel_id': '', 'classification': '', 'notes': '', 'slicer_name': 'basketball_slicer' } ], 'total_items': 2 }
Retrieves a CSL slicer.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired CSL slicer. Use the Get All CSL Slicers endpoint to retrieve a list of CSL slicers and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path that returns this resource. |
@type |
String |
Returns ManagedSlicer. |
slicer |
Dictionary |
Contains information that describes this slicer. |
meta |
Dictionary |
Reserved for future use. |
The slicer dictionary describes a slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
creation_time |
String |
Indicates the timestamp (UTC) at which the slicer was created. Example: Sep 28, 2024 9:21:36 PM
|
docker_tag | String |
Reserved for future use. |
ingest_point_id |
String |
Indicates an ingest point by its system-defined ID. Use the Get Ingest Point endpoint to retrieve an ingest point by its system-defined ID. |
isolation_required |
Boolean |
Indicates whether the slicer will run on a private host. |
profile |
String |
Provides basic information about the slicer's encoding profile. Specifically, it indicates the encoding profile's ID, frames per second, and maximum height. Example: 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 1, "id": 4}',
|
server_image_id |
String |
Reserved for future use. |
server_region |
String |
Indicates the slicer's region by its name. |
server_region_id |
String |
Indicates the slicer's region by its system-defined ID. Use the Get CSL Regions endpoint to retrieve a list of regions and their system-defined IDs. |
slicer_api_url |
String |
Indicates the URL that accepts Live Slicer API requests for this slicer. |
slicer_config |
String |
Indicates this slicer's slicer configuration. Example: 'slicer_config': 'slicerID:slicer_abc338_fgad12_28Sep2022_1664400095\nusername:joe@example.com\napikey:*****\ninput:rtmp\nport:47965\nssl_port:47968\napi_port:47966\nmanual_ip:ingest-prod-1-us-east-1.mss.aws.oath.cloud\nrtmp_url:rtmp://0.0.0.0:47965/mss/d7182b4c-9b72-465d-b218-9c5e1e0fe3gf\n',
|
slicer_domain_name |
String |
Indicates the domain assigned to the slicer. |
slicer_id |
String |
Indicates the slicer's ID. Use this ID to identify this slicer when setting up a live channel or a live event. |
slicer_ports |
Dictionary |
Contains the slicer's ports. |
slicer_secure_stream_url |
String |
Indicates the encrypted URL to which you may push your feed. This slicer will ingest the content that is pushed to this URL. |
slicer_software_version | String | Indicates the slicer software version. |
slicer_stream_key |
String |
RTMP or RTMPS Indicates the slicer's stream key. |
slicer_stream_url |
String |
Indicates the URL to which you may push your feed. This slicer will ingest the content that is pushed to this URL. |
slicer_version |
String |
Indicates a slicer version by its system-defined ID. This slicer runs on this slicer version. |
source_ip_address |
String |
Indicates the IP address of the computer generating the UDP multicast stream. |
status |
String |
Indicates the slicer's status (e.g., INITIALIZING). |
stream_type_id |
String |
Reserved for future use. |
The slicer_ports dictionary describes each port associated with this slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
UDP Only Indicates the port on which the slicer will listen for the UDP stream. |
api_port |
Number |
Indicates the port on which the slicer will listen for API calls. |
ssl_port |
Number |
Indicates the port on which the slicer will expose the authenticated API over TLS. Use this parameter to allow the slicer to communicate with the Live Events Dashboard without causing mixed content blocking. |
Call the get_csl_slicer module (Python 3) to retrieve a CSL slicer. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicer: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_csl_slicer() def _get_csl_slicer(self): csl_slicer_id = '2803da54cb8e47668f36908bef564fee' # Replace with the desired CSL slicer ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/", csl_slicer_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicer().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/262cb37a4c254df9946145917f3ce629', '@type': 'ManagedSlicer', 'slicer': { 'slicer_id': 'basketball_slicer', 'status': 'INITIALIZING', 'server_region': 'us-east-2', 'slicer_version': 'STABLE', 'source_ip_address': '0.0.0.0', 'slicer_api_url': 'https://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:46233', 'slicer_config': 'slicerID:basketball_slicer\nusername:joe@example.com\napikey:*****\ninput:rtmp\nremote:on\ndescription:Sports\nautoexpire_age:3\nport:46230\nssl_port:46233\napi_port:46231\nmanual_ip:ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud\nrtmp_url:rtmp://0.0.0.0:46230/mss/47d3fdc1-86be-4cde-ac80-7019910d7a2f\n', 'creation_time': 'Mar 15, 2022 9:37:00 PM', 'slicer_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'slicer_ports': { 'port': 46230, 'apiPort': 46231, 'sslPort': 46233 }, 'slicer_stream_url': 'rtmp://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud/slicer46230', 'slicer_stream_key': '47d3fdc1-86be-4cde-ac80-7019910d7a2f', 'slicer_secure_stream_url': 'rtmps://ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud:4935/slicer46230', 'ingest_point_id': 'b20eb0a9-c9e2-469f-8f3b-c0b75051dcfb', 'profile': '{"max_bframes": 3, "profile": "high", "aoKbps": null, "skipF": 0, "fps": 30, "vKbps": 2400, "aKbps": 128, "aMaxChannels": 2, "maxW": 1280, "isHD": false, "maxH": 720, "preset": "veryfast", "threads": 4, "vPasses": 2, "EncryptionKey": 2, "id": 4}', 'isolation_required': False, 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': '' }, 'meta': { 'channel_id': '', 'classification': '', 'notes': '', 'slicer_name': 'basketball_slicer' } }
Restarts a CSL slicer.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns ManagedSlicer. |
task |
Dictionary |
Describes the task associated with this request to restart a CSL slicer. |
The task dictionary describes the task associated with this request to restart a CSL slicer through the following properties:
Name |
Data Type |
Description |
---|---|---|
id |
String |
Indicates the task's system-defined ID. |
state |
String |
Indicates the task's current state. |
operation |
String |
Indicates the type of operation that was performed. |
Call the restart_csl_slicer module (Python 3) to restart a CSL slicer. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicer: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._restart_csl_slicer() def _restart_csl_slicer(self): csl_slicer_id = '262cb37a4c254df9946145917f3ce629' # Replace with the desired CSL slicer ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/restart/", csl_slicer_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicer().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/restart/262cb37a4c254df9946145917f3ce629', '@type': 'ManagedSlicer', 'task': { 'id': '9849d233-ea4d-41e2-bc18-192a0be7398b', 'state': 'IN_PROGRESS', 'operation': 'RESTART' } }
Updates a CSL slicer.
Request syntax:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired CSL slicer. Use the Get All CSL Slicers endpoint to retrieve a list of CSL slicers and their system-defined IDs. |
Request body parameters:
Pass the following request body parameters:
Name |
Data Type |
Description |
---|---|---|
configuration |
String |
Defines the slicer's configuration. Specify each setting as a key-value pair. Use a new line character (\n) to delimit each setting. Example: 'configuration': 'slicerID:basketballSlicer\nremote:1\nmeta:event=March Madness'
|
notes |
String |
Defines the slicer's notes. |
slicer_id |
String |
Sets the slicer's ID. Use this ID to identify this slicer when setting up a live channel or a live event. |
version_id |
String |
Identifies a slicer version by its system-defined ID. This slicer runs on this slicer version. You must specify a slicer version that is specific to the region defined within this slicer's ingest point (reserved_endpoint_id property). |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path that returns this resource. |
@type |
String |
Returns ManagedSlicer. |
status_code |
Number |
Indicates the response's HTTP status code. |
message |
String |
Indicates a status message for the requested CSL slicer update. |
Call the update_csl_slicer module (Python 3) to update a CSL slicer. This module imports names from the api_auth module.
import json, requests, datetime, time from api_auth import APICredentials, APIParams class CSLSlicer: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Update a CSL slicer. """ self._update_csl_slicer() def _update_csl_slicer(self): csl_slicer_id = '2803da54cb8e47668f36908bef564fee' # Replace with the desired CSL slicer ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers", csl_slicer_id) payload = { 'slicer_name': 'Basketball Slicer Courtside', # Replace with the CSL slicer's name. 'slicer_id': 'basketball_slicer_courtside' # Replace with the CSL slicer's Slicer ID. } headers = {'Content-Type': 'application/json'} response = requests.patch( url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers ) print(response.json()) CSLSlicer().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/1234a2ab35414027b80c05a5c6c568ec', '@type': 'ManagedSlicer', 'status_code': 200, 'message': 'Slicer Update OK' }
A task is created whenever you create, update, or delete a CSL slicer or ingest point.
Retrieve a list of CSL slicer tasks.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of Dictionaries |
Contains a list of your tasks. |
total_items |
Number |
Indicates the total number of tasks. |
The items list describes each task through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates a relative path that returns this resource. |
@type |
String |
Returns ManagedSlicerTask. |
id |
String |
Indicates the task's system-defined ID. |
operation |
String |
Indicates the type of operation that was performed. Valid values are: CREATE | UPDATE | DELETE
|
state |
String |
Indicates the task's current state. |
timestamp |
Number |
Indicates the timestamp, in Unix time (seconds), at which the task was initiated. |
Call the get_all_csl_slicer_tasks module (Python 3) to retrieve a list of your CSL slicer tasks. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class Tasks: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get all CSL slicer tasks. """ self._get_all_csl_slicer_tasks() def _get_all_csl_slicer_tasks(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers/tasks") response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) print(response.json()) Tasks().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/tasks', '@type': 'Collection', 'items': [{ '@id': '/api/v4/managed-slicer/slicers/tasks/g87d9bbf-6d5e-4c43-9f03-6c5b2f5e28ee', '@type': 'ManagedSlicerTask', 'id': 'g87d9bbf-6d5e-4c43-9f03-6c5b2f5e28ee', 'state': 'completed', 'operation': 'CREATE', 'timestamp': 1646346005 }, { '@id': '/api/v4/managed-slicer/slicers/tasks/a6151b9a-bb14-46cf-a479-d5c0e5bc0b4d', '@type': 'ManagedSlicerTask', 'id': 'a6151b9a-bb14-46cf-a479-d5c0e5bc0b4d', 'state': 'completed', 'operation': 'CREATE', 'timestamp': 1646932287 }, { '@id': '/api/v4/managed-slicer/slicers/tasks/247016d9-3814-4858-a115-32efbaf8ac03', '@type': 'ManagedSlicerTask', 'id': '247016d9-3814-4858-a115-32efbaf8ac03', 'state': 'completed', 'operation': 'CREATE', 'timestamp': 1647295968 }, { '@id': '/api/v4/managed-slicer/slicers/tasks/h1dde543-8114-4af7-b690-13b8c0c05820', '@type': 'ManagedSlicerTask', 'id': 'h1dde543-8114-4af7-b690-13b8c0c05820', 'state': 'completed', 'operation': 'CREATE', 'timestamp': 1647296139 }, { '@id': '/api/v4/managed-slicer/slicers/tasks/d236db57-bd85-449d-8373-d642f39eda84', '@type': 'ManagedSlicerTask', 'id': 'd236db57-bd85-449d-8373-d642f39eda84', 'state': 'completed', 'operation': 'CREATE', 'timestamp': 1647296804 } ], 'total_items': 5 }
Retrieve a list of ingest point tasks.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of Dictionaries |
Contains a list of your tasks. |
total_items |
Number |
Indicates the total number of tasks. |
The items list describes each task through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates a relative path that returns this resource. |
@type |
String |
Returns ReservedEndpointTask. |
id |
String |
Indicates the task's system-defined ID. |
operation |
String |
Indicates the type of operation that was performed. Valid values are: CREATE | UPDATE | DELETE
|
state |
String |
Indicates the task's current state. |
timestamp |
Number |
Indicates the timestamp, in Unix time (seconds), at which the task was initiated. |
Call the get_all_ingest_point_tasks module (Python 3) to retrieve a list of your ingest point tasks. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class Tasks: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get all ingest point tasks. """ self._get_all_ingest_point_tasks() def _get_all_ingest_point_tasks(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/ingest-points/tasks") response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) print(response.json()) Tasks().run()
Response:
{ '@id': '/api/v4/managed-slicer/ingest-points/tasks', '@type': 'Collection', 'items': [{ '@id': '/api/v4/managed-slicer/ingest-points/tasks/5eead8d6-79e3-4a3d-915e-a886199dfde0', '@type': 'ReservedEndpointTask', 'id': '5eead8d6-79e3-4a3d-915e-a886199dfde0', 'state': 'COMPLETED', 'operation': 'DELETE', 'timestamp': 1664900951 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/7c401e2e-d53f-4b82-9ba2-f89cb00d245a', '@type': 'ReservedEndpointTask', 'id': '7c401e2e-d53f-4b82-9ba2-f89cb00d245a', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1663974437 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/5e395271-b1d3-44c2-ab1b-a55b1d1b96e6', '@type': 'ReservedEndpointTask', 'id': '5e395271-b1d3-44c2-ab1b-a55b1d1b96e6', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1663976769 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/64242fbe-0bc3-47e4-ae5a-6a1461165421', '@type': 'ReservedEndpointTask', 'id': '64242fbe-0bc3-47e4-ae5a-6a1461165421', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1664392131 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/c0b71aba-5799-4816-9fa3-271959be8d1a', '@type': 'ReservedEndpointTask', 'id': 'c0b71aba-5799-4816-9fa3-271959be8d1a', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1664470813 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/d8454e1c-8b47-4a3b-8d57-e6875c39a220', '@type': 'ReservedEndpointTask', 'id': 'd8454e1c-8b47-4a3b-8d57-e6875c39a220', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1664822066 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/5e80862f-7863-4482-89ad-796715b31547', '@type': 'ReservedEndpointTask', 'id': '5e80862f-7863-4482-89ad-796715b31547', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1664822095 }, { '@id': '/api/v4/managed-slicer/ingest-points/tasks/49a72797-755b-4550-a384-ba78931431b2', '@type': 'ReservedEndpointTask', 'id': '49a72797-755b-4550-a384-ba78931431b2', 'state': 'COMPLETED', 'operation': 'CREATE', 'timestamp': 1664836080 } ], 'total_items': 8 }
Retrieves information about a CSL slicer task.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired task. Use the Get All Tasks endpoint to retrieve a list of tasks and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates a relative path that returns this resource. |
@type |
String |
Returns ManagedSlicerTask. |
id |
String |
Indicates the task's system-defined ID. |
operation |
String |
Indicates the type of operation that was performed. Valid values are: CREATE | UPDATE | DELETE
|
state |
String |
Indicates the task's current state. |
timestamp |
Number |
Indicates the timestamp, in Unix time (seconds), at which the task was initiated. |
Call the get_csl_slicer_task module (Python 3) to retrieve information about a CSL slicer task. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class Task: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_csl_slicer_task() def _get_csl_slicer_task(self): task_id = '910594f1-7224-43f9-911c-93fb5925b337' # Replace with the desired task ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/tasks/", task_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) Task().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/tasks/910594f1-7224-43f9-911c-93fb5925b337', '@type': 'ManagedSlicerTask', 'id': '910594f1-7224-43f9-911c-93fb5925b337', 'state': 'COMPLETED', 'operation': 'DELETE', 'timestamp': 1663984282 }
Retrieves information about an ingest point task.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired task. Use the Get All Ingest Point Tasks endpoint to retrieve a list of tasks and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates a relative path that returns this resource. |
@type |
String |
Returns ReservedEndpointTask. |
id |
String |
Indicates the task's system-defined ID. |
operation |
String |
Indicates the type of operation that was performed. Valid values are: CREATE | UPDATE | DELETE
|
state |
String |
Indicates the task's current state. |
timestamp |
Number |
Indicates the timestamp, in Unix time (seconds), at which the task was initiated. |
Call the get_ingest_point_task module (Python 3) to retrieve information about an ingest point task. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class Task: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_ingest_point_task() def _get_ingest_point_task(self): task_id = '5eead8d6-79e3-4a3d-915e-a886199dfde0' # Replace with the desired task ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/ingest-points/tasks/", task_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) Task().run()
Response:
{ '@id': '/api/v4/managed-slicer/ingest-points/tasks/5eead8d6-79e3-4a3d-915e-a886199dfde0', '@type': 'ReservedEndpointTask', 'id': '5eead8d6-79e3-4a3d-915e-a886199dfde0', 'state': 'COMPLETED', 'operation': 'DELETE', 'timestamp': 1664900951 }
An ingest point establishes a URL to which an encoder may push a video feed. Upon associating an ingest point with a CSL slicer, it will publish a stream based off of that feed.
Creates an ingest point.
Request syntax:
Request body parameters:
Pass the following request body parameters:
Name |
Data Type |
Description |
---|---|---|
desc |
String |
Sets the ingest point's description. |
endpoint_name Required |
String |
Sets the ingest point's name. |
server_region_id Required |
String |
Specify the system-defined ID for the region where this ingest point will be available. Only CSL slicers within this region will be able to use this ingest point. Use the Get CSL Slicer Regions endpoint to retrieve a list of regions and their system-defined IDs. |
stream_type_name Required |
String |
Identifies the streaming protocol that this ingest point will accept. Only feeds that use this protocol will be ingested. Use the Get CSL Slicer Protocols endpoint to retrieve a list of protocols. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to a resource-specific endpoint. |
@type |
String |
Returns IngestPoint. |
created |
String |
Indicates the timestamp at which this ingest point was created. |
desc |
String |
Indicates the ingest point's description. |
endpoint_name |
String |
Indicates the ingest point's name. |
id |
String |
Indicates the ingest point's system-defined ID. |
ingest_point |
Dictionary |
Contains the ingest point's hostname and ports. |
lastmod |
String |
Indicates the timestamp at which this ingest point was last modified. |
server_region_id |
String |
Indicates the system-defined ID for the region assigned to the ingest point. |
stream_type_id Deprecated |
String |
This property has been replaced by stream_type_name. |
stream_type_name |
String |
Indicates the ingest point's protocol. |
The ingest_point dictionary describes an ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
reserved_domain_name |
String |
Indicates the ingest point's domain. |
reserved_ports |
Dictionary |
Contains all of the ports associated with the ingest point. |
secure_rtmp_url |
String |
RTMP Only Indicates the URL to which your encoder should push a RTMP feed. This URL uses the RTMP scheme. |
server_region |
String |
Indicates the ingest point's region. |
status |
String |
Returns NOT_IN_USE. |
stream_rtmp_url |
String |
RTMPS Only Indicates the URL to which your encoder should push a RTMP feed. This URL, which uses the rtmps scheme, is secured using a TLS connection. |
The reserved_ports dictionary describes an ingest point's ports through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
Indicates the ingest point's port. |
port_fec2 |
Number |
Indicates the ingest point's port for the row forward error correction (FEC) stream. |
port_fec4 |
Number |
Indicates the ingest point's port for the column forward error correction (FEC) stream. |
Call the create_ingest_point module (Python 3) to create an ingest point. This module imports names from the api_auth module.
import json, requests, datetime, time from api_auth import APICredentials, APIParams class IngestPoint: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Create an ingest point. """ self._create_ingest_point() def _create_ingest_point(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers/ingest-points") payload = { 'endpoint_name': 'My New Ingest Point', # Replace with the ingest point's name. 'server_region_id': 'e1d9f8f3c9a24be68177654ded5b2912', # Replace with the desired region ID. 'stream_type_name': 'RTMP' # Replace with the desired protocol name. } headers = {'Content-Type': 'application/json'} response = requests.post( url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers ) print(response.json()) IngestPoint().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/ingest-points/4e7cf1330dfb405bb1fbcff715771d1b', '@type': 'IngestPoint', 'created': '2022-10-03T22:28:00.539Z', 'lastmod': '2022-10-03T22:28:00.539Z', 'id': '4e7cf1330dfb405bb1fbcff715771d1b', 'desc': '', 'endpoint_name': 'My New Ingest Point', 'ingest_point': { 'reserved_domain_name': 'ingest-prod-0-us-west-2.mss.aws.oath.cloud', 'reserved_ports': { 'port': 47435, 'port_fec2': 47437, 'port_fec4': 47439 }, 'server_region': 'us-west-2', 'status': 'NOT_IN_USE', 'slicer_stream_key': '060d6c2b-0a46-4fce-bf5d-e9ce28ea1b8d', 'secure_rtmp_url': 'rtmps://ingest-prod-0-us-west-2.mss.aws.oath.cloud:4935/slicer47435', 'stream_rtmp_url': 'rtmp://ingest-prod-0-us-west-2.mss.aws.oath.cloud/slicer47435' }, 'stream_type_name': 'RTMP', 'server_region_id': 'ac123581b66c45ecb2660d2da16de109', 'stream_type_id': '' }
Deletes an ingest point.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired ingest point. Use the Get All Ingest Points endpoint to retrieve a list of ingest points and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns IngestPoint. |
task |
Dictionary |
Contains information that describes the task associated with this request to delete an ingest point. |
The task dictionary describes a request to delete an ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
id |
String |
Indicates the system-defined ID assigned to the task. |
state |
String |
Indicates the task's state. Returns COMPLETED when the ingest point has been successfully deleted. |
operation |
String |
Returns DELETE. |
Call the delete_ingest_point module (Python 3) to delete an ingest point. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class IngestPoint: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._delete_ingest_point() def _delete_ingest_point(self): ingest_point_id = 'f0a214a437024a9c85c59f6f1bd55b3e' # Replace with the desired ingest point ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/ingest-points/", ingest_point_id) headers = {'Content-Type': 'application/json'} response = requests.delete( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) IngestPoint().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/ingest-points/f0a214a437024a9c85c59f6f1bd55b3e', '@type': 'IngestPoint', 'task': { 'id': 'b5c335c4-64f6-44c0-baa5-a184746477bf', 'state': 'COMPLETED', 'operation': 'DELETE' } }
Retrieves all ingest points.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of Dictionaries |
Contains a list of your ingest points. |
total_items |
Number |
Indicates the total number of ingest points. |
The items list describes each ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to a resource-specific endpoint. |
@type |
String |
Returns IngestPoint. |
created |
String |
Indicates the timestamp at which this ingest point was created. |
desc |
String |
Indicates the ingest point's description. |
endpoint_name |
String |
Indicates the ingest point's name. |
id |
String |
Indicates the ingest point's system-defined ID. |
ingest_point |
Dictionary |
Contains the ingest point's hostname and ports. |
lastmod |
String |
Indicates the timestamp at which this ingest point was last modified. |
server_region_id |
String |
Indicates the system-defined ID for the region assigned to the ingest point. |
stream_type_id Deprecated |
String |
This property has been replaced by stream_type_name. |
stream_type_name |
String |
Indicates the ingest point's protocol. |
The ingest_point dictionary describes an ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
creation_time |
String |
Indicates the timestamp (UTC) at which the ingest point was created. Example: Jun 7, 2024 4:13:44 PM
|
ingest_point_id |
String |
Indicates the ingest point's system-defined ID. |
reserved_domain_name |
String |
Indicates the ingest point's domain. |
reserved_ports |
Dictionary |
Contains all of the ports associated with the ingest point. |
secure_rtmp_url |
String |
RTMP Only Indicates the URL to which your encoder should push a RTMP feed. This URL uses the RTMP scheme. |
server_region |
String |
Indicates the ingest point's region. |
slicer_account_name |
String |
Reserved for future use. |
status |
String |
Indicates whether a managed slicer has been associated with this ingest point. Valid values are: IN_USE | NOT_IN_USE
|
stream_rtmp_url |
String |
RTMPS Only Indicates the URL to which your encoder should push a RTMP feed. This URL, which uses the rtmps scheme, is secured using a TLS connection. |
The reserved_ports dictionary describes an ingest point's ports through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
Indicates the ingest point's port. |
port_fec2 |
Number |
Indicates the ingest point's port for the row forward error correction (FEC) stream. |
port_fec4 |
Number |
Indicates the ingest point's port for the column forward error correction (FEC) stream. |
Call the get_all_ingest_points module (Python 3) to retrieve a list of ingest points. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class IngestPoint: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get all ingest points. """ self._get_all_ingest_points() def _get_all_ingest_points(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers/ingest-points") response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) print(response.json()) IngestPoint().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/ingest-points', '@type': 'Collection', 'items': [{ '@id': '/api/v4/managed-slicer/slicers/ingest_points/a3ff1ce5b63e4ea6aefb2963905edf97', '@type': 'IngestPoint', 'id': 'a3ff1ce5b63e4ea6aefb2963905edf97', 'created': '2022-03-03T18:20:39.034Z', 'lastmod': '2022-03-03T18:20:39.034Z', 'desc': 'ingest point 1', 'ingest_point': { 'ingest_point_id': '3682bebf-f37f-46e6-9456-707bb4abe2aa', 'reserved_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'reserved_ports': { 'port': 46240, 'port_fec2': 46242, 'port_fec4': 46244 }, 'server_region': 'us-east-2', 'slicer_account_name': 'MSS_4d3361ec890348a3bf4060464199ff05_4d3361ec890348a3bf4060464199ff05', 'status': 'NOT_IN_USE', 'creation_time': 'Mar 3, 2022 6:20:38 PM' }, 'stream_type_name': 'UDP', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda' }, { '@id': '/api/v4/managed-slicer/slicers/ingest_points/139e20ecf841417caa6e06572d95ca3f', '@type': 'IngestPoint', 'created': '2022-03-04T23:14:28.062Z', 'lastmod': '2022-03-04T23:14:28.062Z', 'id': '139e20ecf841417caa6e06572d95ca3f', 'desc': '', 'ingest_point': { 'ingest_point_id': '139e20ec-f841-417c-aa6e-06572d95ca3f', 'reserved_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'reserved_ports': { 'port': 46245, 'port_fec2': 46247, 'port_fec4': 46249 }, 'server_region': 'us-east-2', 'slicer_account_name': 'MSS_4d3361ec890348a3bf4060464199ff05_4d3361ec890348a3bf4060464199ff05', 'status': 'NOT_IN_USE', 'creation_time': 'Mar 4, 2022 11:14:27 PM' }, 'stream_type_name': 'UDP', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda' }, { '@id': '/api/v4/managed-slicer/slicers/ingest_points/9556928a1255488692239eac8f7f1ab7', '@type': 'IngestPoint', 'created': '2022-03-04T23:15:26.083Z', 'lastmod': '2022-03-04T23:15:26.083Z', 'id': '9556928a1255488692239eac8f7f1ab7', 'desc': 'ingest point 3', 'ingest_point': { 'ingest_point_id': '9556928a-1255-4886-9223-9eac8f7f1ab7', 'reserved_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'reserved_ports': { 'port': 46250, 'port_fec2': 46252, 'port_fec4': 46254 }, 'server_region': 'us-east-2', 'slicer_account_name': 'MSS_4d3361ec890348a3bf4060464199ff05_4d3361ec890348a3bf4060464199ff05', 'status': 'NOT_IN_USE', 'creation_time': 'Mar 4, 2022 11:15:25 PM' }, 'stream_type_name': 'UDP', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda' } ], 'total_items': 3 }
Retrieves an ingest point.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired ingest point. Use the Get All Ingest Points endpoint to retrieve a list of ingest points and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to a resource-specific endpoint. |
@type |
String |
Returns IngestPoint. |
created |
String |
Indicates the timestamp at which this ingest point was created. |
desc |
String |
Indicates the ingest point's description. |
endpoint_name |
String |
Indicates the ingest point's name. |
id |
String |
Indicates the ingest point's system-defined ID. |
ingest_point |
Dictionary |
Contains the ingest point's hostname and ports. |
lastmod |
String |
Indicates the timestamp at which this ingest point was last modified. |
server_region_id |
String |
Indicates the system-defined ID for the region assigned to the ingest point. |
stream_type_id Deprecated |
String |
This property has been replaced by stream_type_name. |
stream_type_name |
String |
Indicates the ingest point's protocol. |
The ingest_point dictionary describes an ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
ingest_point_id |
String |
Indicates the ingest point's system-defined ID. |
reserved_domain_name |
String |
Indicates the ingest point's domain. |
reserved_ports |
Dictionary |
Contains all of the ports associated with the ingest point. |
secure_rtmp_url |
String |
RTMP Only Indicates the URL to which your encoder should push a RTMP feed. This URL uses the RTMP scheme. |
server_region |
String |
Indicates the ingest point's region. |
status |
String |
Indicates whether a managed slicer has been associated with this ingest point. Valid values are: IN_USE | NOT_IN_USE
|
stream_rtmp_url |
String |
RTMPS Only Indicates the URL to which your encoder should push a RTMP feed. This URL, which uses the rtmps scheme, is secured using a TLS connection. |
The reserved_ports dictionary describes an ingest point's ports through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
Indicates the ingest point's port. |
port_fec2 |
Number |
Indicates the ingest point's port for the row forward error correction (FEC) stream. |
port_fec4 |
Number |
Indicates the ingest point's port for the column forward error correction (FEC) stream. |
Call the get_ingest_point module (Python 3) to retrieve an ingest point. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class IngestPoint: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_ingest_point() def _get_ingest_point(self): ingest_point_id = 'f0a214a437024a9c85c59f6f1bd55b3e' # Replace with the desired ingest point ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/ingest-points/", ingest_point_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) IngestPoint().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/ingest-points/f0a214a437024a9c85c59f6f1bd55b3e', '@type': 'IngestPoint', 'id': 'f0a214a437024a9c85c59f6f1bd55b3e', 'created': '2022-03-04T23:28:20.255Z', 'lastmod': '2022-03-04T23:28:20.255Z', 'desc': 'ingest point 3', 'ingest_point': { 'ingest_point_id': 'f0a214a4-3702-4a9c-85c5-9f6f1bd55b3e', 'reserved_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'reserved_ports': { 'port': 46255, 'port_fec2': 46257, 'port_fec4': 46259 }, 'server_region': 'us-east-2', 'status': 'NOT_IN_USE' }, 'stream_type_name': 'UDP', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda' }
Updates an ingest point's name or description.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired ingest point. Use the Get All Ingest Points endpoint to retrieve a list of ingest points and their system-defined IDs. |
Request body parameters:
Pass the following request body parameters:
Name |
Data Type |
Description |
---|---|---|
desc |
String |
Sets the ingest point's description. |
endpoint_name |
String |
Sets the ingest point's name. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to a resource-specific endpoint. |
@type |
String |
Returns IngestPoint. |
created |
String |
Indicates the timestamp at which this ingest point was created. |
desc |
String |
Indicates the ingest point's description. |
endpoint_name |
String |
Indicates the ingest point's name. |
id |
String |
Indicates the ingest point's system-defined ID. |
ingest_point |
Dictionary |
Contains the ingest point's hostname and ports. |
lastmod |
String |
Indicates the timestamp at which this ingest point was last modified. |
server_region_id |
String |
Indicates the system-defined ID for the region assigned to the ingest point. |
stream_type_id Deprecated |
String |
This property has been replaced by stream_type_name. |
stream_type_name |
String |
Indicates the ingest point's protocol. |
The ingest_point dictionary describes an ingest point through the following properties:
Name |
Data Type |
Description |
---|---|---|
creation_time |
String |
Indicates the timestamp (UTC) at which the ingest point was created. Example: Jun 7, 2024 4:13:44 PM
|
ingest_point_id |
String |
Indicates the ingest point's system-defined ID. |
reserved_domain_name |
String |
Indicates the ingest point's domain. |
reserved_ports |
Dictionary |
Contains all of the ports associated with the ingest point. |
secure_rtmp_url |
String |
RTMP Only Indicates the URL to which your encoder should push a RTMP feed. This URL uses the RTMP scheme. |
server_region |
String |
Indicates the ingest point's region. |
slicer_account_name |
String |
Reserved for future use. |
status |
String |
Indicates whether a managed slicer has been associated with this ingest point. Valid values are: IN_USE | NOT_IN_USE
|
stream_rtmp_url |
String |
RTMPS Only Indicates the URL to which your encoder should push a RTMP feed. This URL, which uses the rtmps scheme, is secured using a TLS connection. |
The reserved_ports dictionary describes an ingest point's ports through the following properties:
Name |
Data Type |
Description |
---|---|---|
port |
Number |
Indicates the ingest point's port. |
port_fec2 |
Number |
Indicates the ingest point's port for the row forward error correction (FEC) stream. |
port_fec4 |
Number |
Indicates the ingest point's port for the column forward error correction (FEC) stream. |
Call the update_ingest_point module (Python 3) to update an ingest point. This module imports names from the api_auth module.
import json, requests from api_auth import APICredentials, APIParams class IngestPoint: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._update_ingest_point() def _update_ingest_point(self): ingest_point_id = 'f0a214a437024a9c85c59f6f1bd55b3e' # Replace with the desired ingest point ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/ingest-points/", ingest_point_id) headers = {'Content-Type': 'application/json'} payload = { 'desc': 'Basketball - East Coast Ingest' # Replace with the desired description. } response = requests.patch( url, params=APIParams(APICredentials()).get_params({}), data=json.dumps(payload), headers=headers ) print(response.json()) IngestPoint().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/ingest-points/f0a214a437024a9c85c59f6f1bd55b3e', '@type': 'IngestPoint', 'id': 'f0a214a437024a9c85c59f6f1bd55b3e', 'created': '2022-03-04T23:28:20.255Z', 'lastmod': '2022-03-04T23:28:20.255Z', 'desc': 'Basketball - East Coast Ingest', 'ingest_point': { 'ingest_point_id': 'f0a214a4-3702-4a9c-85c5-9f6f1bd55b3e', 'reserved_domain_name': 'ingest-stage-1-us-east-2.mss-develop.aws.oath.cloud', 'reserved_ports': { 'port': 46255, 'port_fec2': 46257, 'port_fec4': 46259 }, 'server_region': 'us-east-2', 'status': 'NOT_IN_USE' }, 'stream_type_name': 'UDP', 'server_region_id': '4ae28f7a33c44473861b40d1c7e3072e', 'stream_type_id': 'b348ad0563b44f85b48407e280499eda' }
Retrieve supplemental data that is useful when administering CSL slicers.
Retrieves all of the encoding profiles associated with your account.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of dictionaries |
Contains a list of your encoding profiles. |
total_items |
String |
Indicates the total number of encoding profiles. |
The items list describes each encoding profile through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns EncodingProfile. |
desc |
String |
Reserved for future use. |
id |
String |
Indicates the encoding profile's system-defined ID. |
identifier |
String |
Reserved for future use. |
is_default_live_profile |
Number |
Indicates whether this is the default encoding profile for live streaming. A CSL slicer uses this encoding profile for live streaming when you have not assigned an encoding profile to the CSL slicer. |
is_default_system_profile |
Number |
Indicates whether this is the default system encoding profile for both live and VOD streaming. A CSL slicer uses this encoding profile when both of the following conditions are met:
|
is_default_vod_profile |
Number |
Indicates whether this is the default encoding profile for video on-demand (VODVideo On-Demand (VOD) allows the playback of content that was previously encoded and stored within our system. One use for VOD is to allow viewers to stream your content at any time.) streaming. A CSL slicer uses this encoding profile for VOD streaming when you have not assigned an encoding profile to the CSL slicer. |
parent |
String |
Reserved for future use. |
rate_card_id |
String |
Reserved for future use. |
suppressARayExceptOnIOS |
Number |
Reserved for future use. |
Dictionary |
Contains settings for this encoding profile's top ray. |
|
top_ray_audio_rate |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. audio bit rate in Kbps. |
top_ray_bframes_max |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. B-frames. |
top_ray_bit_rate |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. bit rate in Kbps. |
top_ray_fps |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. frame rate (frames per second). |
top_ray_gpu_flag |
String |
Reserved for future use. |
top_ray_height |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. height in pixels. |
top_ray_passes |
Number |
Reserved for future use. |
top_ray_width |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. width in pixels. |
version |
Number |
Reserved for future use. |
The top_ray dictionary describes the top ray through the following properties:
Name |
Data Type |
Description |
---|---|---|
aKpbs |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. audio resolution in Kbps.
|
aMaxChannels |
Number |
Reserved for future use. |
aoKbps |
Number |
Indicates the top ray's maximum audio-only ingest bitrate in Kbps. |
EncryptionKey |
Number |
Reserved for future use. |
fps |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. frame rate (frames per second). |
id |
Number |
Indicates the top ray's index position within the encoding profile. |
isHD Deprecated |
Boolean |
Deprecated. |
max_bframes |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. B-frames. |
maxH |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. height in pixels. |
maxW |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. width in pixels.
|
preset |
String |
Reserved for future use. |
profile |
String |
Indicates the top ray's codec profile. |
skipF Deprecated |
Number |
Deprecated. |
threads |
Number |
Reserved for future use. |
vKbps |
Number |
Indicates the top ray's maximum outputIndicates the maximum value for this setting. Ingested content will not be upscaled to this value. video resolution in Kbps.
|
vPasses |
Number |
Reserved for future use. |
Call the get_encoding_profiles module (Python 3) to retrieve all of your encoding profiles. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class EncodingProfile: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get all encoding profiles. """ self._get_all_encoding_profiles() def _get_all_encoding_profiles(self): url = "{}{}".format(self.host, "/api/v4/slicers/encoding-profiles") response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) print(response.json()) EncodingProfile().run()
Response:
{ '@id': '/api/v4/slicers/encoding-profiles', '@type': 'Collection', 'items': [{ '@id': '/api/v4/slicers/encoding-profiles/2b030d5779654cfa811d4eef66923cfc', '@type': 'EncodingProfile', 'id': '2b030d5779654cfa811d4eef66923cfc', 'parent': 'db46efcaa07046e99ef2ef11bf7bda18', 'desc': '720p30 v4', 'identifier': 'systemdefault', 'version': 5, 'suppressARayExceptOnIOS': 0, 'rate_card_id': 'HD 720p25/30', 'top_ray': { 'max_bframes': 3, 'profile': 'high', 'aoKbps': None, 'skipF': 0, 'fps': 30, 'vKbps': 2400, 'aKbps': 128, 'aMaxChannels': 2, 'maxW': 1280, 'isHD': False, 'maxH': 720, 'preset': 'veryfast', 'threads': 4, 'vPasses': 2, 'EncryptionKey': 1, 'id': 4 }, 'top_ray_bit_rate': 2400, 'top_ray_width': 1280, 'top_ray_height': 720, 'top_ray_fps': 30, 'top_ray_gpu_flag': 'not allowed', 'top_ray_bframes_max': '', 'top_ray_passes': 2, 'top_ray_audio_rate': 128, 'is_default_vod_profile': 1, 'is_default_live_profile': 1, 'is_default_system_profile': 1 } ], 'total_items': 1 }
Retrieves a list of protocols that are supported by CSL slicers.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns ManagedSlicerProtocol. |
protocols |
List of string values |
Contains a list of the protocols supported by CSL slicers. |
Call the get_csl_slicer_protocols module (Python 3) to retrieve a list of protocols. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicerProtocol: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_csl_slicer_protocols() def _get_csl_slicer_protocols(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/slicers/protocols") headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicerProtocol().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/protocols', '@type': 'ManagedSlicerProtocol', 'protocols': ['RTMP', 'RTP', 'SRT', 'RIST'] }}
Retrieves a list of regions where you can host a CSL slicer.
Request syntax:
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of dictionaries |
Contains a list of regions. |
total_items |
Number |
Indicates the total number of regions. |
The items list describes each region through the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to a resource-specific endpoint. |
@type |
String |
Returns ManagedSlicerRegion. |
id |
String |
Indicates the region's system-defined ID. |
name |
String |
Indicates the region's name. |
location |
String |
Indicates the region's location. |
Call the get_csl_regions module (Python 3) to retrieve a list of regions. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicerRegions: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_csl_regions() def _get_csl_regions(self): url = "{}{}".format(self.host, "/api/v4/managed-slicer/regions") headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicerRegions().run()
Response:
{ '@id': '/api/v4/managed-slicer/regions', '@type': 'Collection', 'items': [{ '@id': '/api/v4/managed-slicer/regions/a7548f530d4347a7a627499ea71e1726', '@type': 'ManagedSlicerRegion', 'id': 'a7548f530d4347a7a627499ea71e1726', 'name': 'North Virginia', 'location': 'us-east-1' }, { '@id': '/api/v4/managed-slicer/regions/e1d9f8f3c9a24be68177654ded5b2912', '@type': 'ManagedSlicerRegion', 'id': 'e1d9f8f3c9a24be68177654ded5b2912', 'name': 'Ohio', 'location': 'us-east-2' }, { '@id': '/api/v4/managed-slicer/regions/ac123581b66c45ecb2660d2da16de109', '@type': 'ManagedSlicerRegion', 'id': 'ac123581b66c45ecb2660d2da16de109', 'name': 'Oregon', 'location': 'us-west-2' }, { '@id': '/api/v4/managed-slicer/regions/0547f4694d474a3aacc152faa205997f', '@type': 'ManagedSlicerRegion', 'id': '0547f4694d474a3aacc152faa205997f', 'name': 'Frankfurt', 'location': 'eu-central-1' } ], 'total_items': 4 }
Retrieves a list of the available slicer versions for a specific region.
All regions typically support the same set of slicer versions. However, you must specify a region-specific slicer version when setting up a CSL slicer.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired region. Use the Get CSL Slicer Regions endpoint to retrieve a list of regions and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path to this endpoint. |
@type |
String |
Returns Collection. |
items |
List of dictionaries |
Contains a list of slicer versions for the specified region. |
total_items |
String |
Indicates the total number of slicer versions for the specified region. |
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Reserved for future use. |
@type |
String |
Reserved for future use. |
version_id |
String |
Indicates the system-defined ID assigned to the slicer version. |
slicer_version |
String |
Indicates the slicer version number. |
description |
String |
Indicates the slicer version's description. |
creation_time |
String |
Indicates the timestamp at which the slicer version was added to this region. |
Call the get_csl_slicer_versions module (Python 3) to retrieve the available slicer versions for a specific region. This module imports names from the api_auth module.
import requests from api_auth import APICredentials, APIParams class CSLSlicerVersion: def __init__(self): self.host = "https://services.uplynk.com" def run(self): self._get_csl_slicer_versions() def _get_csl_slicer_versions(self): region_id = 'a7548f530d4347a7a627499ea71e1726' # Replace with the desired region ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicers/versions/", region_id) headers = {'Content-Type': 'application/json'} response = requests.get( url, params=APIParams(APICredentials()).get_params({}), headers=headers ) print(response.json()) CSLSlicerVersion().run()
Response:
{ '@id': '/api/v4/managed-slicer/slicers/versions/a7548f530d4347a7a627499ea71e1726', '@type': 'Collection', 'items': [{ 'version_id': '0.8.21081100', 'slicer_version': '21081100', 'description': 'Latest version generated from slicer version 21081100', 'creation_time': 'Oct 18, 2021 11:57:10 AM' }, { 'version_id': '0.10.22060200', 'slicer_version': '22060200', 'description': 'Latest version generated from slicer version 22060200', 'creation_time': 'Jun 6, 2022 8:47:01 AM' }, { 'version_id': 'LATEST', 'slicer_version': '22060200', 'description': 'Slicer with TS TCP support Master', 'creation_time': 'Jun 6, 2022 8:47:01 AM' }, { 'version_id': '0.6.20122400', 'slicer_version': '20122400', 'description': 'Latest version generated from slicer version 20122400', 'creation_time': 'Jun 9, 2021 2:02:36 PM' }, { 'version_id': '0.7.20122400', 'slicer_version': '20122400', 'description': 'Latest version generated from slicer version 20122400', 'creation_time': 'Jun 10, 2021 9:38:49 AM' }, { 'version_id': '0.9.22022301', 'slicer_version': '22022301', 'description': 'Latest version generated from slicer version 22022301', 'creation_time': 'Mar 10, 2022 4:51:20 PM' }, { 'version_id': '0.6.20081700', 'slicer_version': '20081700', 'description': 'Latest version generated from slicer version 20081700', 'creation_time': 'Jan 31, 2021 8:50:40 AM' }, { 'version_id': '0.7.21061800', 'slicer_version': '21061800', 'description': 'Latest version generated from slicer version 21061800', 'creation_time': 'Aug 6, 2021 9:50:28 PM' }, { 'version_id': 'STABLE', 'slicer_version': '21061800', 'description': 'Updated stable to 21061800 for hwenc support', 'creation_time': 'Jul 7, 2021 1:49:10 PM' } ], 'total_items': 9 }
Retrieve information about the health of the link between the encoder and the CSL slicer.
Retrieve information about the health of the link between the encoder and the CSL slicer.
Request syntax:
Request URL variable:
Define the following variable when submitting the above request:
VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3). | Description |
---|---|
Required |
Replace this variable with the system-defined ID assigned to the desired CSL slicer. Use the Get All CSL Slicers endpoint to retrieve a list of CSL slicers and their system-defined IDs. |
Pass a digital signature based off of msg.
The response for a successful request contains the following properties:
Name |
Data Type |
Description |
---|---|---|
@id |
String |
Indicates the relative path that returns this resource. |
@type |
String |
Returns StreamMonitor. |
session |
Dictionary |
Contains average link health statistics for the current CSL slicer session. A session is initiated when a CSL slicer starts receiving data from an encoder. |
recent |
Dictionary |
Contains recent statistics on the health for the link between the encoder and the CSL slicer. |
cms_session_fingerprint | String |
Reserved for future use. |
cms_session_id_fingerprint | String |
Reserved for future use. |
If an encoder is not currently connected to the specified CSL slicer, then the response will only contain the @id and @type properties.
The session dictionary contains link health statistics for the current CSL slicer session through the following properties:
Name |
Data Type |
Description |
---|---|---|
round_trip_time |
Number |
Indicates the latest round trip time between the encoder and the CSL slicer in milliseconds. |
link_uptime |
Float |
Indicates the duration, in hours, for the connection between the encoder and the CSL slicer. |
latency_setting |
Number |
Indicates the length of time, in milliseconds, that the CSL slicer will wait before processing data packets. This delay provides time for packet correction to take place. |
stream_bitrate |
Float |
Indicates the rate, in Kbps, at which data is being transferred from the encoder to the CSL slicer. |
packets_inbound |
Number |
Indicates the total number of data packets received by the CSL slicer. |
packets_outbound |
Number |
Indicates the total number of data packets sent to the encoder by the CSL slicer. |
percent_link_success |
Float |
Indicates the percentage of data packets that were successfully received by the CSL slicer. |
packets_errored |
Number |
Indicates the total number of data packets that were not successfully delivered. |
percent_errorred |
Float |
Indicates the percentage of data packets that resulted in an error. |
packets_FEC_corrected |
Number |
Indicates the total number of data packets that were successfully delivered after being corrected by Forward Error Correction (FEC). |
percent_fixed_by_FEC |
Float |
Indicates the percentage of data packets that were successfully delivered after being corrected by Forward Error Correction (FEC). |
packets_ARQ_corrected |
Number |
Indicates the total number of data packets that were successfully delivered as a result of automatic repeat request (ARQ). |
percent_fixed_by_ARQ |
Float |
Indicates the percentage of data packets that were successfully delivered as a result of automatic repeat request (ARQ). |
ARQ_requests |
Number |
Indicates the total number of requests that triggered ARQ. |
ARQ_fails |
Number |
Indicates the total number of requests that were unsuccessful after triggering ARQ. |
percent_failed_ARQ |
Float |
Indicates the percentage of requests that were unsuccessful after triggering ARQ. |
The recent dictionary describes recent link health statistics through the following properties:
Name |
Data Type |
Description |
---|---|---|
stream_bitrate |
Float |
Indicates the rate, in Kbps, at which data is being transferred from the encoder to the CSL slicer. |
packets_inbound | Number |
Indicates the sum of the data packets received by the CSL slicer during the most recent measurement interval. |
packets_outbound | Number |
Indicates the sum of the data packets sent to the encoder by the CSL slicer during the most recent measurement interval. |
percent_link_success | Float |
Indicates the percentage of data packets that were successfully received by the CSL slicer during the most recent measurement interval. |
packets_errored | Number |
Indicates the sum of the data packets that were not successfully delivered during the most recent measurement interval. |
percent_errorred | Float |
Indicates the percentage of data packets that resulted in an error during the most recent measurement interval. |
packets_FEC_corrected | Number |
Indicates the sum of the data packets that were successfully delivered after being corrected by Forward Error Correction (FEC) during the most recent measurement interval. |
percent_fixed_by_FEC | Float |
Indicates the percentage of data packets that were successfully delivered after being corrected by Forward Error Correction (FEC) during the most recent measurement interval. |
packets_ARQ_corrected | Number |
Indicates the total number of data packets that were successfully delivered as a result of automatic repeat request (ARQ). |
percent_fixed_by_ARQ | Float |
Indicates the percentage of data packets that were successfully delivered as a result of automatic repeat request (ARQ). |
ARQ_requests | Number |
Indicates the total number of requests that triggered ARQ. |
ARQ_fails | Number |
Indicates the total number of requests that were unsuccessful after triggering ARQ. |
percent_failed_ARQ | Float |
Indicates the percentage of requests that were unsuccessful after triggering ARQ. |
Call the get_link_health module (Python 3) to retrieve health statistics for the link between the encoder and the CSL slicer. This module imports names from the api_auth module.
import json import requests from api_auth import APICredentials, APIParams class GetLinkHealth: def __init__(self): self.host = "https://services.uplynk.com" def run(self): """ Get link health. """ self._get_link_health() def _get_link_health(self): csl_slicer_id = "bcc4d23b45ba43e8b1e93141a10fee7e" # Replace with your CSL slicer ID. url = "{}{}{}".format(self.host, "/api/v4/managed-slicer/slicer/monitor/", csl_slicer_id) response = requests.get( url, params=APIParams(APICredentials()).get_params({}) ) if response.status_code == 200: print(response.json()) else: print(response.status_code) GetLinkHealth().run()
Response:
{ "@id": "/api/v4/managed-slicer/slicer/monitor/bcc4d23b45ba43e8b1e93141a10fee7e", "@type": "StreamMonitor", "session": { "round_trip_time": 14, "link_uptime": 25.17, "latency_setting": 1000, "stream_bitrate": 2248.0, "packets_inbound": 20966998, "packets_outbound": 0, "percent_link_success": 99.97, "packets_errored": 5530, "percent_errored": 0.03, "packets_FEC_corrected": 0, "percent_fixed_by_FEC": 0.0, "packets_ARQ_corrected": 0, "percent_fixed_by_ARQ": 0.0, "ARQ_requests": 0, "ARQ_fails": 5530, "percent_failed_ARQ": 0.03 }, "recent": { "stream_bitrate": 2557.0, "packets_inbound": 2339, "packets_outbound": 0, "percent_link_success": 100.0, "packets_errored": 0, "percent_errored": 0.0, "packets_FEC_corrected": 0, "percent_fixed_by_FEC": 0.0, "packets_ARQ_corrected": 0, "percent_fixed_by_ARQ": 0.0, "ARQ_requests": 0, "ARQ_fails": 0, "percent_failed_ARQ": 0.0 }, "cms_session_fingerprint": "33a77bded4d8d86ab2e4a4c533ac0778821417b4", "cms_session_id_fingerprint": "42428ed15c5139277884bfbf9b2946dc0f4d88d6" }
A task tracks the progress for the creation, modification, or deletion of a CSL slicer or ingest point. Core task states are described below.