Introduction
Il existe deux API liées à Lecture en nuage:
- L'API EPG vous permet de récupérer un guide de programmation électronique pour une chaîne 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. Voir Aperçu: API de canaux
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 :
Paramètres de requête EPG
Les paramètres de requête facultatifs suivants peuvent être ajoutés à la requête 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
- 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. - 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é.
- Les deux
start
etend
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é. -
Les deux
start
etend
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
- Les horodatages de début et de fin sont en heure UTC.
- Les
category
etkeyword
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
- L'EPG est généré au meilleur effort / proche de la précision.
- 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.
- 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.
- 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.
- 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.