{{ page.title }}

{{ page.description }}

Introduction

This feature allows the creation of an additional channel or the use of an existing one, for example, a Brightcove Live Channel or a Job, when selecting Brightcove as a destination.

Get eligible Live jobs for linking

Use the Cloud Playout API to list the Live jobs eligible to be linked with a Cloud Playout Channel.

Request

Make a GET request to:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/bc_channels?ssai={ssai_flag}

True or false can be passed for the ssai_flag query parameter. This should be based on the ssai_enabled flag set in the channel configuration. You will get a response like the following:


{
  "jobs": [
      {
          "id": "5ba2b95e8c704b59a4436f0a8c985851",
          "videocloud": {
              "video": {
                  "name": "bc_live_channel",
                  "description": "Event created for CloudPlayout",
                  "tags": [
                      "cloud-playout:ce5e9d29:432f7757561c41d29a38de85a20ef337"
                  ]
              }
          },
          "state": "standby",
          "static": true,
          "ad_insertion": false,
          "region": "us-east-1",
          "reconnect_time": 600,
          "submitted_at": "2024-04-02T07:11:42.838Z"
      },
      {
          "id": "7a23bbabfafc486abb03afe3b6b631d2",
          "videocloud": {
              "video": {
                  "name": "Subscription_channel",
                  "description": "Event created for CloudPlayout",
                  "tags": [
                      "cloud-playout:ce5e9d29:c75db62049dd4f26a15d4794efe72f87"
                  ]
              }
          },
          "state": "standby",
          "static": true,
          "ad_insertion": false,
          "region": "us-east-1",
          "reconnect_time": 600,
          "submitted_at": "2024-03-19T14:25:05.196Z"
      },
      {
          "id": "07f6184da76b40ca9d5b1c10cffeed3e",
          "videocloud": {
              "video": {
                  "name": "bc_live_channel",
                  "description": "Event created for CloudPlayout",
                  "tags": [
                      "cloud-playout:ce5e9d29:e6511576b88f4b75a1fd6dd6252fa0bc"
                  ]
              }
          },
          "state": "standby",
          "static": true,
          "ad_insertion": false,
          "region": "us-east-1",
          "reconnect_time": 600,
          "submitted_at": "2024-03-28T12:27:17.854Z"
      }
  ]
}

Create a channel

The payload shown below makes it possible to link an existing Live job to a FAST/Subscription channel. The Live job can only be linked to Brightcove destination, and the Job ID can be passed via the field location_id.

Live Job criteria

The Live job must satisfy the channel's ssai_enabled setting. If ssai_enabled is true, then the Live job must also enable Ad Insertion. The same applies when ssai_enabled is false.

Request payload


{
  "name": "bc_live_channel",
  "description": "CP channel",
  "type": "fast",
  "start_time": "2024-04-01T22:50:00+0530",
  "ssai_enabled": true,
  "input_group": [
      {
          "input_type": "showtime"
      },
      {
          "input_type": "slate",
          "input_id": "https://syndication.cloudplayout.qa.brightcove.com/slate/ad-slate.mp4"
      }
  ],
  "image_id": "https://picsum.photos/1280/720",
  "channel_class": "single-pipeline",
  "output_group": [
      {
          "type": "fast",
          "ingest_locations": [
              {
                  "location": "brightcove",
                  "location_id": "d3f929a415af46b9829d3d19042993e9"
              }
          ]
      }
  ],
  "region": "us-east-1",
  "additional_metadata": {
      "genres": [
          {
              "genre": "TV",
              "sub_genre": "Education"
          }
      ],
      "country_code": "US",
      "parental_rating": "PG",
      "language_code": "en",
      "branded_thumbnail": "https://picsum.photos/1280/720",
      "long_description": "Cloudplayout channel"
  }
}

Also, a channel can be created with linked Live jobs for Brightcove destinations while still attaching other destinations that create a new Live job managed by Cloud Playout.

Update a channel

A FAST/Subscription channel can be updated with an existing Live job only in DRAFT state.

Channel switched (SSAI to Non-SSAI)

The live job must still satisfy the channel's ssai_enabled flag. For example, you can update a channel with ssai_enabled as false with a Live job with Ad Insertion enabled. We recommend passing input_group and output_group (or the complete channel creation payload) to update channel API when SSAI is toggled, as shown below:


{
  "ssai_enabled": false,
  "input_group": [
      {
          "input_type": "showtime"
      },
      {
          "input_type": "slate",
          "input_id": "https://syndication.cloudplayout.qa.brightcove.com/slate/ad-slate.mp4"
      }
  ],
  "output_group": [
      {
          "type": "fast",
          "ingest_locations": [
              {
                  "location": "brightcove",
                  "location_id": "7a23bbabfafc486abb03afe3b6b631d2"
              }
          ]
      }
  ]
}

