Aperçu: API de canaux

Les terminaux Channel Manager permettent de créer un canal Cloud Playout, d'ajouter des ressources & à la liste de lecture, puis d'activer, de démarrer, d'arrêter et de supprimer le canal.

Exigences

  • Une application enregistrée avec des zones d'authentification de l'API Cloud Playout activées dans le cloud vidéo. (Studio UI -> Admin -> API Authentication)

Création d'un workflow CloudPlayoutChannelManager

Vous trouverez ci-dessous le workflow typique de gestion des canaux Cloud Playout :

  • Créer une chaîne
  • Ajouter des ressources et des événements en direct à la liste de lecture
  • Activer la chaîne
  • Démarrer la chaîne
  • Arrêter la chaîne
  • Supprimer la chaîne

En dehors de ceux-ci, Obtenir la chaîne est utile pour vérifier les informations et l'état de la chaîne.

Créer une chaîne

Pour créer un canal, nous avons besoin d'attributs obligatoires tels que le nom du canal, l'heure de début, le groupe d'entrée et de sortie, la région et live_profile. Les valeurs DateTime sont préférées au format de date ISO 8601 (UTC ou avec décalage horaire).

Demande d'échantillon

Requête

Faire un POST demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels

Headers

Content-Type: application/json
Authorization: Bearer {token}

Corps de la demande - exemple général

{
  "name": "channel name",
  "start_time": "2021-06-29T08:30:50.344Z",
  "input_group": [
    {
      "input_type": "playlist (or rtmp or slate)",
      "input_id": "dummy",
      "loop_on_completion": false
    }
  ],
  "live_profile": "your live profile",
  "output_group": [
    {
      "type": "rtmp or rtp",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "location": "bc_live or any live channel from your account"
        }
      ]
    },
    {
      "type": "s3",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "location": "s3 credential id"
        }
      ]
    }
  ],
  "region": "aws region"
}

Corps de la demande - exemple utilisant l'ardoise par défaut

{
  "input_group": [
    {
      "input_type": "slate"
    },
    {
      "input_type": "rtmp"
    }
  ]
}

Corps de la demande - exemple d'utilisation d'une ardoise personnalisée

{
  "input_group": [
    {
      "input_type": "slate",
      "input_id": "slate_asset_id OR https_slate_mp4_url"
    },
    {
      "input_type": "rtmp"
    }
  ]
}
Exemple de réponse
{
  "public_id": "79f0e7503fd64af3b7d2b0f825100f28",
  "name": "channel name",
  "description": "",
  "account_id": "Your account id",
  "state": "DRAFT",
  "status": null,
  "start_time": "2021-06-29 08:30:50 UTC",
  "stop_time": null,
  "input_groups": "playlist",
  "output_groups": "rtmp:s3",
  "loop_playlist": false,
  "playlist_id": "1703814612527248093",
  "channel_class": "single-pipeline",
  "ssai_enabled": true,
  "aws_region": "aws region",
  "message": null,
  "created_at": "2021-06-28 12:43:55 UTC",
  "updated_at": "2021-06-28 12:43:55 UTC",
  "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
  "output_destinations": [
    "Brightcove Live"
  ],
  "channel_created_at": "2021-06-28 12:43:55 UTC",
  "channel_updated_at": "2021-06-28 12:43:55 UTC",
  "channel_created_by": "username@brightcove.com",
  "channel_updated_by": "username@brightcove.com"
}

En plus des champs obligatoires, il existe des champs qui peuvent être définis comme description , stop_time , ssai_enabled , image_id , mid_roll_import_enabled , mid_roll_slot_time , etc. Veuillez vous référer aux exemples de la Référence de l'API des canaux pour créer des canaux avec différentes configurations.

Canal avec redondance en direct

Création d'un groupe redondant Brightcove Live dans le module Live

Pour créer un groupe redondant en direct, voir Utilisation de la redondance en direct. Une fois les groupes redondants créés à l'aide du document ci-dessus, vous pouvez les utiliser dans Cloud Playout.

Critères d'éligibilité des groupes redondants

