CHANNEL PROFILES

Channel profiles represent sets of audio languages (or inputs) which are configured for an Event. This allows the VIS API to set audio languages on the Encoder during startup, making sure each input is labelled correctly.

Each Event will only have 1 profile, but it can contain multiple inputs.


Channel Profile Object

A Channel Profile will contain the following:

[
    {
        "id": "d9ab1b39-f08a-4f5a-badb-0a2a7faba164",
        "audioInputs": [
            {
                "id": "c018bdad-ac0d-4505-b8a7-0117d3620fa7",
                "languageCode": "bu",
                "audioChannel": 6,
                "audioEnabled": true
            },
            {
                "id": "7698f22e-261e-4f5b-a606-277fc47ab418",
                "languageCode": "fr",
                "audioChannel": 5,
                "audioEnabled": true
            },
            {
                "id": "bd92d52a-d223-46b0-80f0-31642af06fbe",
                "languageCode": "es",
                "audioChannel": 2,
                "audioEnabled": false
            },
            {
                "id": "2bf86d10-b9f2-4d9e-9ac2-6c8e89fc622f",
                "languageCode": "en",
                "audioChannel": 3,
                "audioEnabled": true
            },
            {
                "id": "d4bd8b4b-b4b7-4960-be15-a3ff301b1974",
                "languageCode": "de",
                "audioChannel": 1,
                "audioEnabled": false
            },
            {
                "id": "8c6addbe-7805-42fd-adf9-a5e0d1bee5d2",
                "languageCode": "po",
                "audioChannel": 4,
                "audioEnabled": false
            }
        ]
    }
]

Audio Inputs:

An Audio Input is comprised of the following:

ID: {guid} - the ID of the input.

LanguageCode: {string} - the language code of the input.

AudioChannel: {int} - the input number this refers to.

AudioEnabled: {bool} - whether or not the language should be available.

Restrictions:

The list of AudioInputs must specify unique languages and unique audio channels, else it will be rejected.

Supported Actions

POST /channelprofile/

Add a Channel Profile.

Request Body:

{
  "EventId": "2b3400c3-a2a5-4b17-8b07-1a20ccd3785f",
  "AudioInputs": [
    {
      "LanguageCode": "en",
      "AudioChannel": 0,
      "AudioEnabled": true
    },
    {
      "LanguageCode": "fr",
      "AudioChannel": 1,
      "AudioEnabled": false
    }
  ]
}

Response: 200 OK or 400 Bad Request if AudioInputs are incorrect.


PUT /channelprofile/{id}

Update a Channel Profile by Id.

Request Body:

{
  "AudioInputs": [
    {
      "LanguageCode": "en",
      "AudioChannel": 0,
      "AudioEnabled": true
    },
    {
      "LanguageCode": "fr",
      "AudioChannel": 1,
      "AudioEnabled": false
    }
  ]
}

Note: You do not have to provide ID values, as it will update inputs based on the AudioChannel value. This means the AudioInput Ids you may be using do not change on Update.

Response: 200 OK or 400 Bad Request if AudioInputs are incorrect.


PUT /channelprofile/event/{id}

Adds or Updates a Channel Profile by Event Id.

This request behaves the same as a normal update, but with a different route.


GET /channelprofile/

Get all Channel Profiles.

Query Parameters:

NoCache: {bool} - Optional. Set to True to bypass cache.

Response: 200 OK and a JSON array containing multiple Channel Profile objects.


GET /channelprofile/{id}

Get a Channel Profile by Id.

Query Parameters:

NoCache: {bool} - Optional. Set to True to bypass cache.

Response: 200 OK and JSON containing a Channel Profile object.


GET /channelprofile/event/{id}

Get a Channel Profile by Event Id.

Query Parameters:

NoCache: {bool} - Optional. Set to True to bypass cache.

Response:200 OK and JSON containing a Channel Profile object.


GET /channelprofile/clone/{sourceEventId}

Clones a Channel Profile for a given Event Id to another Event Id.

Query Parameters:

TargetEventId: {guid} - Required.

RemoveSource: {bool} - Optional. Defaults to false, set to True to delete the existing profile.

Response: 200 OK


DEL /channelprofile/{id}

Deletes a Channel Profile by Id.

Response: 200 OK


DEL /channelprofile/event/{id}

Deletes a Channel Profile for a given Event Id.

This request behaves the same as a normal deletion but with a different route.