If SSAI is not toggled, we can pass the output_group alone (or the complete channel creation payload) as shown below:


{
  "output_group": [
      {
          "type": "fast",
          "ingest_locations": [
              {
                  "location": "brightcove",
                  "location_id": "7a23bbabfafc486abb03afe3b6b631d2"
              }
          ]
      }
  ]
}

Channels switches (Linked to non-Linked)

To switch to a new Live job integration, we can remove the location_id field, as shown below. This will return to the default behavior, where Cloud Playout creates a new Live job and manages it by itself.


{
  "output_group": [
      {
          "type": "fast",
          "ingest_locations": [
              {
                  "location": "brightcove"
              }
          ]
      }
  ]
}

Channel activation

When a channel with the linked Live job is created, a static profile is assigned to it, and the same configuration is used to make the outputs in the encoder settings.

Cloud Playout-specific tags will be added to the linked Live job during channel activation to identify the job.

"cloud-playout:#{group_id}:#{channel_public_id}"

GET channel response in non-active states

Below is the response for the GET channel with linked Live jobs in non-active states.


{
  "public_id": "67da3b5a91694a19b949c181cf394bec",
  "name": "bc_live_channel",
  "description": "CP channel",
  "account_id": "70701684277202",
  "state": "DRAFT",
  "status": null,
  "start_time": "2024-04-01 17:20:00 UTC",
  "stop_time": null,
  "input_groups": "showtime:rtp:slate",
  "output_groups": "brightcove",
  "channel_class": "single-pipeline",
  "ssai_enabled": true,
  "aws_region": "us-east-1",
  "message": null,
  "created_at": "2024-04-01 14:25:05 UTC",
  "updated_at": "2024-04-01 14:25:05 UTC",
  "image_url": "https://picsum.photos/1280/720",
  "output_destinations": [
      "Brightcove"
  ],
  "channel_created_at": "2024-04-01 14:25:05 UTC",
  "channel_updated_at": "2024-04-01 14:25:05 UTC",
  "channel_created_by": "Created by API",
  "channel_updated_by": "Updated by API",
  "mid_roll_import_enabled": true,
  "import_captions_enabled": true,
  "type": "fast",
  "ad_slot_time": 30,
  "schedule_ids": {
      "draft": "231600101",
      "published": "231590101"
  },
  "additional_metadata": {
      "country_code": "US",
      "country": "United States",
      "parental_rating": "PG",
      "language_code": "en",
      "language": "English",
      "long_description": "Cloudplayout channel",
      "branded_thumbnail": "https://picsum.photos/1280/720",
      "genres": [
          {
              "genre": "TV",
              "sub_genre": "Education"
          }
      ]
  },
  "channel_data": {
      "input_group": [
          {
              "input_type": "showtime",
              "value": {
                  "schedule_ids": {
                      "draft": "231600101"
                  }
              }
          },
          {
              "input_type": "rtp",
              "value": {
                  "type": "RTP_PUSH",
                  "url": "rtp://67da3b5a91694a19b949c181cf394bec.cloudplayout.qa.brightcove.com:5000"
              }
          },
          {
              "input_type": "slate",
              "value": "https://syndication.cloudplayout.qa.brightcove.com/slate/ad-slate.mp4",
              "public_id": "b9f7aa4ff997467a828e91e460b79d26"
          }
      ],
      "output_groups": [
          {
              "type": "fast",
              "destination": "brightcove",
              "details": {
                  "epg_url": "https://syndication.cloudplayout.qa.brightcove.com/67da3b5a91694a19b949c181cf394bec/epg/xmltv/epg_xmltv.xml"
              },
              "location_id": "d3f929a415af46b9829d3d19042993e9",
              "location": "FAST_channel"
          }
      ]
  }
}

GET channel response in active states

Below the response for the GET channel with linked live jobs in active states is shown.