Pour pouvoir être utilisé comme destination de canal Cloud Playout, le groupe redondant doit répondre aux critères suivants :

  • Le groupe redondant doit contenir exactement 2 emplois actifs.
  • Les deux travaux en direct du groupe redondant doivent être de type point d'entrée statique .
  • Le groupe redondant (et les travaux qu'il contient) doit être en état de veille .
  • Si le canal Cloud Playout est compatible SSAI, le groupe redondant doit également être compatible SSAI avec le protocole RTP-FEC .

Obtention de groupes redondants Brightcove Live disponibles

Pour récupérer la liste des groupes redondants Brightcove Live disponibles sur votre compte, envoyez une GET demande à :

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/bc_channels?redundancy=true

Pour limiter les résultats aux groupes redondants activés pour SSAI, ajoutez le ssai=true paramètre suivant :

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

Création d'un canal avec redondance en direct

Vous pouvez créer un canal compatible avec la redondance Brightcove Live à l'aide du output_group champ du corps de la demande,

Exemple de corps de requête

{
  "name": "channel name",
  "start_time": "2021-06-29T08:30:50.344Z",
  "input_group": [
    {
      "input_type": "playlist or rtmp or slate",
      "input_id": "dummy",
      "loop_on_completion": false
    }
  ],
  "live_profile": "your live profile",
  "output_group": [
    {
      "type": "rtmp or rtp",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "redundancy": true,
          "location": "bc_live/{EXISTING_BC_REDUNDANT_GROUP_ID}"
        }
      ]
    }
  ],
  "region": "aws region"
}

Exemple de réponse

{
  "public_id": "79f0e7503fd64af3b7d2b0f825100f28",
  "name": "channel name",
  "description": "",
  "account_id": "Your account id",
  "state": "DRAFT",
  "status": null,
  "start_time": "2021-06-29 08:30:50 UTC",
  "stop_time": null,
  "input_groups": "playlist",
  "output_groups": "rtmp",
  "loop_playlist": false,
  "playlist_id": "1703814612527248093",
  "channel_class": "single-pipeline",
  "ssai_enabled": true,
  "aws_region": "aws region",
  "message": null,
  "created_at": "2021-06-28 12:43:55 UTC",
  "updated_at": "2021-06-28 12:43:55 UTC",
  "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
  "output_destinations": [
    "Brightcove Live with Redundancy"
  ],
  "channel_created_at": "2021-06-28 12:43:55 UTC",
  "channel_updated_at": "2021-06-28 12:43:55 UTC",
  "channel_created_by": "username@brightcove.com",
  "channel_updated_by": "username@brightcove.com"
}

Mise à jour d'un canal pour activer ou désactiver la redondance en direct

Vous pouvez également activer ou désactiver la redondance pour un canal existant. La clé est le redundancy drapeau dans l' ingest_locations objet. Pour activer la redondance, vous devez la définir sur true, tandis que pour désactiver la redondance pour le canal, vous pouvez la définir false ou l'omettre complètement, car il s' false agit de la valeur par défaut.

Exemple de corps de requête

Activer la redondance
{
  "output_group": [
    {
      "type": "rtmp or rtp",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "redundancy": true,
          "location": "bc_live/{EXISTING_BC_REDUNDANT_GROUP_ID}"
        }
      ]
    }
  ]
}
Désactiver la redondance
{
  "output_group": [
    {
      "type": "rtmp or rtp",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "location": "bc_live/{EXISTING_BC_REDUNDANT_GROUP_ID}"
        }
      ]
    }
  ]
}

Notez ce qui manque redundancy ci-dessus. Ou bien :

{
  "output_group": [
    {
      "type": "rtmp or rtp",
      "ingest_locations": [
        {
          "pipeline_id": 1,
          "redundancy": false,
          "location": "bc_live/{EXISTING_BC_REDUNDANT_GROUP_ID}"
        }
      ]
    }
  ]
}

Obtenir des informations sur les chaînes

Pour obtenir les détails de la chaîne et vérifier qu'elle utilise la redondance, envoyez une GET demande à :

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}

