Introduction
Le partage multimédia est une fonctionnalité de Video Cloud qui permet aux éditeurs de partager des vidéos avec d'autres éditeurs, ce qui vous permet de gérer plus facilement les vidéos sur plusieurs comptes. Par exemple, les éditeurs peuvent conserver un compte principal de contenu vidéo, puis partager des vidéos avec d'autres divisions ou filiales de l'organisation.
Notez que toutes les opérations de partage de médias peuvent également être effectuées dans Studio. Voir Gestion des paramètres de partage multimédia.
Médias partagés et facturation
Pour plus d'informations sur le fonctionnement de la facturation pour les médias partagés, veuillez consulter Partage multimédia à l'aide du module multimédia.
Terminologie
Dans le partage de médias, il existe une relation entre un compte principal (qui partage des vidéos) et un ou plusieurs comptes affiliés (qui reçoivent des vidéos partagées) impliqués :
Compte | Description |
---|---|
Maître | Le compte qui a créé la vidéo originale.
Le maître est propriétaire du contenu et est responsable de la configuration, de la gestion et de la fourniture du contenu aux affiliés. |
Affilier | Le compte qui reçoit la vidéo.
L'Affilié peut accepter le contenu qui lui est partagé par un Maître. |
Chaîne | Un pipeline à travers lequel le contenu est partagé d'un maître à un nombre quelconque d'affiliés. Lorsque le partage multimédia est activé, un default canal sera créé dans votre compte. |
Relation amoureuse | Décrit l'interaction entre un Maître et un Affilié.
Une relation est composée d'un maître pour partager du contenu, d'un canal par lequel le contenu est partagé, d'un contrat pour accepter le contenu et d'un affilié pour recevoir du contenu. |
Contracter | Décrit la relation de partage entre un Maître et un Affilié.
Un contrat est créé par le maître, puis doit être accepté pour que le partage soit activé. L'Affilié peut également spécifier si les vidéos partagées sont acceptées automatiquement ou doivent être approuvées une par une. |
URL de base
Comme pour toutes les CMS API requêtes, l'URL de base pour les opérations décrites ci-dessous est :
https://cms.api.brightcove.com/v1
Tous les points de terminaison décrits ci-dessous seront ajoutés à l'URL de base lorsque vous effectuez des demandes.
Authentification
L'authentification des demandes nécessite un en-tête d'autorisation :
Authorization: Bearer {access_token}
Le access_token
est un jeton d'accès OAuth2 temporaire qui doit être obtenu à partir du service Brightcove OAuth. Pour plus de détails sur la façon d'obtenir les informations d'identification client et de les utiliser pour récupérer des jetons d'accès, consultez le Présentation de Brightcove OAuth.
Notez que toutes les opérations autour des relations nouvelles autorisations requises :
video-cloud/video/all
video-cloud/sharing-relationships/read
video-cloud/sharing-relationships/create
video-cloud/sharing-relationships/update
video-cloud/sharing-relationships/delete
Alternativement, vous pouvez simplement utiliser:
video-cloud/sharing-relationships/all
Sur la page d'administration de l'authentification de l'API Studio, deux autorisations sont affichées :
- Partage de lecture (équivalent à
video-cloud/sharing-relationships/read
) - Partage lecture/écriture (équivalent à
video-cloud/sharing-relationships/all
)
Restrictions de partage
Par défaut, toutes les vidéos peuvent être partagées. Vous pouvez toutefois empêcher le partage si :
- Le compte affilié n'a pas de champ personnalisé pour lequel une valeur est définie sur la vidéo dans le compte principal
- Le compte principal a le géo-filtrage activé, mais le compte affilié ne le fait pas.
Correspondance de champs personnalisés
Vous pouvez appliquer une correspondance de champ personnalisé pour une chaîne, ce qui signifie que les partages vidéo échoueront si la vidéo a des valeurs pour les champs personnalisés qui ne sont pas présents dans le compte affilié. Les vidéos seront toujours partagées avec succès si la vidéo n'a pas de valeurs pour les champs personnalisés non correspondants
Par défaut, la correspondance des champs personnalisés est ne pas forcée.
Si un partage vidéo échoue en raison de champs personnalisés non correspondants, vous verrez une erreur comme celle-ci dans la réponse :
{
"video_id": "5691312273001",
"affiliate_id": "47509719001",
"affiliate_video_id": null,
"status": "PROCESSING",
"error_message": [{"error_code":"MISSING_CUSTOM_FIELDS","error_message":"Affiliate account is missing custom fields: [subject]"}],
"shared_at": "2018-01-03T16:29:19.080Z",
"updated_at": "2018-01-03T16:29:19.080Z"
}
Correspondance par géofiltrage
Si la correspondance par géofiltrage est activée pour une chaîne, les vidéos ne peuvent pas être partagées si le compte principal a activé le géofiltrage et pas le compte affilié.
Par défaut, le géo-filtrage des correspondances est forcée.
L'erreur ressemblera à ceci :
{
"video_id": "5691312273001",
"affiliate_id": "47509719001",
"affiliate_video_id": null,
"status": "PROCESSING",
"error_message": [{"error_code":"CONFLICT","error_message":"Affiliate account is not configured for geo restriction."}],
"shared_at": "2018-01-03T16:29:19.080Z",
"updated_at": "2018-01-03T16:29:19.080Z"
Voir Mettre à jour le canal ci-dessous pour voir comment vous mettez à jour un canal pour appliquer une correspondance de champ personnalisé et/ou de filtrage géographique.
Qu'est-ce qui est partagé ?
Cette section explique ce qui est partagé et comment les modifications ultérieures apportées à la vidéo sont gérées.
Lorsque la vidéo est partagée
La plupart des champs de métadonnées vidéo sont copiés du compte maître vers le compte affilié lorsque la vidéo est partagée. Les exceptions notables sont :
id
- la vidéo aura son propre identifiant unique dans le compte affilié- champs de date tels que
created_at
etupdated_at
Toutes les ressources vidéo (rendus, images, text_tracks, etc.) sont utilisées par les comptes affiliés pour la lecture.
Après le partage de la vidéo
Une fois la vidéo partagée, certaines modifications apportées à la vidéo dans le compte principal sont automatiquement héritées par les comptes affiliés, et d'autres non.
Éléments vidéo
Sauf pour les images , les modifications principales apportées aux éléments vidéo sont toujours hérités par les affiliés. Affiliés ne peut pas changer les actifs tels que les rendus, les manifestes, les pistes de texte ou le master numérique.
Les modifications apportées aux images par le maître sont héritées par l'affilié à moins que l'Affilié n'ait remplacé la ou les images. Une fois qu'un affilié modifie une image, cette image ne sera plus héritée du maître.
Métadonnées vidéo
Toutes les métadonnées de la vidéo (telles que le nom, la description et l'identifiant de référence) peuvent être modifiées par l'affilié, et les modifications apportées à la vidéo principale sont ne pas hérité par l'Affilié.
Repartage de vidéos
Notez cependant que si le Maître re-partages la vidéo (cela ne peut être fait que via l'API CMS, pas dans Studio), tous les éléments et métadonnées (à l'exception des champs de données/d'heure) seront partagés avec les affiliés, écraser toutes les modifications apportées par les affiliés.
Présentation des étapes de partage multimédia
Mise en place d'une relation
Vous trouverez ci-dessous un récapitulatif des opérations de mise en relation (cliquez sur le nom de l'opération pour plus de détails) :
Opérations principales | ||
---|---|---|
Opération | Méthode/Point final | Description |
Liste des chaînes | GET /accounts/ master_account_id/channels |
Obtenir une liste de chaînes pour le compte |
Obtenir les détails de la chaîne | GET /accounts/ master_account_id/channels/ channel_name [2-1] |
Obtenir les détails d'une chaîne |
Mettre à jour le canal | POST /accounts/ master_account_id/channels/ channel_name |
Mettre à jour les paramètres des chaînes |
Lister les chaînes affiliées | GET /accounts/ master_account_id/channels/default/members |
Obtenir les affiliés d'une chaîne |
Ajouter des affiliés | PUT /accounts/ master_account_id/channels/default/members |
Ajouter des affiliés à une chaîne |
Supprimer l'affilié | DELETE /accounts/ master_account_id/channels/default/members/ affiliate_account_id |
Supprime un affilié d'une chaîne |
Opérations d'affiliation | ||
Opération | Méthode/Point final | Description |
Liste des contrats disponibles | GET /accounts/ affiliate_account_id/contracts |
Obtient tous les contrats disponibles sur le compte |
Obtenir un contrat pour un compte spécifique | GET /accounts/ affiliate_account_id/contracts/ master_account_id |
Obtient un contrat, le cas échéant, à partir d'un compte spécifique |
Approuver un contrat | PATCH /accounts/ affiliate_account_id/contracts/ master_account_id |
Accepter et configurer les conditions d'acceptation du contrat |
Remarques
- [ 2-1] Actuellement, il n'y a qu'un seul canal nommé
default
Partage de vidéos
Les opérations de partage de vidéos sont effectuées par le compte Maître. Le compte Affilié peut accepter le partage (si auto_accept
est réglé sur false
) et peut mettre à jour les métadonnées et les images vidéo partagées à l'aide de la norme Mettre à jour la vidéo opération.
Voici les opérations de partage qui peuvent être effectuées une fois qu'une relation est mise en place (cliquez sur un nom d'opération pour plus de détails) :
Opérations principales | ||
---|---|---|
Opération | Méthode/Point final | Description |
Lister les partages existants | GET /accounts/ master_account_id/videos/ video_id/shares |
Obtenez une liste des partages existants pour une vidéo - c'est important en raison des conséquences de re-partage d'une vidéo quand il a déjà été partagé |
Partager une vidéo | POST /accounts/ master_account_id/videos/ video_id/shares |
Partager une vidéo à un ou plusieurs affiliés - notez que si la vidéo a déjà été partagée, cette opération sera re-partagez-le - c'est probablement ne pas que veux-tu faire |
Annuler le partage d'une vidéo pour un affilié | DELETE /accounts/ master_account_id/videos/ video_id/shares |
Annule le partage d'une vidéo pour un affilié spécifique - notez que l'annulation du partage et le re-partage entraîneront la vidéo partagée avec un nouvel identifiant de vidéo dans le compte affilié |
Opérations d'affiliation | ||
Opération | Méthode/Point final | Description |
Accepter une vidéo partagée | PATCH /accounts/ affiliate_account_id/videos/ video_id |
Accepter une vidéo partagée (si auto_accept est éteint) |
Remarque: pour identifier les vidéos partagées en attente d'acceptation, recherchez les vidéos qui ont state:pending
:
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos?q=state:pending
ou
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos?query=state:PENDING
Requêtes API CMS - configuration
Cette section répertorie les CMS API opérations impliquées dans la configuration du partage de médias.
Opérations principales
Liste des chaînes
Méthode | GET |
---|---|
Point de terminaison | /accounts/ master_account_id/channels |
Corps de la demande | |
Exemple de réponse |
|
Obtenir les détails de la chaîne
Méthode | GET |
---|---|
Point de terminaison | https://cms.api.brightcove.com/v1/accounts/ master_account_id/channels/ channel_name [5-1] |
Corps de la demande | |
Exemple de réponse |
|
Remarques
- [ 5-1] Actuellement, il n'y a qu'un seul canal nommé
default
Mettre à jour le canal
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/ channel_name [ 6-1] |
Corps de la demande |
|
Exemple de réponse |
|
Remarques
- [ 6-1] Actuellement, il n'y a qu'un seul canal nommé
default
Répertorier les affiliés de la chaîne
Méthode | GET |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/default/members |
Corps de la demande | |
Exemple de réponse |
|
La valeur de la approved
indique si l'Affilié a approuvé ou non le contrat.
Ajouter un affilié à la chaîne
Méthode | PUT |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/default/members/ affiliate_account_id |
Corps de la demande |
|
Exemple de réponse |
|
Supprimer l'affilié de la chaîne
Méthode | DELETE |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/default/members/ affiliate_account_id |
Corps de la demande | |
Exemple de réponse | 204 NO CONTENT (corps de réponse vide) |
Opérations d'affiliation
Liste des contrats disponibles
Méthode | GET |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/contracts |
Corps de la demande | |
Exemple de réponse |
|
Les deux champs essentiels de la réponse sont :
approved
- lorsqu'il est défini sur true, le contrat est accepté par l'Affiliéauto-accept
- lorsqu'elles sont définies sur true, les vidéos partagées via ce contrat seront automatiquement acceptées par l'Affilié ; sinon, ils doivent être approuvés un par un
Nous verrons ci-dessous comment mettre à jour le contrat.
Obtenir un contrat pour un compte spécifique
Méthode | GET |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/contracts/ master_account_id |
Corps de la demande | |
Exemple de réponse |
|
Approuver le contrat
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/contracts/ master_account_id |
Corps de la demande |
|
Exemple de réponse |
|
Si vous n'incluez que "approved":true
, chaque vidéo devra être approuvée individuellement.
Requêtes API CMS - partage
Cette section détaille les CMS API demandes utilisées pour partager des vidéos. Les opérations de partage de médias sont effectuées par le compte principal. Le compte Affilié peut accepter des actions si auto_accept
est éteint.
Opérations principales
Lister les partages existants
Pour savoir si une vidéo a déjà été partagée sur d'autres comptes, vous pouvez utiliser la demande ci-dessous.
Méthode | GET |
---|---|
Point de terminaison | /accounts/ master_account_id/videos/ video_id/shares |
Corps de la demande | |
Exemple de réponse |
|
Partager (ou repartager) une vidéo
La demande décrite ci-dessous partagera une vidéo avec un ou plusieurs comptes affiliés.
Méthode | POST |
---|---|
Point de terminaison | /accounts/ master_account_id/videos/ video_id/shares |
Corps de la demande |
|
Exemple de réponse |
Réponse réussie
Réponse à l'échec
|
Le partage créera une nouvelle vidéo dans le compte de l'affilié. Les state
du partage vidéo sera PROCESSING
jusqu'à ce que le partage soit terminé et la vidéo est créée dans le compte Affilié. L'Affilié devra peut-être encore accepter la vidéo (si auto_accept
est réglé sur false
sur le contrat par l'Affilié - voir la section précédente sur la mise en place du partage).
Annuler le partage d'une vidéo pour un affilié
Méthode | DELETE |
---|---|
Point de terminaison | /accounts/ master_account_id/videos/ video_id/shares/ affiliate_account_id |
Corps de la demande | |
Exemple de réponse | 202 ACCEPTED (corps de réponse vide) - la réponse indique que la demande a été acceptée pour traitement, mais l'opération peut ne pas être terminée avant quelques minutes |
Opérations d'affiliation
Accepter la vidéo partagée
Pour accepter une vidéo partagée, l'affilié met à jour la vidéo partagée, en définissant son state
à ACTIVE
. (Réglage du state
à INACTIVE
rejette le partage.)
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/videos/ affiliate_video_id |
Corps de la demande |
|
Exemple de réponse |
|
Met le state
à INACTIVE
de rejeter le partage.
Notez qu'il n'y a pas de notification spéciale indiquant qu'une vidéo a été partagée sur votre compte. Cependant, si vous rechercher des vidéos pour state:pending
, qui trouvera toutes les actions non acceptées. Vous pouvez également utiliser la liste des partages en attente dans le module Studio Media pour afficher et accepter/rejeter les partages en attente :
Erreurs
Les erreurs de partage de médias ne sont pas renvoyées en tant que réponse d'erreur distincte à la demande d'API, mais plutôt dans un error_message
champ dans la réponse normale :
[
{
"video_id" : "1239817239128",
"affiliate_id" : "32871239",
"affiliate_video_id" : "30308254055202",
"status" : "COMPLETE",
"shared_at" : "2017-12-11T17:57:45.530Z",
"updated_at" : "2017-12-11T18:03:32.789Z",
"error_message" : "[{"error_code":"MISSING_CUSTOM_FIELDS","error_message":"Affiliate account is missing custom fields: [whisky]"}]"
}
]
Pour plus de détails, reportez-vous à la référence des CMS API erreurs .
Contraintes
Actuellement, le partage de médias présente les limitations suivantes :
- DRM : le partage de médias via le n' CMS API est actuellement pas pris en charge pour les comptes DRM. Le partage de vidéos d'un compte non compatible DRM vers un compte compatible DRM est pris en charge, mais les vidéos partagées seront ne pas être emballé pour DRM.
-
Si le canal défini par le compte maître a défini
enforce_custom_fields
àtrue
, puis partage une vidéo qui a un champ personnalisé avec une valeur qui n'est pas autorisée par le compte affilié, cette tentative de partage échouera. L'état du partage sera mis à jour avec un message d'erreur comme celui-ci :[{"error_code": "ILLEGAL_CUSTOM_FIELD_VALUE", "error_message": "Illegal value for custom fields: [topic]"}]
Si le canal défini par le compte maître a défini
enforce_custom_fields
àfalse
, puis partage une vidéo qui a un champ personnalisé avec une valeur qui n'est pas autorisée par le compte affilié, alors la tentative de partage fonctionnera, mais le champ avec la mauvaise valeur ne sera pas inclus sur la copie affiliée de la vidéo. -
Lors de la lecture d'une vidéo partagée avec SSAI, le remplacement de macro SSAI utilisera les métadonnées de la vidéo parente au lieu de la vidéo enfant. SSAI ignorera également la recherche d'annonces si la vidéo parente est marquée comme
Advertising='Free'
, même si la vidéo enfant est étiquetée commeAd Supported
.