Introduction
Le partage des médias est une fonctionnalité de Video Cloud qui permet aux éditeurs de partager leurs vidéos avec d'autres éditeurs pour une gestion simplifiée des vidéos sur plusieurs comptes. Par exemple, les éditeurs peuvent conserver un compte Master du 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 de médias.
Médias partagés et facturation
Pour plus d'informations sur le fonctionnement de la facturation pour les médias partagés, consultez Partage de médias à l'aide du module multimédia.
Terminologie
Dans le partage de médias, il existe une relation entre un compte Master (qui partage des vidéos) et un ou plusieurs comptes affiliés (qui reçoivent des vidéos partagées) impliqué :
Compte | Description |
---|---|
Maître | Compte qui a créé la vidéo d'origine.
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. |
Associé | Le compte qui reçoit la vidéo.
L'Affilié peut accepter le contenu qui lui est partagé à partir d'un Master. |
Canal | Un pipeline par lequel le contenu est partagé à partir d'un maître à un nombre quelconque d'affiliés. Lorsque le partage multimédia est activé, un default canal est créé dans votre compte. |
Relation | Décrit l'interaction entre un maître et un affilié.
Une relation est constituée d'un Master pour partager du contenu, d'un canal par lequel le contenu est partagé, d'un contrat d'acceptation du contenu et d'un Affilié pour recevoir du contenu. |
Contrat | 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 requêtes.
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 d'informations sur la façon d'obtenir des informations d'identification client et de les utiliser pour récupérer des jetons d'accès, consultez la présentation OAuth de Brightcove.
Notez que toutes les opérations autour des relations nécessitaient de nouvelles autorisations :
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
Dans la page Admin de l'authentification API Studio, deux autorisations sont affichées :
- Partage en lecture (équivalent à
video-cloud/sharing-relationships/read
) - Partage de lecture/écriture (équivalent à
video-cloud/sharing-relationships/all
)
Restrictions au partage
Par défaut, toutes les vidéos peuvent être partagées. Vous pouvez cependant empêcher le partage si :
- Le compte d'affiliation n'a pas un champ personnalisé pour lequel une valeur est définie sur la vidéo dans le compte maître
- Le filtrage géo-filtrage est activé sur le compte principal, mais le compte d'affiliation ne
Correspondance de champs personnalisés
Vous pouvez appliquer la correspondance de champs personnalisés 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 d'affiliation. Les vidéos seront toujours partagées avec succès si la vidéo n'a pas de valeurs pour les champs personnalisés qui ne correspondent pas
Par défaut, la correspondance de champs personnalisés n'est pas appliqué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 du filtrage géographique
Si la correspondance de filtrage géo-filtrage est activée pour une chaîne, les vidéos ne peuvent pas être partagées si le filtrage géo-filtrage est activé sur le compte principal et si le compte affilié ne le fait pas.
Par défaut, la correspondance géo-filtrage est appliqué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"
Reportez-vous à la section Mettre à jour le canal ci-dessous pour voir comment mettre à jour un canal pour appliquer la correspondance de champs personnalisés et/ou de filtrage géo-filtrage.
Qu'est-ce qui est partagé ?
Cette section explique ce qui est partagé et comment les modifications ultérieures de 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 Master vers le compte Affilié lorsque la vidéo est partagée. Les exceptions notables sont les suivantes :
id
- la vidéo aura son propre identifiant unique dans le compte Affilié- champs de date tels
created_at
queupdated_at
Tous les éléments vidéo (rendus, images, text_tracks, etc.) sont utilisés 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 Master sont automatiquement héritées par les comptes d'affiliation, et d'autres ne le sont pas.
Ressources vidéo
À l'exception des images, les modifications principales apportées aux ressources vidéo sont toujours héritées par les affiliés. Les affiliés ne peuvent pas modifier les ressources telles que les formats associés, les manifestes, les pistes de texte ou le maître 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é les images. Une fois qu'un Affilié change une image, cette image ne sera plus héritée du maître.
Métadonnées de la vidéo
Toutes les métadonnées 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 ne sont pas héritées par l'Affilié.
Vidéos de remaniement
Notez toutefois que si le maître partage la vidéo (cela ne peut être fait que via l'API CMS, pas dans Studio), tous les actifs et métadonnées (à l'exception des champs de données/temps) seront partagés avec les affiliés, écrasant les modifications apportées par les Affiliés.
Vue d'ensemble des étapes de partage de médias
Configurer une relation
Voici un résumé des opérations de configuration d'une relation (cliquez sur le nom de l'opération pour plus de détails) :
Opérations principales | ||
---|---|---|
Opération | Méthode/Point de terminaison | Description |
Liste des canaux | GET /accounts/ master_account_id/channels |
Obtenir une liste des canaux pour le compte |
Obtenir les détails du canal | GET /accounts/ master_account_id/channels/ channel_name [2-1] |
Obtenir les détails d'une chaîne |
Mettre à jour le | POST /accounts/ master_account_id/channels/ channel_name |
Mettez à jour les paramètres |
Liste des filiales | GET /accounts/ master_account_id/channels/default/members |
Obtenir les affiliés pour une chaîne |
Ajouter des affiliés | PUT /accounts/ master_account_id/channels/default/members |
Ajouter des affiliés à un canal |
Supprimer l'affilié | DELETE /accounts/ master_account_id/channels/default/members/ affiliate_account_id |
Supprime un affilié d'un canal |
Opérations affiliées | ||
Opération | Méthode/Point de terminaison | Description |
Liste des contrats disponibles | GET /accounts/ affiliate_account_id/contracts |
Récupère tous les contrats disponibles pour 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 vidéo sont effectuées par le compte maître. Le compte Affilié peut accepter le partage (s'il auto_accept
est défini sur false
) et peut mettre à jour les métadonnées vidéo partagées et les images à l'aide de l'opération de mise à jour vidéo standard.
Voici les opérations de partage qui peuvent être effectuées une fois qu'une relation est configurée (cliquez sur le nom d'une opération pour plus de détails) :
Opérations principales | ||
---|---|---|
Opération | Méthode/Point de terminaison | Description |
Liste des partages existants | GET /accounts/ master_account_id/videos/ video_id/shares |
Obtenir une liste des partages existants pour une vidéo - ceci est important en raison des conséquences du re-partage d'une vidéo quand elle a déjà été partagée |
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 la partagera - ce n'est probablement pas ce que vous voulez faire |
Départager une vidéo pour un affilié | DELETE /accounts/ master_account_id/videos/ video_id/shares |
Un-partage une vidéo pour un affilié spécifique - notez que le non-partage et le repartage entraînent un nouvel identifiant vidéo dans le compte Affilié |
Opérations affiliées | ||
Opération | Méthode/Point de terminaison | Description |
Accepter une vidéo partagée | PATCH /accounts/ affiliate_account_id/videos/ video_id |
Accepter une vidéo partagée (si auto_accept elle est désactivée) |
Demandes d'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 (s) canal (s)
Méthode | GET |
---|---|
Point de terminaison | /accounts/ master_account_id/channels |
Corps de la requête | |
Exemple de réponse |
|
Obtenir les détails du canal
Méthode | GET |
---|---|
Point de terminaison | https://cms.api.brightcove.com/v1/accounts/ master_account_id/channels/ channel_name [5-1] |
Corps de la requête | |
Exemple de réponse |
|
Remarques
- [ 5-1] Actuellement, il n'y a qu'un seul canal nommé
default
Mettre à jour le
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/ channel_name [ 6-1] |
Corps de la requête |
|
Exemple de réponse |
|
Remarques
- [ 6-1] Actuellement, il n'y a qu'un seul canal nommé
default
Liste des affiliés pour la chaîne
Méthode | GET |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/default/members |
Corps de la requête | |
Exemple de réponse |
|
La valeur du approved
champ indique si l'Affilié a approuvé le contrat ou non.
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 requête |
|
Exemple de réponse |
|
Supprimer l'affiliation du canal
Méthode | DELETE |
---|---|
Point de terminaison | /accounts/ master_account_id/channels/default/members/ affiliate_account_id |
Corps de la requête | |
Exemple de réponse | 204 NO CONTENT ( corps de réponse vide) |
Opérations affiliées
Liste des contrats disponibles
Méthode | GET |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/contracts |
Corps de la requête | |
Exemple de réponse |
|
Les deux domaines essentiels de la réponse sont les suivants :
approved
- lorsqu'il est défini sur true, le contrat est accepté par l'Affiliéauto-accept
- lorsqu'elles sont réglées sur true, les vidéos partagées via le présent contrat seront automatiquement acceptées par l'Affilié ; sinon, elles doivent être approuvées une par un
Nous verrons comment mettre à jour le contrat ci-dessous.
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 requête | |
Exemple de réponse |
|
Approuver le contrat
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/contracts/ master_account_id |
Corps de la requête |
|
Exemple de réponse |
|
Si vous incluez uniquement "approved":true
, chaque vidéo devra être approuvée individuellement.
Demandes d'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 maître. Le compte Affilié peut accepter des actions s' auto_accept
il est désactivé.
Opérations principales
Liste des 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 requête | |
Exemple de réponse |
|
Partage (ou repartage) d'une vidéo
La demande décrite ci-dessous partagera une vidéo sur un ou plusieurs comptes affiliés.
Méthode | POST |
---|---|
Point de terminaison | /accounts/ master_account_id/videos/ video_id/shares |
Corps de la requête |
|
Exemple de réponse |
Réaction réussie
Réponse à l'échec
|
Le partage créera une nouvelle vidéo dans le compte de l'Affilié. Le state
du partage vidéo sera PROCESSING
jusqu'à ce que le partage soit terminé et que la vidéo soit créée dans le compte Affilié. L'Affilié peut encore avoir besoin d'accepter la vidéo (si elle auto_accept
est définie false
sur le contrat par l'Affilié - voir la section précédente sur la configuration du partage).
Départager 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 requête | |
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 pendant quelques minutes |
Opérations affiliées
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 sa valeur state
sur ACTIVE
. (La définition state
de à INACTIVE
rejette le partage.)
Méthode | PATCH |
---|---|
Point de terminaison | /accounts/ affiliate_account_id/videos/ affiliate_video_id |
Corps de la requête |
|
Exemple de réponse |
|
Définissez le state
à INACTIVE
pour rejeter le partage.
Notez qu'aucune notification spéciale n'indique 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 Partages en attente du 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 requête API, mais plutôt dans un error_message
champ de 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 limites 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 à partir d'un compte qui n'est pas compatible DRM vers un compte qui est compatible DRM est pris en charge, mais les vidéos partagées ne seront pas empaquetées pour DRM.
-
Si le canal défini par le compte maître est défini
enforce_custom_fields
surtrue
, puis partage une vidéo comportant un champ personnalisé avec une valeur non autorisée par le compte d'affiliation, cette tentative de partage échoue. L'état du partage sera mis à jour avec un message d'erreur quelque chose comme ceci :[{"error_code": "ILLEGAL_CUSTOM_FIELD_VALUE", "error_message": "Illegal value for custom fields: [topic]"}]
Si le canal défini par le compte principal est défini
enforce_custom_fields
surfalse
, puis partage une vidéo qui a un champ personnalisé avec une valeur non autorisée par le compte affilié, alors la tentative de partage fonctionnera, mais le avec la mauvaise valeur ne sera pas inclus sur la copie d'affiliation de la vidéo. -
Lors de la lecture d'une vidéo partagée avec SSAI, le remplacement de macro SSAI utilise les métadonnées de la vidéo parent au lieu de la vidéo enfant. SSAI ignore également la recherche d'annonces si la vidéo parent est marquée comme
Advertising='Free'
, même si la vidéo enfant est étiquetée commeAd Supported
.