Exemple de réponse (à l'état de projet)

{
  "public_id": "a7a58da9794a484a90a60c6c9b3a04a2",
  "name": "redundancy",
  "description": "test_cloudplayout_roebuck",
  "account_id": "70701684277202",
  "state": "DRAFT",
  "status": "",
  "start_time": "2022-02-17 12:53:48 UTC",
  "stop_time": null,
  "input_groups": "playlist",
  "output_groups": "rtmp",
  "loop_playlist": false,
  "playlist_id": "1725014456212124545",
  "channel_class": "single-pipeline",
  "ssai_enabled": null,
  "aws_region": "us-east-1",
  "message": "",
  "created_at": "2022-02-17 12:46:22 UTC",
  "updated_at": "2022-02-17 13:01:55 UTC",
  "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
  "output_destinations": [
      "Brightcove Live with Redundancy"
  ],
  "channel_created_at": "2022-02-17 12:46:22 UTC",
  "channel_updated_at": "2022-02-17 12:46:22 UTC",
  "channel_created_by": "user@brightcove.com",
  "channel_updated_by": "user@brightcove.com",
  "import_captions_enabled": true,
  "live_profile": {
      "display_name": "Premium Live HD 1080p - Tier 2",
      "name": "premium-live-hd-1080p-tier-2",
      "date_created": "2018-06-04 18:16:44 UTC",
      "date_modified": "2018-06-04 18:16:44 UTC"
  },
  "channel_data": {
      "input_group": [
          {
              "input_type": "playlist",
              "value": "redundancy_testing_local",
              "description": "cloudplayout",
              "public_id": "1725014456212124545"
          }
      ],
      "output_groups": [
          {
              "type": "rtmp",
              "redundancy": true,
              "location": "bc_live/${Existing redundant group id}",
              "destination": "Brightcove Live with Redundancy"
          }
      ]
  }
}

Exemple de réponse (état programmé)

Notez les multiples destinations à la fois dans channel_data et dans outputs:

{
  "public_id": "e2d38b8304c84601b27630ae05b764b8",
  "name": "redundancy",
  "description": "test_cloudplayout_roebuck",
  "account_id": "70701684277202",
  "state": "SCHEDULED",
  "status": "Scheduled for start",
  "start_time": "2022-02-10 05:57:10 UTC",
  "stop_time": null,
  "input_groups": "playlist",
  "output_groups": "rtmp",
  "loop_playlist": false,
  "playlist_id": "1724281533777310596",
  "channel_class": "single-pipeline",
  "ssai_enabled": null,
  "aws_region": "us-east-1",
  "message": "",
  "created_at": "2022-02-09 10:36:51 UTC",
  "updated_at": "2022-02-09 10:49:03 UTC",
  "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
  "output_destinations": [
      "Brightcove Live with Redundancy"
  ],
  "channel_created_at": "2022-02-09 10:36:51 UTC",
  "channel_updated_at": "2022-02-09 10:36:51 UTC",
  "channel_created_by": "Created by API",
  "channel_updated_by": "Updated by API",
  "import_captions_enabled": true,
  "live_profile": {
      "display_name": "Premium Live HD 1080p - Tier 2",
      "name": "premium-live-hd-1080p-tier-2",
      "date_created": "2018-06-04 18:16:44 UTC",
      "date_modified": "2018-06-04 18:16:44 UTC"
  },
  "channel_data": {
      "destinations": [
          {
              "id": "dest-rtmp-0",
              "url": "rtmp://d42f9b597f9f4cff90f3d48ddc665a02.sep-qa.a-live.io:1935/d42f9b597f9f4cff90f3d48ddc665a02",
              "stream_name": "alive"
          },
          {
              "id": "dest-rtmp-1",
              "url": "rtmp://2f84603cc5bf45babfc92e58f444eb0b.sep-qa.a-live.io:1935/2f84603cc5bf45babfc92e58f444eb0b",
              "stream_name": "alive"
          },
          {
              "id": "framecapture",
              "url": "s3://cloudplayout-preview/framecapture/e2d38b8304c84601b27630ae05b764b8/image",
              "stream_name": null
          }
      ],
      "input_specification": {
          "codec": "AVC",
          "maximum_bitrate": "MAX_20_MBPS",
          "resolution": "HD"
      },
      "output_groups": [
          {
              "type": "preview",
              "destination_url": "s3://cloudplayout-preview/framecapture/e2d38b8304c84601b27630ae05b764b8/image",
              "encoder_settings": [
                  {
                      "width": 640,
                      "height": 360,
                      "capture_interval": 5,
                      "capture_interval_units": "SECONDS"
                  }
              ]
          },
          {
              "type": "rtmp",
              "location_id": "374d4846292042af82c4c573e58bba39",
              "location": "redundancy_testing_local_group",
              "destination": "Brightcove Live with Redundancy",
              "playback_url": "https://playback-qa.a-live.io/r374d4846292042af82c4c573e58bba39/us-east-1/NA/playlist.m3u8",
              "playback_url_dvr": "https://playback-qa.a-live.io/r374d4846292042af82c4c573e58bba39/us-east-1/NA/playlist_dvr.m3u8",
              "outputs": [
                  {
                      "destination_url": "rtmp://d42f9b597f9f4cff90f3d48ddc665a02.sep-qa.a-live.io:1935/d42f9b597f9f4cff90f3d48ddc665a02/alive",
                      "location_id": "d42f9b597f9f4cff90f3d48ddc665a02",
                      "location": "redundancy_testing_local_2",
                      "encoder_settings": [
                          {
                              "width": 1920,
                              "height": 1080,
                              "bitrate": 4000000,
                              "gop_size": 60.0,
                              "gop_size_units": "FRAMES",
                              "profile": "HIGH",
                              "level": "H264_LEVEL_AUTO",
                              "scan_type": "PROGRESSIVE",
                              "framerate_control": "SPECIFIED"
                          }
                      ],
                      "stream_url": "rtmp://d42f9b597f9f4cff90f3d48ddc665a02.sep-qa.a-live.io:1935/d42f9b597f9f4cff90f3d48ddc665a02/alive",
                      "static": true,
                      "playback_url": "https://playback-qa.a-live.io/d42f9b597f9f4cff90f3d48ddc665a02/us-west-2/NA/playlist.m3u8",
                      "playback_url_dvr": "https://playback-qa.a-live.io/d42f9b597f9f4cff90f3d48ddc665a02/us-west-2/NA/playlist_dvr.m3u8"
                  },
                  {
                      "destination_url": "rtmp://2f84603cc5bf45babfc92e58f444eb0b.sep-qa.a-live.io:1935/2f84603cc5bf45babfc92e58f444eb0b/alive",
                      "location_id": "2f84603cc5bf45babfc92e58f444eb0b",
                      "location": "redundancy_testing_local_1",
                      "encoder_settings": [
                          {
                              "width": 1920,
                              "height": 1080,
                              "bitrate": 4000000,
                              "gop_size": 60.0,
                              "gop_size_units": "FRAMES",
                              "profile": "HIGH",
                              "level": "H264_LEVEL_AUTO",
                              "scan_type": "PROGRESSIVE",
                              "framerate_control": "SPECIFIED"
                          }
                      ],
                      "stream_url": "rtmp://2f84603cc5bf45babfc92e58f444eb0b.sep-qa.a-live.io:1935/2f84603cc5bf45babfc92e58f444eb0b/alive",
                      "static": true,
                      "playback_url": "https://playback-qa.a-live.io/2f84603cc5bf45babfc92e58f444eb0b/us-east-1/NA/playlist.m3u8",
                      "playback_url_dvr": "https://playback-qa.a-live.io/2f84603cc5bf45babfc92e58f444eb0b/us-east-1/NA/playlist_dvr.m3u8"
                  }
              ]
          }
      ],
      "input_group": [
          {
              "input_type": "playlist",
              "value": "redundancy_testing_local_cc",
              "description": "cloudplayout",
              "public_id": "1724281533777310596"
          }
      ]
  }
}

Activation d'un canal pour le SSAI

Pour activer une chaîne pour le SSAI (insertion d'annonces côté serveur), incluez ssai_enabled: true dans le corps de la demande lorsque vous avez créé la chaîne. Si le SSAI est activé pour votre compte, il peut être utilisé pour les chaînes qui incluent du contenu VOD et/ou Live streaming.

Ajouter du contenu à la liste de lecture

L'étape suivante consiste à ajouter du contenu au contenu de la chaîne. Pour cela, vous utiliserez le API CMS (notez qu'il s'agit d'une version abrégée de l'ensemble Référence de l'API CMS comprenant uniquement les opérations relatives à Cloud Playout et avec des descriptions plus appropriées à Cloud Playout).

Obtenez le playlist_id de la chaîne (à partir de la réponse à la demande de création de chaîne ou à partir d'une demande d'obtention de chaîne). Il s'agit de la playlist dans laquelle nous gérons nos actifs pour notre chaîne Cloud Playout.

Demande d'échantillon

Requête

Une demande de mise à jour vidéo est utilisée pour ajouter du contenu. Dans l'exemple ci-dessous, une collection d'identifiants vidéo est ajoutée pour créer une liste de lecture manuelle, mais notez que vous pouvez également créer des listes de lecture intelligentes basées sur des balises vidéo, etc.

Faire un PATCH demande à:

https://cms.api.brightcove.com/v1/accounts/{account_id}/playlists/{playlist_id}

Headers

Content-Type: application/json
Authorization: Bearer {token}

Corps de la demande

{
  "video_ids": [
    "70702887566202",
    "70702887586202",
    "70702260704202",
    "70702260706202"
  ]
}
Exemple de réponse
{
  "id": "1701632459864392160",
  "account_id": "Your account id",
  "created_at": "2021-06-04T10:39:32.934Z",
  "updated_at": "2021-06-04T12:29:06.793Z",
  "description": "cloudplayout",
  "favorite": false,
  "name": "cloudplayout_dvfdb",
  "reference_id": null,
  "type": "EXPLICIT",
  "video_ids": [
    "70702887566202",
    "70702887586202",
    "70702260704202",
    "70702260706202"
  ],
  "state": "READY"
}

Ajouter un événement en direct

Pour ajouter un événement en direct à une chaîne, vous créer une vidéo demande à l'API CMS, en prenant soin d'inclure des balises spéciales qui l'identifieront comme un événement en direct Cloud Playout.

Demande d'échantillon

Requête

Faire un POST demande à:

https://cms.api.brightcove.com/v1/accounts/{account_id}/videos

Headers

Content-Type: application/json
Authorization: Bearer {token}

Corps de la demande

{
  "name": "Name of the event",
  
    "tags": [
      "cp-live-placeholder",
      "duration-00:40:00"
    ]
  ,
  "description": "Description of the event"
}
Exemple de réponse
{
  "id": "70702834583294",
  "account_id": "Your account id",
  "ad_keys": null,
  "clip_source_video_id": null,
  "complete": false,
  "created_at": "2021-06-04T11:00:48.551Z",
  "created_by": {
    "type": "user",
    "id": "76072843583",
    "email": "username@brightcove.com"
  },
  "cue_points": [
  ],
  "custom_fields": {
  },
  "delivery_type": "unknown",
  "description": "test description",
  "digital_master_id": null,
  "duration": null,
  "economics": "AD_SUPPORTED",
  "folder_id": null,
  "geo": null,
  "has_digital_master": false,
  "images": {
  },
  "link": null,
  "long_description": null,
  "name": "test live event",
  "original_filename": null,
  "projection": null,
  "published_at": "2021-06-04T11:00:48.565Z",
  "reference_id": null,
  "schedule": null,
  "sharing": null,
  "state": "ACTIVE",
  "tags": [
    "cp-live-placeholder",
    "duration-00:05:00"
  ],
  "text_tracks": [
  ],
  "updated_at": "2021-06-04T11:00:48.572Z",
  "updated_by": {
    "type": "user",
    "id": "76076294383",
    "email": "username@brightcove.com"
  },
  "playback_rights_id": "primary"
}

Veuillez vous référer au Référence de l'API CMS pour Cloud Playout pour plus d'exemples liés à la gestion des ressources dans Cloud Playout.

Ajouter/gérer des superpositions

Cloud Playout prend en charge deux types de superpositions :

Pour chaque type, la procédure est la suivante :

  1. Créer une ressource de superposition

    Vous devrez fournir une URL publique pour l'image statique ou dynamique. Assurez-vous d'indiquer s'il "type": "dynamic" s'agit d'une superposition dynamique.

  2. Associer la superposition à un canal. Notez qu'il existe des points d'extrémité distincts pour l'association des superpositions statiques et dynamiques :

Ajouter/gérer des ardoises personnalisées

Les slates sont utilisés pour combler les temps morts dans la lecture de la chaîne qui pourraient résulter d'un contenu publicitaire ne remplissant pas complètement la durée d'une coupure publicitaire ou pour combler le temps lorsqu'une heure de démarrage brutale est définie. Brightcove fournit une ardoise par défaut qui peut être utilisée pour n'importe quel canal, mais vous pouvez fournir une ardoise par défaut sous la forme d'une vidéo MP4 qui sera automatiquement mise en boucle si nécessaire.

Une ardoise personnalisée peut être ajoutée en tant qu'actif (ce qui la rend réutilisable pour n'importe quel canal) ou spécifiée en tant qu'URL lors de la création du canal (voir l' exemple de corps de requête ci-dessus).