{
  "public_id": "ba5fe99ecf754055aa7e4f09878fb91e",
  "name": "bc_live_channel",
  "description": "CP channel",
  "account_id": "70701684277202",
  "state": "SCHEDULED",
  "status": "Scheduled for start",
  "start_time": "2024-04-01 17:20:00 UTC",
  "stop_time": null,
  "input_groups": "showtime:rtp:slate",
  "output_groups": "brightcove",
  "channel_class": "single-pipeline",
  "ssai_enabled": true,
  "aws_region": "us-east-1",
  "message": "",
  "created_at": "2024-04-01 11:00:21 UTC",
  "updated_at": "2024-04-01 11:01:51 UTC",
  "image_url": "https://picsum.photos/1280/720",
  "output_destinations": [
      "Brightcove"
  ],
  "channel_created_at": "2024-04-01 11:00:21 UTC",
  "channel_updated_at": "2024-04-01 11:00:21 UTC",
  "channel_created_by": "Created by API",
  "channel_updated_by": "Updated by API",
  "mid_roll_import_enabled": true,
  "import_captions_enabled": true,
  "type": "fast",
  "ad_slot_time": 30,
  "schedule_ids": {
      "draft": "231460101",
      "published": "231450101"
  },
  "additional_metadata": {
      "country_code": "US",
      "country": "United States",
      "parental_rating": "PG",
      "language_code": "en",
      "language": "English",
      "long_description": "Cloudplayout channel",
      "branded_thumbnail": "https://picsum.photos/1280/720",
      "genres": [
          {
              "genre": "TV",
              "sub_genre": "Education"
          }
      ]
  },
  "channel_data": {
      "destinations": [
          {
              "id": "framecapture",
              "url": "s3://cloud-playout-qa/framecapture/ba5fe99ecf754055aa7e4f09878fb91e/image",
              "stream_name": null
          },
          {
              "id": "dest-rtp-4f8334f8-0",
              "url": "rtp://d3f929a415af46b9829d3d19042993e9.sep-qa.a-live.io:15525",
              "stream_name": null
          },
          {
              "id": "dest-rtp-fab53818-0",
              "url": "rtp://23a57cf93df846cc9bd5dc29a5e50201.sep-qa.a-live.io:13455",
              "stream_name": null
          }
      ],
      "input_specification": {
          "codec": "AVC",
          "maximum_bitrate": "MAX_20_MBPS",
          "resolution": "HD"
      },
      "output_groups": [
          {
              "type": "preview",
              "destination_url": "s3://cloud-playout-qa/framecapture/ba5fe99ecf754055aa7e4f09878fb91e/image",
              "encoder_settings": [
                  {
                      "width": 640,
                      "height": 360,
                      "capture_interval": 5,
                      "capture_interval_units": "SECONDS"
                  }
              ]
          },
          {
              "type": "fast",
              "destination": "brightcove",
              "details": {
                  "playback_url": "https://playback-qa.a-live.io/d3f929a415af46b9829d3d19042993e9/us-east-1/NA/playlist.m3u8",
                  "playback_url_dvr": "https://playback-qa.a-live.io/d3f929a415af46b9829d3d19042993e9/us-east-1/NA/playlist_dvr.m3u8",
                  "ssai_playback_urls": {
                      "ced8754e6e6f42feb870e6d5900c3eee": {
                          "playback_url": "https://playback-qa.a-live.io/d3f929a415af46b9829d3d19042993e9/us-east-1/NA/ced8754e6e6f42feb870e6d5900c3eee/playlist_ssaiM.m3u8",
                          "playback_url_dvr": "https://playback-qa.a-live.io/d3f929a415af46b9829d3d19042993e9/us-east-1/NA/ced8754e6e6f42feb870e6d5900c3eee/playlist_dvr_ssaiM.m3u8",
                          "playback_added_cdns": [],
                          "description": "House Ads - 0039c773a6154dd6aebc97535f3e3829",
                          "type": "ads"
                      }
                  },
                  "video_id": "1792789620483623792",
                  "epg_url": "https://syndication.cloudplayout.qa.brightcove.com/ba5fe99ecf754055aa7e4f09878fb91e/epg/xmltv/epg_xmltv.xml",
                  "live_job_id": "d3f929a415af46b9829d3d19042993e9"
              },
              "location": "FAST_channel",
              "location_id": "d3f929a415af46b9829d3d19042993e9"
          }
      ],
      "input_group": [
          {
              "input_type": "showtime",
              "value": {
                  "schedule_ids": {
                      "draft": "231460101"
                  }
              }
          },
          {
              "input_type": "rtp",
              "value": {
                  "type": "RTP_PUSH",
                  "url": "rtp://ba5fe99ecf754055aa7e4f09878fb91e.cloudplayout.qa.brightcove.com:5000",
                  "security_groups": [
                      "4028594"
                  ]
              }
          },
          {
              "input_type": "slate",
              "value": "https://syndication.cloudplayout.qa.brightcove.com/slate/ad-slate.mp4",
              "public_id": "b9f7aa4ff997467a828e91e460b79d26"
          }
      ]
  }
}
    

Limitations

Here is a list of current limitations: