Intégration de votre CMS à Video Cloud

Dans cette rubrique, vous découvrirez les opérations de base liées à l'intégration de Brightcove Video Cloud à un CMS. Il répertorie les fonctions typiques que les utilisateurs exécutent dans le CMS et les opérations d'API Brightcove qui peuvent être utilisées pour fournir cette fonctionnalité.

Fonctions utilisateur

Voici des fonctions liées à Video Cloud ce que vous pourriez souhaiter fournir aux utilisateurs de votre CMS :

  • Ajoutez de nouvelles vidéos à Video Cloud
  • Remplacer une Video Cloud vidéo par une nouvelle version
  • Mettre à jour les métadonnées des vidéos, telles que le titre, la description et les balises
  • Supprimer des vidéos
  • Créer des listes de lecture
  • Changer les vidéos dans une playlist
  • Supprimer des listes de lecture
  • Créer des lecteurs vidéo
  • Modifier les propriétés du lecteur vidéo, telles que les dimensions ou le style
  • Ajouter des fonctionnalités spéciales aux lecteurs vidéo via des plugins
  • Publier des vidéos uniques ou des listes de lecture
  • Fournissez des données d'analyse sur les charges vidéo, les vues, les taux de lecture, l'engagement, etc.

Vous ne voudrez peut-être pas exposer toutes ces fonctionnalités à vos utilisateurs finaux. Vous ne voudrez peut-être pas les laisser supprimer des vidéos, par exemple. L'un des avantages de l'intégration Video Cloud à votre CMS plutôt que de laisser les utilisateurs aller directement à Video Cloud Studio est que vous pouvez choisir exactement quelle fonctionnalité exposer aux utilisateurs via les API Brightcove.

Authentification

Pour toutes les demandes de l'API Brightcove, l'authentification est basée sur des jetons d'accès OAuth2. Il existe un processus en deux étapes pour obtenir des jetons d'accès :

  1. Créez des informations d'identification client avec des autorisations pour les opérations d'API dont vous avez besoin
  2. Utilisez les informations d'identification du client pour créer un jeton d'accès temporaire afin d'authentifier une demande d'API

Création des identifiants client

La création d'informations d'identification client est une opération unique qui peut être effectuée via Video Cloud Studio ou le OAuth API . Quoi que vous fassiez, un client_id et client_secret sont renvoyés, que vous devez enregistrer pour demander des jetons d'accès.

Création d'un jeton d'accès

Les jetons d'accès temporaires sont créés à l'aide du OAuth API . Les client_id et client_secret doit être encodé en BASE64 et passé en tant que Basic Chaîne d'autorisation.

Les access_token retourné est à son tour passé dans un en-tête d'autorisation avec l'appel d'API :

    Authorization: Bearer your_access_token
    
    

Les jetons d'accès sont valables 5 minutes. À moins que vous n'effectuiez une opération par lots qui effectuera des centaines d'appels d'API successifs, il est logique d'en demander simplement un nouveau pour chaque appel d'API plutôt que d'essayer de suivre le délai d'expiration.

Ajout de vidéos

Si vous souhaitez permettre aux utilisateurs d'ajouter des vidéos à Video Cloud partir de votre CMS, vous pouvez le faire en utilisant le Dynamic Ingest API . Nous vous recommandons de demander aux utilisateurs de télécharger des vidéos dans votre référentiel, qui peut être un compartiment S3 ou simplement un serveur public. Le système Dynamic Ingest peut extraire les vidéos et les ajouter au Video Cloud système grâce à un processus en deux étapes décrit ci-dessous.

Ajout d'un objet vidéo à Video Cloud

La première étape consiste à créer un objet vidéo dans le Video Cloud système en faisant une POST demande au CMS API:

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

Le corps de la requête inclura des propriétés vidéo de base dans un JSON objet - au minimum, la vidéo name , mais vous pouvez également inclure des métadonnées supplémentaires telles que description tags:

    {
    "name": "Woodpecker",
    "description": "A bird that hunts insects inside wood",
    "reference_id": "Bird_Woodpecker.mp4",
    "tags": ["bird", "air", "nature"]
    }
    
    