Voir la référence API pour plus de détails sur l'ajout d'une ardoise personnalisée en tant qu'actif du compte.

Obtenir la chaîne

Nous pouvons utiliser ce point de terminaison pour vérifier les détails et l'état du canal.

Demande d'échantillon

Requête

Faire un GET demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}

Headers

Content-Type: application/json
Authorization: Bearer {token}
Exemple de réponse
{
  "public_id": "channel id",
  "name": "channel name",
  "description": "Channel created for testing Cloud Playout",
  "account_id": "Your account id",
  "state": "DRAFT",
  "status": null,
  "start_time": "2020-12-17 06:00:00 UTC",
  "stop_time": "2020-12-17 07:00:00 UTC",
  "input_groups": "playlist",
  "output_groups": "rtmp",
  "loop_playlist": true,
  "playlist_id": "1686204667297382886",
  "channel_class": "single-pipeline",
  "ssai_enabled": false,
  "aws_region": "us-east-1",
  "message": null,
  "created_at": "2020-12-16 03:41:22 UTC",
  "updated_at": "2020-12-17 04:53:30 UTC",
  "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
  "output_destinations": [
    "Brightcove Live"
  ],
  "channel_created_at": "2020-12-16 03:41:22 UTC",
  "channel_updated_at": "2020-12-17 04:53:30 UTC",
  "channel_created_by": "username@brightcove.com",
  "channel_updated_by": "username@brightcove.com",
  "live_profile": {
    "display_name": "Standard Live HD 720p - Tier 1",
    "name": "standard-live-hd-720p-tier-1",
    "date_created": "2018-06-04 18:16:44 UTC",
    "date_modified": "2018-06-04 18:16:44 UTC"
  },
  "channel_data": {
    "input_group": [
      {
        "input_type": "playlist",
        "value": "cloudplayout_testChannel",
        "description": "Playlist created for Cloud Playout",
        "public_id": "1686204667297382886"
      }
    ],
    "output_groups": [
      {
        "type": "rtmp",
        "location": "bc_live",
        "destination": "Brightcove Live"
      }
    ]
  }
}

Activer une chaîne

Activez un canal en faisant la demande ci-dessous. Aucun corps de requête n'est requis.

Demande d'échantillon

Requête

Faire un POST demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}/create

Headers

Content-Type: application/json
  Authorization: Bearer {token}
Exemple de réponse
{
  "message":"Channel activation initiated"
}

Pour vérifier l'état du canal, voir Obtenir la section Chaîne dessus.

Démarrer une chaîne

Démarrez une chaîne en faisant la demande ci-dessous. Aucun corps de requête n'est requis.

Demande d'échantillon

Requête

Faire un POST demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}/start

Headers

Content-Type: application/json
  Authorization: Bearer {token}
Exemple de réponse
{
  "message":"Channel start initiated"
}

Pour vérifier l'état du canal, voir Obtenir la section Chaîne dessus.

Arrêter une chaîne

Arrêtez une chaîne en faisant la demande ci-dessous. Aucun corps de requête n'est requis.

Demande d'échantillon

Requête

Faire un POST demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}/stop

Headers

Content-Type: application/json
  Authorization: Bearer {token}
Exemple de réponse
{
  "message":"Channel stop initiated"
}

Pour vérifier l'état du canal, voir Obtenir la section Chaîne dessus. Une fois arrêté, le canal sera à l'état DRAFT.

