Aperçu: API EPG

Cette rubrique fournit une vue d'ensemble de l'API EPG, qui est utilisée avec Cloud Playout.

Introduction

Il existe deux API liées à Lecture en nuage:

Authentification

Les API Cloud Playout utilisent le Système Brightcove OAuth pour authentifier les demandes via un jeton d'accès transmis 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 de l'API OAuth - voir Obtenir des jetons d'accès pour les 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 :

Autorisations API EPG
Autorisations API EPG

Paramètres de requête 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 days prior to now) La date-heure à partir de laquelle les réponses EPG peuvent être interrogées et renvoyées au format de date ISO 8601
end (now - the current date-time) La date et l'heure jusqu'à laquelle les réponses EPG peuvent être interrogées et renvoyées au format de date ISO 8601
limit (all programs) Une valeur entière qui contrôle le nombre de programmes renvoyés dans une requête. Notez que la valeur limite (par défaut : 100) peut empêcher le retour de tous les programmes pour la période spécifiée. Voir Meilleures pratiques de l'API EPG pour plus d'informations
include_ads false Définissez cette valeur sur true pour inclure des annonces dans la réponse

Remarques

  1. Les start/end la fenêtre ne peut excéder 14 jours. Le début peut avoir 14 jours de retard par rapport à la date et à l'heure actuelles pour interroger l'EPG historique. Vous pouvez également obtenir des données EPG futures jusqu'à 14 jours à compter 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écalage de fuseau horaire - si aucun décalage de fuseau horaire n'est inclus, l'UTC est supposé.
  4. Les deux start et end doit être codé en URI :
    Encodage URI
    Échantillon ISO 8601 URI-Encodé
    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="https://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>

Remarques

  1. Les horodatages de début et de fin sont en heure UTC.
  2. Les 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 l'actif en direct :

<program channel = "27963aa756294a7c98ca1c2c459d4ba2" start = "20201118232206" stop = "20201118232305">
	<title> Comédie pour enfants </title>
	<desc> Comédie pour enfants </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> vidéo </category>
	<mot-clé> eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWViGyMjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWViGiQiWrhdWNMhZIwoiGeViQiWKeyhdWNMHZIwoiHViWiWiKeyhdWNMHZIwoiHViWiKeyhjdWNMHZIwoiHViWiqiqiWhdWNM = IwoiZViWiqiqiqqqqqqHjyhd =
</programa >

Ici le keyword contient la valeur json codé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'actif dans la liste du programme Cloud Playout.
  • tags: séparés par des virgules (le cas échéant) - associé à la vidéo correspondante dans le cloud vidéo.
  • 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 le cloud vidéo.
{
  "video_id":"70701216482202",
  "order":1,
  "tags":"children,comedy",
  "custom_metadata":{
    "region":"africa",
    "songs":5
  }
}

L'EPG et les pare-chocs

Comment l'EPG gère les pare-chocs

L'EPG n'inclura pas les pare-chocs eux-mêmes. Les durées des bumpers seront reflétées de la manière suivante :

  • Les durées du bumper de pré-roll sont ajoutées au Suivant durée de la vidéo
  • Les durées de bumper post-roll sont ajoutées au précédent durée de la vidéo

Problèmes potentiels

Il y a deux choses que vous pouvez faire pour que l'EPG soit inexact :

  • Balisage des vidéos pour qu'elles soient à la fois pré-roll (cp-preroll-bumper ) ET post-roll (cp-postroll-bumper ) rendra l'EPG inexact car cela dépend de la balise pour décider où ajouter la durée. Si la vidéo a les deux balises, la durée du bumper sera ajoutée à la fois à la vidéo précédente et suivante.
  • Vous pouvez déplacer les bumpers dans la liste du programme Cloud Playout, mais si vous les organisez de telle sorte qu'un bumper pré-roll soit immédiatement suivi d'un bumper post-roll, les deux bumpers joueront, mais l'API EPG les ignorera ainsi que le calendrier pour cela. période sera vide.

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 en nuage prend un certain temps pour initier la commutation.
  3. L'EPG peut ne pas être cohérent pour chaque récupération 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 dans la commutation et que l'heure de commutation n'est pas précise, il pourrait y avoir une imprécision de transit pour le futur EPG. Quelques exemples d'actions qui pourraient provoquer cela seraient un changement de liste de lecture ou la suppression de l'actif actif actuel dans la liste de lecture.
  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.