Ingérer la vidéo

Lorsque vous créez l'objet vidéo, l' CMS API renvoie un JSON objet contenant les propriétés vidéo. Vous allez extraire la vidéo id de la JSON , et l'utiliser pour faire un appel Dynamic Ingest API à la demande d'ingestion et de transcodage de la vidéo :

    https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/VIDEO_ID/ingest-requests
    
    

Encore une fois, vous enverrez JSON dans le corps de la requête en spécifiant l'emplacement du fichier vidéo :

    {
      "master":{
        "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
      },
      "profile":"multi-platform-extended-static",
      "capture-images": true
    }
    
    

Les profile voici le profil d'ingestion qui spécifie les rendus à créer dans le processus de transcodage. Dans la plupart des cas, l'un des profils standard suivants devrait être adéquat :

Profils de livraison dynamique

  • multi-platform-extended-static
  • multi-platform-standard-static

Profils d'ingestion hérités

  • videocloud-default-v1 (the default)
  • screencast-1280
  • smart-player-transition
  • single-bitrate-high
  • audio-only
  • single-bitrate-standard
  • high-resolution

Toutefois, vous pouvez créer des profils d'ingeste personnalisés supplémentaires, si nécessaire, à l'aide de Ingest Profiles API ou à l'aide de Video Cloud Studio.

Ajout d'images d'affiches et de vignettes

L' capture-images option dans le code ci-dessus indique de Video Cloud capturer des images d'affiches et de vignettes pour la vidéo au milieu du processus de transcodage. Alternativement, vous pouvez définir capture-images à false et ingérez des images à la place, soit en même temps que vous ingérez la vidéo, soit plus tard :

    {
    "master":{
    "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    }
    }
    
    

Voir Images et la Dynamic Ingest API pour plus de détails.

Ajout de pistes de texte pour les légendes ou les chapitres

Vous pouvez également utiliser Dynamic Ingest API pour ajouter des pistes de texte dans des fichiers WebVTT à des vidéos, que ce soit au moment de l'ingestion ou ultérieurement. Les pistes de texte sont utilisées pour ajouter légendes ou chapitres à une vidéo.

    {
    "master":{
    "url":"https://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    },
    "text_tracks": [
    {
    "url": "https://some.site.com/captions/for_video/Water-in-Motion.vtt",
    "srclang": "en",
    "kind": "captions",
    "label": "English",
    "default": true
    }
    ]
    }
    
    

Voir Ingestion de fichiers WebVTT pour plus de détails.

Gestion des vidéos

Le vous CMS API permet de récupérer des données vidéo pour un compte. (Comme indiqué ci-dessus, il est également utilisé pour créer des objets vidéo dans le cadre du processus d'ingestion vidéo.) La demande la plus basique est la suivante :

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

Par défaut, cette demande renvoie un JSON tableau de 20 objets vidéo contenant une multitude de métadonnées, y compris le nom, la description, les balises, les champs personnalisés, les dates de création et de dernière modification, les URL de l'affiche et de la miniature, et bien plus encore.

Vous pouvez affiner les résultats de la requête en ajoutant un ou plusieurs des paramètres suivants à la requête :

limit
cela détermine le nombre d'objets vidéo à renvoyer et peut être défini sur n'importe quel nombre jusqu'à 100 - la valeur par défaut est 20
offset
cela détermine le nombre d'éléments à ignorer et est donc utilisé conjointement avec limit le catalogue vidéo. La valeur par défaut est 0
sort
Cela détermine le champ de métadonnées vidéo par lequel trier le résultat - par défaut, les résultats sont triés par updated_at(décroissant, pour afficher d'abord les vidéos les plus récentes mises à jour)

Pour obtenir des informations détaillées sur ces paramètres, reportez-vous à la section CMS API Présentation - Paramètres.

Recherche de vidéos

Vous pouvez également rechercher des vidéos selon un large éventail de critères en utilisant le q paramètre. Vous pouvez effectuer une recherche par champs spécifiques tels que le nom, la description et les tags, ainsi que les dates et le statut des vidéos :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos?q=tags:sea,mammal
    
    

Pour plus de détails et toutes les options de recherche, voir Rechercher des vidéos.

Obtenir et mettre à jour une vidéo spécifique

Pour récupérer une vidéo spécifique par son identifiant ou son identifiant de référence :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/id
    or
    https://cms.api.brightcove.com/v1/accounts/account_id/videos/ref:reference_id
    
    

Une GET requête renvoie l'objet vidéo. Pour le mettre à jour, modifiez le JSON et renvoyez le à l'aide d'une PATCH requête à la même URL.

Listes de lecture

Les informations de liste de lecture sont également gérées CMS API à l'aide de la même manière que les informations vidéo. Notez que Video Cloud prend en charge huit types de playlists dans deux catégories :

Listes de lecture manuelles (ou EXPLICIT)
contiennent un ensemble de vidéos spécifié - jusqu'à 100 vidéos peuvent être incluses
Listes de lecture intelligentes
créées dynamiquement à l'exécution en fonction de critères de recherche - il existe sept variétés de listes de lecture intelligentes correspondant à la façon dont les vidéos sont classées dans la liste :
  • ACTIVATEDOLDESTTONEWEST
  • ACTIVATEDNEWESTTOOLDEST
  • ALPHABETICAL
  • PLAYSTOTAL
  • PLAYSTRAILINGWEEK
  • STARTDATEOLDESTTONEWEST
  • STARTDATENEWESTTO_OLDEST

La limite du nombre de vidéos peut être définie sur n'importe quel nombre jusqu'à 100.

Comme pour les vidéos, vous pouvez récupérer toutes les listes de lecture, en utilisant limit et offset pour parcourir les résultats si le compte a un grand nombre de playlists :

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

Le tableau d'objets de liste de lecture renvoyé inclura des métadonnées pour la liste de lecture, y compris le type correspondant à l'un des types décrits ci-dessus. Si le genre est EXPLICIT , il y aura aussi un video_ids tableau contenant les identifiants des vidéos incluses. Si le type est l'un des types de listes de lecture intelligentes, il y aura un search propriété contenant la chaîne de recherche qui récupère les vidéos, quelque chose comme ceci :

    q=tags:fish,birds
    
    

Vous pouvez également récupérer une liste de lecture unique à l'aide des éléments idsuivants :

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

Si vous avez besoin de récupérer l'intégralité des objets vidéo d'une playlist (pour afficher des informations sur les vidéos d'une page), il vous suffit d'ajouter /videos à cette URL :

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

Notez que pour une liste de lecture intelligente, la demande renverra les vidéos qui correspondent actuellement aux critères de recherche, mais cela peut changer.

Création de joueurs

Les joueurs Brightcove peuvent être créés via le Player Management API . L'API vous permet de créer des lecteurs, de mettre à jour leurs propriétés et d'obtenir le code d'intégration sous la forme d'une URL, d'un iframe balise, ou un bloc de HTML à intégrer dans la page.

Vous pouvez jusqu'à 200 joueurs par compte, mais il est généralement moins déroutant pour les utilisateurs d'avoir aussi peu de joueurs que nécessaire. Vous devriez avoir des lecteurs séparés pour lire des vidéos ou des listes de lecture uniques, mais sinon, vous n'avez besoin de lecteurs différents que lorsqu'ils seront stylisés différemment ou auront des fonctionnalités différentes ajoutées via des plugins.

Pour créer un joueur, il vous suffit de faire une POST demande au Player Management API:

    https://players.api.brightcove.com/v2/accounts/account_id/players
    
    

Dans le corps de la demande, incluez la configuration du lecteur - la seule chose requise est name:

    {
    "name": "Single video player for blog posts"
    }
    
    

La réponse vous donnera l'identifiant du joueur, ainsi que le code d'intégration sous plusieurs formes :

    {
    "embed_code": "<iframe src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "embed_in_page": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/in_page.embed",
    "id": "de055fa4-4f09-45af-8531-419c6794ad04",
    "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "preview_url": "https://preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html",
    "url": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html"
    }
    
    

Pour obtenir la configuration complète du lecteur, vous faites une demande au /players point de terminaison, mais ajoutez l'ID du joueur qui est renvoyé dans la réponse ci-dessus :

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04
    
    

Vous pouvez faire une PATCH demande au même point de terminaison pour mettre à jour la configuration du lecteur.

Vous remarquerez dans la réponse ci-dessus, le preview_embed_code et preview_url. Pour permettre le test de nouveaux lecteurs ou de mises à jour de lecteurs, les lecteurs nouvellement créés ou mis à jour sont définis en mode aperçu pour vous permettre de le voir avant d'appliquer les modifications aux lecteurs existants. Pour pousser les changements dans la production, vous devez publier le joueur avec cette demande :

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04/publish
    
    

Personnalisation des lecteurs

Les Lecteur Brightcove est construit avec des technologies Web standard : HTML, CSS et JavaScript. Vous pouvez personnaliser le lecteur en utilisant ces mêmes technologies. Cela peut être fait dans la page où le lecteur est publié, mais la meilleure pratique consiste à ajouter vos personnalisations au joueur lui-même via la configuration du joueur, en mettant à jour le lecteur via une PATCH requête au Player Management API comme expliqué dans la section précédente.

Vous pouvez également ajouter des fonctionnalités et des fonctionnalités supplémentaires au lecteur via des JavaScript plugins , et il existe une API Player étendue pour vous aider à intégrer votre code avec le lecteur. Brightcove propose un certain nombre de plugins prêts à l'emploi pour des choses telles que l'activation de la publicité, la personnalisation de l'écran de fin et l'ajout de superpositions.

Publication de vidéos

Dans la section Création de lecteurs ci-dessus, nous avons vu que lorsque vous obtenez l'objet de configuration du lecteur en utilisant le Player Management API , les données renvoyées incluent une balise iframe pour intégrer le lecteur dans une page HTML, ainsi qu'une URL pour le HTML complet si vous veulent incorporer le lecteur directement dans une page.

Pour l'intégration que vous choisissez, vous devrez ajouter un identifiant Video Cloud vidéo ou un identifiant de playlist au code intégré pour ajouter du contenu au lecteur. Le code d'intégration iframe ressemble à ceci :

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

À l'URL du lecteur, vous devez ajouter le paramètre videoId={}video_id , de sorte que le code d'intégration complet ressemblera à ceci :

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

S'il s'agit d'un lecteur de playlist, vous utilisez le paramètre playlistId={playlist_id} au lieu. La modification du code d'intégration dans la page est similaire.

À moins que les dimensions du lecteur ne soient fixées dans la configuration du lecteur, vous devrez également dimensionner le lecteur en ajoutant la largeur et la hauteur dans un style attribut:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen
    style=width:640px;height:360px;></iframe>
    
    

Obtenir des rapports d'analyse

Le vous Analytics API permet de générer des rapports d'analyse par de nombreux différents dimensions. Consultez les guides de dimensions pour plus d'informations.

Vous pouvez spécifier la plage de dates du rapport, les métriques à renvoyer et vous pouvez obtenir les données dans JSON , csv , ou xlxs format

Pour les périodes du dernier mois, vous pouvez également générer des Rapports de mission qui affichent des vues pour chaque centième partie de la vidéo.

Résumé des API

Voici un résumé des API utiles pour l'intégration avec Video Cloud.

OAuth API
Utilisé pour créer des informations d'identification client et des jetons d'accès pour accéder aux autres API.
Gestion des médias
Ingest Profiles API
Utilisé pour créer des profils d'ingest personnalisés spécifiant les formats associés à créer pour les vidéos ajoutées à Video Cloud
Dynamic Ingest API
Utilisé pour ajouter des vidéos et des ressources multimédias connexes à Video Cloud
CMS API
Utilisé pour créer des objets vidéo pour l'ingestion et pour gérer des vidéos et des playlists
Joueurs de Brightcove
Le joueur de Brightcove
Le lecteur inclut une JavaScript API pour interagir avec le lecteur lors de l'exécution
Player Management API
Utilisé pour créer et configurer des lecteurs, et pour obtenir le code d'intégration du lecteur
Analytics API
Utilisé pour obtenir des rapports d'analyse sur les performances vidéo