Supprimer une chaîne

Supprimez une chaîne en faisant la demande ci-dessous. Aucun corps de requête n'est requis.

Demande d'échantillon

Requête

Faire un DELETE demande à:

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}

Headers

Content-Type: application/json
  Authorization: Bearer {token}
Exemple de réponse
{
  "message":"Delete initiated"
}

Pour vérifier l'état du canal, voir Obtenir la section Chaîne dessus. Une fois la chaîne supprimée, vous ne devriez plus voir les informations sur la chaîne de la demande d'obtention de chaîne par identifiant.

Obtenir un journal de bord

Un journal d'exécution fournit un enregistrement du contenu (y compris les publicités et les intercalaires) qui a été effectivement transmis par un canal de diffusion dans le nuage au cours de la journée précédente. Les journaux d'exécution sont utiles à des fins d'audit et d'archivage.

Vous pouvez récupérer le journal d'exécution d'une chaîne au format JSON, XML ou CSV en envoyant une GET demande à :

https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels/{channel_id}/as_run_logs?format={format}

La valeur de format doit être json(par défaut) xml, ou csv

Remarques

  • Le journal est construit indépendamment de l'état actuel du canal.
  • Le journal fournit l'enregistrement du jour précédent (24 heures). Par exemple. Si la date actuelle est 2021-09-22 05:30:00 UTC, la journalisation en cours fournit les données de lecture de la chaîne de 2021-09-21 00:00:00 UTC à 2021-09-22 00:00:00 UTC.
  • Un actif dans lequel un mid-roll est joué est divisé et présenté dans les données comme suit :
    1. Actif VOD
    2. Actif en milieu de défilement (joué, par exemple, à la 45e seconde)
    3. Actif VOD avec playhead_start_time = 00:00:45, position à partir de laquelle il continue.
