Paper Contacter le support | état du système L'état du système
Contenu de la page

    Présentation: API Cloud Playout

    Cette rubrique fournit une vue d'ensemble de l'API EPG et de l'API Channels, qui sont utilisées avec Cloud Playout.

    Introduction

    Il existe deux API liées à Cloud Playout:

    • L'API EPG vous permet de récupérer un guide de programmation électronique pour un canal Cloud Playout. Cloud Playout génère un EPG conforme à la norme XML TV, comme décrit dans le schéma disponible sur https://repository.data2type.de/XMLTV/v_1.47/html/index.html.
    • L'API Channels vous permet de récupérer des informations sur vos canaux Cloud Playout que vous pouvez afficher dans votre interface utilisateur ou votre page Web.

    Authentification

    Les API Cloud Playout utilisent le Système Brightcove OAuth pour authentifier les demandes via un jeton d'accès qui est passé dans un en-tête d'autorisation avec la demande:

    Authorization: Bearer {access token}

    Les jetons d'accès sont récupérés à l'aide du OAuth API - voir Obtenir des jetons d'accès pour plus de détails. Vous aurez également besoin des informations d'identification du client pour authentifier les demandes de jetons d'accès. Ceux-ci peuvent être créés dans la section Admin de Studio - voir Gestion des informations d'identification de l'API. Les autorisations dont vos informations d'identification auront besoin pour l'API EPG sont les suivantes:

    Autorisations de l'API EPG
    Autorisations de l'API EPG

    URL d'API

    Obtenez tous les canaux Cloud Playout

    Le point de terminaison suivant peut être utilisé pour obtenir une liste de tous les canaux Cloud Playout pour un compte:

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

    La account_id est Video Cloud identifiant de compte.

    Obtenez un EPG

    L'URL de la demande d'API EPG est:

    https://sm.cloudplayout.brightcove.com/accounts/{account_id}/channels/{channel_id}/epg

    La account_id est Video Cloud identifiant de compte et channel_id est l'ID de la chaîne créée dans Studio.

    L'ID de la chaîne se trouve dans la réponse à la demande d'obtention de tous les canaux Cloud Playout, ou dans l'URL du navigateur lorsque vous êtes dans la vue Canal de la section Cloud Playout de Studio:

    https://studio.brightcove.com/products/videocloud/cloudplayout/channel/2c73c2112f794e6eb80be1284a495674

    Paramètres de demande EPG

    Les paramètres de requête facultatifs suivants peuvent être ajoutés à la requête EPG:

    Paramètres de requête de l'API EPG
    Paramètre Valeur par défaut Description
    start (14 jours avant maintenant) La date-heure à partir de laquelle les réponses EPG peuvent être interrogées et renvoyées au format de date ISO 8601
    end (maintenant - la date-heure actuelle) La date-heure jusqu'à laquelle les réponses EPG peuvent être interrogées et renvoyées au format de date ISO 8601
    limit (tous les programmes) Une valeur entière qui contrôle le nombre de programmes renvoyés dans une demande
    include_ads faux Définissez ceci sur true pour inclure des annonces dans la réponse

    Notes

    1. La start/end la fenêtre ne peut excéder 14 jours. Le début peut être retardé de 14 jours par rapport à la date et à l'heure actuelles pour interroger l'EPG historique. Vous pouvez également les futures données EPG pendant 14 jours maximum à partir de la date-heure actuelle.
    2. Si la différence entre l'heure de fin et l'heure de début est supérieure à 14 jours, l'API ne génère que 14 jours entre l'heure demandée et l'heure de fin ou 14 jours, selon la première éventualité.
    3. Les deux start et end peut accepter des valeurs date-heure avec et sans décalages de fuseau horaire - si aucun décalage de fuseau horaire n'est inclus, UTC est supposé.
    4. Les deux start et end doit être encodé en URI:
      Encodage URI
      Échantillon ISO 8601 Encodé par URI
      2020-07-24 15:30:00 2020-07-24%2015%3A30%3A00
      2020-07-24 15:30:00 +0530 2020-07-24%2015%3A30%3A00%20%2B0530

    Exemple de réponse API EPG

    Voici un exemple de réponse de l'API:

    <?xml version="1.0" encoding="utf-8"?>
        <tv source-info-name="Cloudplayout Schedules" source-info-url="http://www.cloudplayout.qa.brightcove.com">
            <channel id="9fb8032ff2fe4f55b388d8969c22ca58">
                <display-name>MyCloudChannel</display-name>
                <icon src="https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png"/>
            </channel>
            <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132000" stop="20201120132228">
                <title>Frozen</title>
                <desc>FrozenMultiLanguage</desc>
                <length units="seconds">147.605</length>
                <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/43d57501-b98a-4708-bdd1-a09081f7a585/main/1280x720/1m13s802ms/match/image.jpg" width="1280" height="720"/>
                <category>video</category>
                <keyword>eyJ2aWRlb19pZCI6IjcwNzAwNDQxMDk2MjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29uZ3MiOjV9fQ==</keyword>
            </programme>
            <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132228" stop="20201120133228">
                <title>LiveDemo</title>
                <desc>Live Demo</desc>
                <length units="seconds">600.0</length>
                <icon src="https://img.brightcove.com/cloudplayout/live-icon.jpg" width="1280" height="720"/>
                <category>live</category>
                <keyword>eyJ2aWRlb19pZCI6IjcwNzAxNDg0MjA3MjAyIiwib3JkZXIiOjIsInRhZ3MiOiJjcC1saXZlLXBsYWNlaG9sZGVyLGR1cmF0aW9uLTAwOjEwOjAwIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6Im5vcnRoIGFtZXJpY2EifX0=</keyword>
            </programme>
            <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120133228" stop="20201120133327">
                <title>ChildrenComedy</title>
                <desc>ChildrenComedy</desc>
                <length units="seconds">59.164</length>
                <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg" width="1280" height="720"/>
                <category>video</category>
                <keyword>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjMsInRhZ3MiOiJyb21hbmNlIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6ImFzaWEiLCJzb25ncyI6NX19</keyword>
            </programme>
            <programme>
                ...
            </programme>
        </tv>

    Notes

    1. Les horodatages de début et de fin sont en heure UTC.
    2. La category et keyword les entrées sont à des fins internes.

    Les données EPG contiennent plusieurs données de programme où chaque programme représente des détails sur la vidéo ou live atout:

    <programme channel="27963aa756294a7c98ca1c2c459d4ba2" start="20201118232206" stop="20201118232305">
    	<title>ChildrenComedy</title>
    	<desc>ChildrenComedy</desc>
    	<length> units="seconds">59.164</length>
    	<icon> src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg" width="1280" height="720" ></icon>
    	<category>video</category>
    	<keyword>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29uZ3MiOjV9fQ==</keyword>
    </programme>

    Ici le keyword contient une valeur json encodée en base64. La valeur décodée du keyword est montré ci-dessous.

    • video_id: est l'identifiant de la vidéo comme dans Video Cloud.
    • order: est l'ordre de l'élément dans la liste des programmes Cloud Playout.
    • tags: séparé par des virgules (le cas échéant) - associé à la vidéo correspondante dans video cloud.
    • métadonnées personnalisées: (le cas échéant, représentées sous forme de paires nom / valeur) associées à la vidéo correspondante dans video cloud.
    {
      "video_id":"70701216482202",
      "order":1,
      "tags":"children,comedy",
      "custom_metadata":{
        "region":"africa",
        "songs":5
      }
    }

    Exemple de réponse de l'API Channels

    {
            "items": [
              {
                "public_id": "f8eb5f9ccfb84f81b4fb506a663c5545",
                "name": "Channel-4",
                "description": "Test Channel",
                "account_id": "1752604059001",
                "state": "RUNNING",
                "status": "Channel started",
                "start_time": "2021-01-03 15:31:12 UTC",
                "stop_time": null,
                "input_groups": "slate:rtmp:playlist",
                "output_groups": "rtmp",
                "loop_playlist": true,
                "playlist_id": "1687789969630819284",
                "channel_class": "single-pipeline",
                "ssai_enabled": false,
                "aws_region": "us-east-1",
                "message": "",
                "created_at": "2021-01-02 15:39:05 UTC",
                "updated_at": "2021-01-03 15:31:12 UTC",
                "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
                "output_destinations": [
                  "Brightcove Live"
                ],
                "channel_created_at": "2021-01-02 15:39:05 UTC",
                "channel_updated_at": "2021-01-02 15:39:05 UTC",
                "channel_created_by": "rcrooks@brightcove.com",
                "channel_updated_by": "rcrooks@brightcove.com"
              },
              {
                "public_id": "42ecb67a9a964662a4071b4fffff0012",
                "name": "Test-6",
                "description": "Test Channel",
                "account_id": "1752604059001",
                "state": "SCHEDULED",
                "status": "Scheduled for start",
                "start_time": "2021-01-09 05:00:00 UTC",
                "stop_time": "2021-01-09 23:00:00 UTC",
                "input_groups": "slate:rtmp:playlist",
                "output_groups": "rtmp",
                "loop_playlist": true,
                "playlist_id": "1688070644726417934",
                "channel_class": "single-pipeline",
                "ssai_enabled": false,
                "aws_region": "us-east-1",
                "message": "",
                "created_at": "2021-01-05 18:00:18 UTC",
                "updated_at": "2021-01-06 19:08:41 UTC",
                "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
                "output_destinations": [
                  "Brightcove Live"
                ],
                "channel_created_at": "2021-01-05 18:00:18 UTC",
                "channel_updated_at": "2021-01-06 19:06:46 UTC",
                "channel_created_by": "rcrooks@brightcove.com",
                "channel_updated_by": "rcrooks@brightcove.com"
              }
            ]
          }

    limites

    1. L'EPG est généré au meilleur effort / proche de la précision.
    2. Lorsque l'EPG est initialement construit à partir de la liste de lecture, il peut y avoir une erreur d'heure de début car la lecture dans le cloud prend un certain temps pour initier la commutation.
    3. EPG peut ne pas être cohérent pour chaque extraction lorsque la liste de lecture est modifiée, car il est construit dynamiquement en fonction des informations actuelles qu'il contient. Certaines actions qui modifieront l'EPG incluent la réorganisation de la liste de lecture ou l'ajout / la suppression d'éléments dans la liste de lecture.
    4. Si un dysfonctionnement se produit lors de la commutation et que l'heure de commutation n'est pas précise, il pourrait y avoir une inexactitude de transit pour le futur EPG. Quelques exemples d'actions susceptibles de provoquer ce problème seraient un changement de playlist ou la suppression de l'élément actif actuel dans la playlist.
    5. Les consommateurs de l'EPG devraient le demander aussi près que possible du temps réel pour obtenir la version la plus précise.

    Dernière mise à jour de la page le 09 janv.2021