Introduction
L'API de lecture est une API à faible latence destinée à être utilisée côté client pour récupérer des données de vidéo ou de liste de lecture à partir de pages Web ou d'applications mobiles. Il ne s'agit pas d'une API de gestion multimédia générale à utiliser pour intégrer Video Cloud à votre CMS ou à d'autres systèmes. Pour cela, vous devez utiliser l'API CMS.
Les résultats de l'API de lecture sont filtrés pour ne renvoyer que les vidéos jouables (état = ACTIVE, indicateur d'ingestion terminée = vrai, et dans des données/heures correctes si planifié). Cela signifie que le lecteur pourra lire la vidéo dès qu'un rendu existe, même si d'autres sont encore en cours de traitement. Si vous devez récupérer des vidéos qui ne sont pas actuellement lisibles, vous devez à nouveau utiliser le API CMS au lieu.
Sachez également que pour maximiser les performances, les données vidéo auxquelles accède l'API de lecture sont mises en cache pendant une courte période. La durée de mise en cache d'un identifiant d'ensemble de données particulier varie, mais peut aller jusqu'à 20 minutes.
Voir aussi le Référence API.
Cas d'utilisation
Les Lecteur Brightcove et le Lecteurs SDK Brightcove inclure des méthodes de catalogue identiques aux méthodes de l'API de lecture, et pour la plupart, vous pouvez simplement les utiliser si vous ne faites que récupérer des vidéos ou des listes de lecture au moment de l'exécution pour les lire.
Cependant, vous souhaiterez peut-être fournir une vue de la vidéo ou des listes de lecture dans un écran d'application mobile où aucun lecteur n'est présent.
De plus, il peut arriver que vous souhaitiez récupérer des vidéos ou des listes de lecture pour afficher des informations les concernant, sans avoir de lecteur à l'écran, comme la page de destination d'un portail vidéo, par exemple.
L'API de lecture est utile dans ces cas.
Informations générales
URL de base
L'URL de base de l'API Playback est :
https://edge.api.brightcove.com/playback/v1
Chemin du compte
Dans tous les cas, des demandes seront faites pour un Nuage vidéo Compte. Par conséquent, vous allez toujours ajouter le terme accounts
suivi de votre identifiant de compte à l'URL de base :
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}
Authentification
Les demandes sont authentifiées par une clé de stratégie, qui peut être transmise de l'une des trois manières suivantes :
- Dans un argument à un
Accept
en-tête :Accept: application/json;pk={policy_key}
Il s'agit de la méthode recommandée pour un client basé sur un navigateur, car elle permet à la demande d'aller de l'avant sans demande supplémentaire d'abord dans le cadre de la vérification "pré-vol" CORS du navigateur. Cela permet d'économiser la latence lors de la première demande de navigateur.
- Dans un
Authorization
en-tête utilisant le mot clé realmBCOV-Policy
:Authorization: BCOV-Policy {policy_key}
- Dans un
BCOV-Policy
en-tête :BCOV-Policy: {policy_key}
Obtention d'une clé de stratégie
Vous pouvez obtenir une clé de stratégie de trois manières :
- Chaque lecteur Brightcove en reçoit un automatiquement. Vous pouvez trouver des instructions pour obtenir la clé de politique d'un joueur dans ce document. Étant donné que les clés de stratégie sont valables à l'échelle du compte, vous pouvez l'utiliser que ce lecteur soit incorporé ou non sur la page.
- Vous pouvez générer une clé de stratégie de base en utilisant le Démarrage rapide des clés de stratégie
- Vous pouvez faire une demande au API de règles
Authentification par jeton
L'authentification par jeton pour le contenu HLS et DASH est prise en charge. Si vous avez besoin d'une authentification par jeton, contactez votre Customer Success Manager pour qu'il l'active pour votre compte.
Évitez les URL codées en dur
Les URL des vignettes, affiches, fichiers vidéo et autres médias ne doivent jamais être codées en dur dans vos pages ou applications. Le Playback API renvoie la dernière version mise en cache des URL pour les fichiers multimédias, mais les URL elles-mêmes sont sujettes à changement. Vous devez utiliser les requêtes CMS API(ou Playback API) pour récupérer ces URL chaque fois que la page se charge, ou les mettre en cache pendant six heures maximum.
Mettre en cache les URL des vidéos et des images
Vous pouvez mettre en cache les URL des vidéos et des images pour améliorer les performances des pages, mais le cache doit être actualisé régulièrement. Si vous mettez en cache les URL que vous récupérez pour améliorer les performances de vos pages, veillez à actualiser le cache en répétant les appels d'API au moins une fois toutes les six heures.
Méthodes
L'API prend uniquement en charge les requêtes GET suivantes, des types suivants :
Demandes de vidéos
Un seul objet vidéo peut être récupéré à l'aide de l'identifiant vidéo ou de l'identifiant de référence.
Obtenir la vidéo par identifiant
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos/38467382999
Exemple de réponse
{
"account_id": "107767373999",
"ad_keys": null,
"created_at": "2010-07-12T22:37:34.760Z",
"description": "Avatar_MakingAScene_Featurette",
"duration": 595560,
"id": "38467382999",
"long_description": null,
"name": "Avatar_MakingAScene_Featurette",
"published_at": "2010-07-12T22:37:34.760Z",
"reference_id": "AvatarMakingShort",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"link": {
"text": "Full Dvd at Amazon",
"url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"tags": [
"copied"
],
"poster_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"thumbnail_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"thumbnail": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
}, ... 6 more sources ...
]
}
Obtenir la vidéo par identifiant de référence
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/ref:{reference_id}
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos/ref:nature_2010-07-12
Exemple de réponse
{
"account_id": "107767373999",
"ad_keys": null,
"created_at": "2010-07-12T22:37:34.760Z",
"description": "Avatar_MakingAScene_Featurette",
"duration": 595560,
"id": "38467382999",
"long_description": null,
"name": "Avatar_MakingAScene_Featurette",
"published_at": "2010-07-12T22:37:34.760Z",
"reference_id": "nature_2010-07-12",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"link": {
"text": "Full Dvd at Amazon",
"url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"tags": [
"copied"
],
"poster_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"thumbnail_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"thumbnail": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
}, ... 6 more sources ...
]
}
Rechercher des vidéos
Vous devez utiliser un clé de stratégie activée pour la recherche , lors de la recherche de vidéos à l'aide de l'API de lecture. Pour plus de détails, consultez le Référence de l'API de lecture document.
Paramètres
Notez que tous les paramètres sont optionnel. Ils s'appliquent à GET Videos
demandes seulement.
Paramètre | Description |
---|---|
q |
Chaîne de requête pour les recherches : pour plus de détails, consultez le guide de recherche |
limit |
Nombre de vidéos à renvoyer : doit être un entier compris entre 1 et 1 000. Par défaut : 20 |
offset |
Nombre de vidéos à ignorer (pour les résultats de pagination). Doit être un entier positif. Par défaut : 0 |
sort |
Une chaîne qui spécifie le champ à trier.- Commencez par trier décroissant.Si une valeur pour q est fournie, alors le tri par défaut est par « score » (pertinence des résultats de recherche par rapport à la requête d'origine).Si aucune valeur pour n' q est fournie, le tri par défaut est updated_at décroissant.Les champs suivants sont valides pour le tri : name , reference_id , created_at , published_at , updated_at , schedule_starts_at , schedule_ends_at , state , plays_total , et plays_trailing_week Pour plus de détails, consultez le Obtenir des vidéos section de la référence de l'API Playback |
config_id |
Voir Règles de livraison |
ad_config_id |
Voir les demandes de vidéo avec le SSAI |
Utilisation des paramètres de recherche
Brightcove's Playback API fournit un moyen programmatique de rechercher des vidéos dans votre Video Cloud bibliothèque.
Pour effectuer des recherches simples et complexes sur vos données vidéo, vous utiliserez le q
paramètre suivant :
https://edge.api.brightcove.com/playback/v1/accounts/1752604051111/videos?q={search terms}
Pour plus d'informations sur la recherche de vidéos, reportez-vous à la Rechercher des vidéos document.
Résultats de la pagination
Utilisez le limit
paramètre pour spécifier le nombre d'articles que vous souhaitez renvoyer suite à une demande, jusqu'à 1 000. Vous pouvez alors utiliser le offset
paramètre pour parcourir les ensembles de résultats qui sont plus grands que le limit
. Les offset
est le nombre d'éléments à ignorer.
Par exemple, la recherche suivante renvoie les vidéos 51-75 de l'ensemble de résultats total, en supposant que l'ensemble de résultats total comporte au moins 75 vidéos :
/videos?q=updated_at:2014-01-01..2014-06-30&limit=25&offset=50
Les limit
et offset
les paramètres ne peuvent être utilisés que pour les vidéos.
Meilleures pratiques de pagination
Lorsque vous parcourez votre ensemble de résultats à partir de l'API Playback, il est recommandé de suivre ces étapes :
- Utilisez le
limit
etoffset
paramètres pour renvoyer des groupes de données de votre jeu de résultats./accounts/578380111111/videos?q=tags:nature&limit=20&offset=50
- A chaque réponse, vous verrez que le
count
champ affiche toujours le nombre maximum de vidéos dans votre ensemble de résultats.{"count": 171, "videos": [ ... ] }
- Le total
count
de vidéos de votre première demande peuvent être utilisées pour déterminer le nombre de pages supplémentaires que vous devrez demander.
Vous pouvez également interroger lacount
valeur avec chaque réponse et continuer jusqu'à ce que lecount
soit inférieur ou égal à la taille de page fois la valeurlimit
.count <= page-number * limit
Tri des résultats vidéo
Utiliser le paramètre sort=field_name
pour spécifier comment les résultats doivent être triés. Vous pouvez trier les champs vidéo suivants :[1-1]
- nom
- identifiant_référence
- created_at
- published_at
- updated_at
- schedule_starts_at (remarque : c'est le champ de tri, le champ de recherche l'est
schedule.starts_at
) - schedule_ends_at (remarque : c'est le champ de tri, le champ de recherche l'est
schedule.ends_at
) - état
- plays_total[1-2]
- plays_trailing_week[1-2]
Remarques
- [1-1] Si vous ne fournissez pas de valeur de tri pour un appel de recherche vidéo, les résultats seront triés par pertinence. Si vous ne fournissez pas de valeur de tri pour un
GET
appel vidéo, les résultats seront triés parupdated_at
descendant. - [1-2] Vous pouvez trier par
plays_total
ouplays_trailing_week
, mais ces champs ne sont pas inclus dans les résultats
Toutes les vidéos et les grands ensembles de données
Si vous récupérez toutes les vidéos de votre compte, ou un grand nombre de vidéos, vous devez être conscient de certaines choses :
- Vous serez peut-être tenté d'utiliser le maximum autorisé
limit
(1 000), mais il est préférable de récupérer des vidéos par lots de 25 ou moins afin de minimiser les risques d'expiration des demandes d'API - Lorsque vous parcourez de grands ensembles de données, il est possible que les données vidéo soient mises à jour pendant l'opération, ce qui peut entraîner un décalage des éléments dans les réponses :
- Vous pouvez voir un élément répété sur des pages successives
- Un élément peut être manqué, car il est passé à un ensemble de réponses précédent
Pour tenir compte de la première possibilité, votre application doit dédupliquer la liste complète des éléments une fois que vous avez terminé de récupérer les vidéos. Pour gérer la deuxième possibilité, vous devez comparer le nombre total d'éléments récupérés (après déduplication) au nombre attendu, puis réexécuter les demandes en triant les résultats par last_modified_date (décroissant). Vous ne devriez pas avoir à récupérer plus d'un lot pour récupérer les éléments oubliés.
- Vous pouvez réduire la probabilité des scénarios de l'élément précédent en triant les résultats renvoyés de manière appropriée. Le tri par défaut par pertinence pour les recherches est basé sur un algorithme complexe qui recherche des combinaisons de mots-clés, de balises et de valeurs de champs personnalisés. Si vous recherchez des vidéos basées sur plusieurs mots-clés, balises et/ou champs personnalisés, trier par pertinence est exactement ce que vous voulez. Cependant, si vous essayez simplement de récupérer la totalité ou une grande partie de vos vidéos, définissez le paramètre
sort
Le paramètre explicitement vous donnera plus de contrôle sur l'ordre des éléments retournés.
Obtenir des vidéos
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos?q=tags:nature,name:nature
Exemple de réponse
{
"count": 123,
"videos":
[
{<video1 fields>},
{<video2 fields>},
...
]
}
Réponse d'erreur
si vous essayez d'utiliser le point de terminaison Get Videos avec une clé de stratégie qui n'est PAS activée pour la recherche, vous recevrez le message d'erreur suivant de l'API de lecture :
[
{
"api_call": "search",
"error_subcode": "API",
"error_code": "ACCESS_DENIED",
"message": "Access to this resource is forbidden by access policy."
}
]
Trouver des vidéos similaires
L'API de lecture vous permet de rechercher dans votre compte des vidéos liées à la vidéo spécifiée. Basé sur name
et short description
de la vidéo spécifiée, l'API recherchera toute correspondance partielle dans les champs suivants :
name
short description
long description
tags
Si la restriction géographique est en vigueur, il se peut que vous ne receviez pas une page complète de résultats.
Paramètres
Les paramètres d'URL suivants peuvent être utilisés pour les demandes de vidéos liées à GET :
Paramètre | Description |
---|---|
limit |
Le nombre de vidéos à renvoyer (par défaut = 20 ; maximum = 1000) |
ad_config_id |
Ajoutez votre ad_config_id pour retourner vidéos avec SSAI |
Par défaut, la réponse contiendra jusqu'à 20 vidéos. Vous pouvez utiliser limit
ce paramètre pour renvoyer un maximum de 1 000 vidéos, ce qui entraîne une latence accrue.
Notez qu'il n'y a pas offset
lors de la recherche de vidéos similaires, vous ne pourrez donc pas parcourir les résultats de vos vidéos.
Obtenez des vidéos similaires à l'aide de l'identifiant vidéo
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}/related
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/5565662146001/related
Obtenez des vidéos similaires à l'aide de l'identifiant de référence
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/ref:{reference_id}/related
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/ref:nature/related
Exemple de réponse
Dans la réponse ci-dessous, notez qu'il n'y a pas count
terrain, contrairement au rechercher des vidéos réponse.
{
"videos":
[
{<video1 fields>},
{<video2 fields>},
...
]
}
Réponse d'erreur
Si vous essayez d'utiliser le point de terminaison associé à la recherche avec une clé de stratégie qui n'est PAS activée pour la recherche, vous recevrez le message d'erreur suivant de l'API de lecture :
[
{
"api_call": "search",
"error_subcode": "API",
"error_code": "ACCESS_DENIED",
"message": "Access to this resource is forbidden by access policy."
}
]
Règles de livraison
Pour appliquer des règles de remise aux réponses aux demandes de l'API Playback, config_id={DELIVERY_RULES_ID}
ajoutez-y le.
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/6026822730001?config_id=9869b9f8-59a1-4490-a092-c28b6cf79764
Demande de vidéo avec SSAI
Même si vous n'utilisez PAS de lecteur Web Brightcove ou les kits SDK natifs Brightcove dans votre application, vous pouvez toujours utiliser l'insertion d'annonces côté serveur (SSAI) avec votre propre lecteur.
Obtenez une vidéo avec SSAI
Pour renvoyer une vidéo avec SSAI, ajoutez votre identifiant de configuration d'annonce en tant que paramètre d'URL à votre demande d'API de lecture. Avec cette demande, vous pouvez utiliser soit un identifiant vidéo, soit un identifiant de référence vidéo.
-
Ajoutez votre
ad_config_id
à la fin de la requête de l'API Playback :Point final avec paramètre URL
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}?ad_config_id={ad_config_id}
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/5565662146001?ad_config_id=1234abcd
-
Dans l'exemple de réponse ci-dessous, vous remarquerez les éléments suivants :
- La réponse est similaire à celle si vous n'avez pas inclus d'ID de configuration d'annonce.
- Les éléments de la
sources
le tableau contiendra une nouvelle propriété appeléevmap
. - Si vous voulez savoir où se trouvent les publicités dans le contenu, vous pouvez lire le fichier VMAP lié dans le
vmap
biens.
Exemple de réponse de l'API Playback
{ "description": "The story of a giant rabbit with a heart bigger than himself. ", "poster_sources": [ { "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/3723496277001/dd5bd69c-e962-4a43-9dbd-94faaaba1785/main/1280x720/5m17s130ms/match/image.jpg" } ], "tags": [], "cue_points": [], "custom_fields": {}, "account_id": "3723496277001", "sources": [ { "ext_x_version": "4", "vmap": "https://ssaiplayback.prod.boltdns.net/playback/once/v1/vmap/hls/v4/clear/3723496277001/7a3316d9-1b06-4d62-bec8-3919b43fffbb/dd5bd69c-e962-4a43-9dbd-94faaaba1785/content.vmap?bc_token=NTllMTMxYjNfMTdkOTY2YThhNjU5MDk5ZTQ3NDBkNmUxOTYyOGRkNzM0ZjBiM2RjMGEwOThjOGFkYjk1MWQxMzFmNGYzMjA5YQ%3D%3D", "type": "application/x-mpegURL", "src": "https://ssaiplayback.prod.boltdns.net/playback/once/v1/hls/v4/clear/3723496277001/7a3316d9-1b06-4d62-bec8-3919b43fffbb/dd5bd69c-e962-4a43-9dbd-94faaaba1785/master.m3u8?bc_token=NTllMTMxYjNfZGM5ZDg0NGM2ZGJjZDcxZTFjOGYyODBlMzM2NmNmMmJkMWNhZDczNWViNzRiMjIwNjg5MjkzZGM0ZmJlMTc1Yw%3D%3D" }, ... ], "created_at": "2017-05-15T17:09:11.171Z" }
- Copiez l'une des
vmap
URL et collez-la dans la barre de recherche du navigateur pour voir la réponse VMAP. -
La réponse VMAP contient une
<bc:Brightcove
balise avec uncontenturi
attribut. Il s'agit de l'URL à utiliser pour charger votre lecteur.Exemple de réponse VMAP
Voici un exemple de réponse vmap :
<vmap:VMAP xmlns:bc="bc" xmlns:vmap="https://www.iab.net/vmap-1.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" version="1.0"> <vmap:Extensions> <bc:Brightcove ttl="3600" contenturi="https://ssaimanifest.prod.boltdns.net/us-east-1/playback/once/v1/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/6830b2e4-3298-439d-beef-e04abef9f23c/content.m3u8?bc_token=NWZkMTE5NTlfZWQxNDAzNDRkNTAxNDRlMWEwODU3MTI1MzY2YjAyZWQ5YzlmZTkzY2UwMjM5NTM1MmI2NGRjZDNhNjE2ZDhlOA%3D%3D" contentlength="24.0574" payloadlength="50.1835" contenttype="application/x-mpegURL" /> <bc:thumbnailURL type="thumbnail" width="480" height="270" bandwidth="0">https://ssai.playback.us-east-1.prod.deploys.brightcove.com/v1/thumbnail/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/low-res/6830b2e4-3298-439d-beef-e04abef9f23c/thumbnail.vtt?bc_token=NWZkMTE5NTlfMmVmODIzZDJjMGZkMDBjZjY1YWIxNDQ4Y2YyZmUxYTExNzg5YmIxZDI5ZTdkMjgyODBmMDBmYTViMTE2Yzc0MQ%3D%3D</bc:thumbnailURL> </vmap:Extensions> <vmap:AdBreak breakType="linear" breakId="PreRoll_0_0" timeOffset="start"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="0"> <vmap:VASTData> <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"> <Ad id="1"> <InLine> <AdSystem>Test Ad Server</AdSystem> <AdTitle>Portals</AdTitle> <Description>Demo ad number 6</Description> <Error></Error> <Creatives> <Creative> <Linear> <CreativeExtensions> <CreativeExtension> <BrightcoveForeignKey>1</BrightcoveForeignKey> </CreativeExtension> </CreativeExtensions> <Duration>00:00:05.9392</Duration> <AdParameters> <xml></xml> </AdParameters> <VideoClicks/> </Linear> </Creative> </Creatives> <Extensions> <Extension> <xml>data</xml> </Extension> </Extensions> </InLine> </Ad> </VAST> </vmap:VASTData> </vmap:AdSource> </vmap:AdBreak> <vmap:AdBreak breakType="linear" breakId="MidRoll_5_0" timeOffset="00:00:04.8381"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1"> <vmap:VASTData> <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"> <Ad id="2"> <InLine> <AdSystem>Test Ad Server</AdSystem> <AdTitle>Marketing</AdTitle> <Description>Demo ad number 4</Description> <Error></Error> <Creatives> <Creative> <Linear skipoffset="00:00:05"> <CreativeExtensions> <CreativeExtension> <BrightcoveForeignKey>2</BrightcoveForeignKey> </CreativeExtension> </CreativeExtensions> <Duration>00:00:12.1788</Duration> <AdParameters> <xml></xml> </AdParameters> <VideoClicks/> </Linear> </Creative> </Creatives> <Extensions> <Extension> <xml>data</xml> </Extension> </Extensions> </InLine> </Ad> </VAST> </vmap:VASTData> </vmap:AdSource> </vmap:AdBreak> <vmap:AdBreak breakType="linear" breakId="PostRoll_24_0" timeOffset="end"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="2"> <vmap:VASTData> <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"> <Ad id="3"> <InLine> <AdSystem>Test Ad Server</AdSystem> <AdTitle>Brand</AdTitle> <Description>Demo ad number 1</Description> <Error></Error> <Creatives> <Creative> <Linear> <CreativeExtensions> <CreativeExtension> <BrightcoveForeignKey>3</BrightcoveForeignKey> </CreativeExtension> </CreativeExtensions> <Duration>00:00:08.0080</Duration> <AdParameters> <xml></xml> </AdParameters> <VideoClicks/> </Linear> </Creative> </Creatives> <Extensions> <Extension> <xml>data</xml> </Extension> </Extensions> </InLine> </Ad> </VAST> </vmap:VASTData> </vmap:AdSource> </vmap:AdBreak> </vmap:VMAP>
Pour plus de détails, consultez le Implémentation de SSAI avec des lecteurs et SDK non-Brightcove document.
Configurez votre lecteur
Exiger ad_config_id
À l'aide de l'API Policy, vous pouvez créer une clé de stratégie qui vous oblige à inclure le ad_config_id
Paramètre d'URL lors des requêtes à l'API Playback. Pour plus de détails sur la configuration de cette fonction, consultez le Référence de l'API de stratégie document.
Lorsque la clé de politique est définie pour nécessiter un ad_config_id
et que vous ne l'ajoutez pas à une demande d'API Playback, vous obtenez l'erreur suivante :
[
{
"error_subcode": "AD_CONFIG",
"error_code": "ACCESS_DENIED",
"message": "Missing required ad_config_id parameter"
}
]
Demandes de liste de lecture
Un objet vidéo de liste de lecture peut être récupéré à l'aide de l'identifiant de la liste de lecture ou de son identifiant de référence.
Les listes de lecture peuvent contenir jusqu'à 1 000 vidéos, mais par défaut, seules les 20 premières sont renvoyées. À l'aide des paramètres décrits ci-dessous, vous pouvez renvoyer jusqu'à 1 000 vidéos à la fois, ou utiliser une plus petite limit
et utiliser le offset
paramètre pour récupérer le groupe de vidéos que vous souhaitez, ou soumettre plusieurs demandes pour toutes les renvoyer.
Paramètres
Les paramètres d'URL suivants peuvent être utilisés pour les demandes de playlist
Paramètre | Description |
---|---|
limite | Le nombre de vidéos à renvoyer (par défaut = 20 ; maximum = 1000) |
décalage | nombre de vidéos à sauter (à partir du début de la playlist ; par défaut=0) |
Par exemple, ces paramètres ont été ajoutés à votre demande - ? limit=100&offset=200 - renverrait les vidéos 201 à 300 dans la playlist (en supposant qu'il y en ait autant).
Obtenir la liste de lecture par identifiant
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/playlists/{playlist_id}
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/playlists/38467382999
Exemple de réponse
{
"account_id": "107767373999",
"created_at": "2010-07-12T22:43:30.290Z",
"description": null,
"id": "111592530001",
"name": "Play One",
"reference_id": null,
"type": "EXPLICIT",
"updated_at": "2010-07-12T22:51:25.055Z",
"videos": [
{
"description": "Avatar_MakingAScene_Featurette",
"poster_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"tags": [
"copied"
],
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"account_id": "107767373999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
},
{
"avg_bitrate": 267000,
"width": 320,
"duration": 595560,
"size": 19894997,
"stream_name": "mp4:107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728852001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 267000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 19894997,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728852001"
},
{
"avg_bitrate": 549000,
"width": 480,
"duration": 595567,
"size": 40889436,
"stream_name": "mp4:107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728860001",
"container": "MP4",
"height": 268,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 549000,
"width": 480,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 40889436,
"height": 268,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728860001"
},
{
"avg_bitrate": 835000,
"width": 640,
"duration": 595567,
"size": 62142992,
"stream_name": "mp4:107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728865001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 835000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 62142992,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728865001"
},
{
"avg_bitrate": 1744000,
"width": 640,
"duration": 595567,
"size": 129836869,
"stream_name": "mp4:107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735357001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1744000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 129836869,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735357001"
},
{
"avg_bitrate": 1249000,
"width": 640,
"duration": 595567,
"size": 92994065,
"stream_name": "mp4:107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735369001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1249000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 92994065,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735369001"
}
],
"name": "Avatar_MakingAScene_Featurette",
"reference_id": "AvatarMakingShort",
"long_description": null,
"duration": 595560,
"published_at": "2010-07-12T22:37:34.760Z",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"thumbnail": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"link": {
"text": "Full Dvd at Amazon",
"url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"id": "38467382999",
"ad_keys": null,
"thumbnail_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"created_at": "2010-07-12T22:37:34.760Z"
}
],
}
Obtenir la liste de lecture par identifiant de référence
Point de terminaison
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/playlists/ref:{reference_id}
Exemple
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/playlists/ref:nature_2010-07-12
Exemple de réponse
{
"account_id": "107767373999",
"created_at": "2010-07-12T22:43:30.290Z",
"description": null,
"id": "111592530001",
"name": "Play One",
"reference_id": nature_2010-07-12,
"type": "EXPLICIT",
"updated_at": "2010-07-12T22:51:25.055Z",
"videos": [
{
"description": "Avatar_MakingAScene_Featurette",
"poster_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"tags": [
"copied"
],
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"account_id": "107767373999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
},
{
"avg_bitrate": 267000,
"width": 320,
"duration": 595560,
"size": 19894997,
"stream_name": "mp4:107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728852001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 267000,
"width": 320,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 19894997,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728852001"
},
{
"avg_bitrate": 549000,
"width": 480,
"duration": 595567,
"size": 40889436,
"stream_name": "mp4:107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728860001",
"container": "MP4",
"height": 268,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 549000,
"width": 480,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 40889436,
"height": 268,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728860001"
},
{
"avg_bitrate": 835000,
"width": 640,
"duration": 595567,
"size": 62142992,
"stream_name": "mp4:107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728865001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 835000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 62142992,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728865001"
},
{
"avg_bitrate": 1744000,
"width": 640,
"duration": 595567,
"size": 129836869,
"stream_name": "mp4:107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735357001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1744000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 129836869,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735357001"
},
{
"avg_bitrate": 1249000,
"width": 640,
"duration": 595567,
"size": 92994065,
"stream_name": "mp4:107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735369001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1249000,
"width": 640,
"src": "https://uds.ak.o.brightcove.com/107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 92994065,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735369001"
}
],
"name": "Avatar_MakingAScene_Featurette",
"reference_id": "AvatarMakingShort",
"long_description": null,
"duration": 595560,
"published_at": "2010-07-12T22:37:34.760Z",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"thumbnail": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"link": {
"text": "Full Dvd at Amazon",
"url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"id": "38467382999",
"ad_keys": null,
"thumbnail_sources": [
{
"src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"created_at": "2010-07-12T22:37:34.760Z"
}
],
}
Légendes
Les sous-titres codés fournissent des informations supplémentaires sur votre vidéo aux personnes qui souhaitent y accéder. Les sous-titres sont nécessaires pour que les sourds et malentendants accèdent à la partie audio de vos vidéos. Si vous êtes novice en matière de sous-titres, consultez la vue d'ensemble : Ajouter des sous-titres à une vidéo document.
WebVTT externe
Les sous-titres WebVTT externes sont des fichiers texte distincts de la vidéo. Vous pouvez associer des fichiers de sous-titres à une vidéo comme suit :
Exemple de réponse
Vous trouverez ci-dessous un exemple de réponse de l'API de lecture où un fichier de sous-titres WebVTT a été ajouté à une vidéo à l'aide du module Média. Notez que la piste de texte src
les propriétés pointent vers un fichier de sous-titres externe.
{
"text_tracks": [
{
"mime_type": null,
"account_id": "20318290001",
"default": true,
"sources": [
{
"src": "https://static.3playmedia.com/p/files/2240988/threeplay_transcripts/6418302.vtt?project_id=10127&format_id=51&refresh=1515241856"
}
],
"src": "https://static.3playmedia.com/p/files/2240988/threeplay_transcripts/6418302.vtt?project_id=10127&format_id=51&refresh=1515241856",
"asset_id": null,
"label": "English",
"id": "13d66def-d004-4e75-b160-4ac693eff7d7",
"kind": "captions",
"srclang": "en"
}
],
}
WebVTT dans le manifeste
Les sous-titres WebVTT dans le manifeste sont ingérés avec vos vidéos. Cela peut être fait lorsque vous ingérez votre vidéo pour la première fois ou après que votre vidéo a été ingérée. Vous pouvez créer des sous-titres dans le manifeste comme suit :
Exemple de réponse
Vous trouverez ci-dessous un exemple de réponse de l'API de lecture dans laquelle un fichier de sous-titres WebVTT a été ajouté à une vidéo à l'aide du Dynamic Ingérer l'API. Notez que la piste de texte src
les propriétés pointent vers des fichiers Brightcove internes.
{
"text_tracks": [
{
"mime_type": "text/webvtt",
"account_id": "1752604059001",
"default": false,
"sources": [
{
"src": "https://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173"
},
{
"src": "https://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173"
}
],
"src": "https://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173",
"asset_id": null,
"label": "EN",
"id": "92cb36a7-c836-4506-a87f-f649316c0cdf",
"kind": "captions",
"in_band_metadata_track_dispatch_type": "",
"srclang": "en"
}
],
}
Manifeste
Le manifeste des fichiers vidéo HLS ou DASH contient également les informations nécessaires pour inclure les sous-titres WebVTT.
HLS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-0",NAME="en (Main)",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/8b12c808-c5ea-47f3-abfa-c23b023db297/10s/rendition.m3u8?fastly_token=NWE3YjU3ZThfNzAwNTczOWM4MWQ4Mzk2NjFkYjVjYmFhYjQwNzY2MWUzM2MyNDM5ZDA5ZGExYTFkMzRmYzA0MDdhOTlmZWJhMw%3D%3D"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="EN",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/rendition.m3u8?fastly_token=NWE3YjU3ZThfNDYzOThkZGJiZTU1NTlhOTdkYzA5OTA3M2UzZGRlYTgzMmRkZmUxMGIxYTJkY2Y5ZDQ1ODFiNTEyMmNiZDVhMw%3D%3D"
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=519200,CODECS="mp4a.40.2,avc1.420015",RESOLUTION=480x270,AUDIO="audio-0",CLOSED-CAPTIONS=NONE,SUBTITLES="subtitles-0"
https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/5f7850d9-9a65-4eee-8810-86a1e18e05fb/10s/rendition.m3u8?fastly_token=NWE3YjU3ZThfY2Q5YmE2ODc2OWFiNTgyZjUxMjc1MzRhNmQxMzA0ZmJmY2RlMGU4ZjBiNDExZGRmNjc3YjQ0OGQ5N2RiOTVmMA%3D%3D
TIRET
<AdaptationSet mimeType="text/vtt" lang="en">
<Representation bandwidth="256" id="92cb36a7-c836-4506-a87f-f649316c0cdf">
<BaseURL>https://bcboltbde696aa-a.akamaihd.net/media/v1/dash/live/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf.vtt?akamai_token=exp=1518032494~acl=/media/v1/dash/live/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a*~hmac=3e2edc412c273f1255f2c18bbbcee7afc6a2edb74573f9295b0f05feda69f0e2</BaseURL>
</Representation>
</AdaptationSet>