Exemple de protocole : JSON
{
  "account_id": "Account ID",
  "channel_id": "62713ed768434ffbac9ce2ff974c9cb9",
  "channel_name": "TestChannelName",
  "from": "Query start time (UTC)",
  "to": "Query end time (UTC)",
  "events": [
    {
      "name": "Video Cloud Asset name",
      "id": "Video cloud video ID",
      "type": "LIVE | AD | VIDEO | PRE_ROLL_BUMPER | POST_ROLL_BUMPER | MIDROLL",
      "start_time": "2021-07-30 00:00:00.0 UTC",
      "end_time": "2021-07-30 01:00:00.0 UTC"
    },
    {
      "name": "AD Placeholder",
      "id": "Video cloud video ID",
      "type": "AD",
      "start_time": "2021-07-30 01:00:00.0 UTC",
      "end_time": "2021-07-30 01:05:00.0 UTC"
    },
    {
      "name": "Asset with a Midroll AD",
      "id": "6246656690001",
      "type": "VIDEO",
      "start_time": "2021-07-30 01:05:00.0 UTC",
      "end_time": "2021-07-30 01:10:00.0 UTC"
    },
    {
      "name": "Asset with a Midroll AD",
      "id": "6246656690001",
      "type": "MIDROLL",
      "start_time": "2021-07-30 01:10:00.0 UTC",
      "end_time": "2021-07-30 01:10:30.0 UTC"
    },
    {
      "name": "Asset with a Midroll AD",
      "id": "6246656690001",
      "type": "VIDEO",
      "start_time": "2021-07-30 01:10:30.0 UTC",
      "end_time": "2021-07-30 01:20:00.0 UTC",
      "playhead_start_time": "00:05:00"
    }
  ]
}
Exemple de protocole : XML

   Account ID 
  62713ed768434ffbac9ce2ff974c9cb9
  TestChannelName
  Query start time (UTC)
  Query end time (UTC)


  Video Cloud Asset name
  Video cloud video ID
   LIVE | AD | VIDEO | PRE_ROLL_BUMPER | POST_ROLL_BUMPER | MIDROLL 
  2021-07-30 00:00:00.0 UTC
  2021-07-30 01:00:00.0 UTC


  AD Placeholder
  Video cloud video ID
  AD
  2021-07-30 01:00:00.0 UTC
  2021-07-30 01:05:00.0 UTC


  Asset with a Midroll AD
  6246656690001
  VIDEO
  2021-07-30 01:05:00.0 UTC
  2021-07-30 01:10:00.0 UTC


  Asset with a Midroll AD
  6246656690001
  MIDROLL
  2021-07-30 01:10:00.0 UTC
  2021-07-30 01:10:30.0 UTC


  Asset with a Midroll AD
  6246656690001
  VIDEO
  2021-07-30 01:10:30.0 UTC
  2021-07-30 01:20:00.0 UTC
  00:05:00


Réponse de l'échantillon : CSV
account_id, channel_id, channel_name, from, to, event:name, event:id, event:type, event:start_time, event:end_time, event:playhead_start_time