assistance Contacter le support | Étatétat du système du système
Contenu de la page

    Partage de médias

    Dans cette rubrique, vous apprendrez comment partager des vidéos d'un compte Video Cloud vers un autre à l'aide de l'API CMS.

    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é :

    Terminologie du partage des médias
    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 que updated_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 d'installation
    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 de partage
    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)

    Liste des canaux
    Méthode GET
    Point de terminaison /accounts/ master_account_id/channels
    Corps de la requête  
    Exemple de réponse
          [
            {
              "account_id": "57838016001",
              "name": "default",
              "enforce_custom_fields": false,
              "enforce_geo": false,
              "account_name": "BrightcoveLearning",
              "created_at": "2017-08-23T17:11:18.474Z",
              "updated_at": "2017-08-23T17:11:18.474Z"
            }
          ]

    Obtenir les détails du canal

    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
          {
            "account_id": "57838016001",
            "name": "default",
            "enforce_custom_fields": false,
            "enforce_geo": false,
            "account_name": "BrightcoveLearning",
            "created_at": "2017-08-23T17:11:18.474Z",
            "updated_at": "2017-08-23T17:11:18.474Z"
          }
    Remarques
    • [ 5-1] Actuellement, il n'y a qu'un seul canal nommé default

    Mettre à jour le

    Créer une chaîne
    Méthode PATCH
    Point de terminaison /accounts/ master_account_id/channels/ channel_name [ 6-1]
    Corps de la requête
          {
            "enforce_custom_fields" : true,
            "enforce_geo" : true
          }
    Exemple de réponse
          {
            "account_id": "57838016001",
            "name": "default",
            "enforce_custom_fields": true,
            "enforce_geo": true,
            "account_name": "BrightcoveLearning",
            "created_at": "2017-08-23T17:11:18.474Z",
            "updated_at": "2017-12-30T15:06:27.015Z"
          }
    Remarques
    • [ 6-1] Actuellement, il n'y a qu'un seul canal nommé default

    Liste des affiliés pour la chaîne

    Liste des Affiliés de Canal
    Méthode GET
    Point de terminaison /accounts/ master_account_id/channels/default/members
    Corps de la requête  
    Exemple de réponse
          [
            {
              "account_id": "20318290001",
              "approved": false,
              "account_name": "Brightcove Training"
            },
            {
              "account_id": "1485884786001",
              "approved": true,
              "account_name": "Brightcove Learning Doc Samples"
            },
            {
              "account_id": "1752604059001",
              "approved": true,
              "account_name": "BC Training Videos"
            }
          ]

    La valeur du approved champ indique si l'Affilié a approuvé le contrat ou non.

    Ajouter un affilié à la chaîne

    Ajouter affilié
    Méthode PUT
    Point de terminaison /accounts/ master_account_id/channels/default/members/ affiliate_account_id
    Corps de la requête
          {
            "account_id":"affiliate_account_id"
          }
    Exemple de réponse
          {
            "account_id": "1485884786001"
          }

    Supprimer l'affiliation du canal

    Supprimer Affilié
    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

    Liste des contrats
    Méthode GET
    Point de terminaison /accounts/ affiliate_account_id/contracts
    Corps de la requête  
    Exemple de réponse
          [
            {
              "account_id": "1485884786001",
              "channel": {
                "account_id": "57838016001",
                "name": "default"
              },
              "approved": false,
              "auto_accept": false,
              "approved_at": null,
              "updated_at": "2017-08-23T17:45:41.556Z",
              "created_at": "2017-08-23T17:45:41.556Z"
            }
          ]

    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

    Obtenir un contrat
    Méthode GET
    Point de terminaison /accounts/ affiliate_account_id/contracts/ master_account_id
    Corps de la requête  
    Exemple de réponse
          {
            "account_id": "1485884786001",
            "channel": {
              "account_id": "57838016001",
              "name": "default"
            },
            "approved": false,
            "auto_accept": false,
            "approved_at": null,
            "created_at": "2017-08-23T17:45:41.556Z",
            "updated_at": "2017-08-23T17:45:41.556Z"
          }

    Approuver le contrat

    Approuver le contrat
    Méthode PATCH
    Point de terminaison /accounts/ affiliate_account_id/contracts/ master_account_id
    Corps de la requête
          {
            "approved": true,
            "auto_accept": true
          }
    Exemple de réponse
          {
            "account_id": "1485884786001",
            "channel": {
              "account_id": "57838016001",
              "name": "default"
            },
              "approved": true,
            "auto_accept": true,
            "approved_at": "2017-08-27T12:27:21.582Z",
            "created_at": "2017-08-23T17:45:41.556Z",
            "updated_at": "2017-08-27T12:27:21.582Z"
          }

    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.

    Liste des partages
    Méthode GET
    Point de terminaison /accounts/ master_account_id/videos/ video_id/shares
    Corps de la requête  
    Exemple de réponse
          [
            {
              "video_id": "5553744346001",
              "affiliate_id": "1752604059001",
              "affiliate_video_id": "5553754248001",
              "status": "COMPLETE",
              "shared_at": "2017-08-27T14:35:01.890Z",
              "updated_at": "2017-08-27T14:35:25.630Z"
            },
            {
              "video_id": "5553744346001",
              "affiliate_id": "1485884786001",
              "affiliate_video_id": "5553758415001",
              "status": "COMPLETE",
              "shared_at": "2017-08-27T14:34:34.919Z",
              "updated_at": "2017-08-27T14:35:25.212Z"
            }
          ]

    Partage (ou repartage) d'une vidéo

    La demande décrite ci-dessous partagera une vidéo sur un ou plusieurs comptes affiliés.

    Partager la vidéo
    Méthode POST
    Point de terminaison /accounts/ master_account_id/videos/ video_id/shares
    Corps de la requête
          [
            { "id": "affiliate_account_id_1" },
            { "id": "affiliate_account_id_2" }
          ]
    Exemple de réponse

    Réaction réussie

          [
            {
              "video_id": "5553744346001",
              "affiliate_id": "1485884786001",
              "affiliate_video_id": null,
              "status": "PROCESSING",
              "shared_at": "2017-08-27T14:25:55.710Z",
              "updated_at": "2017-08-27T14:25:55.710Z"
            }
          ]

    Réponse à l'échec

          {
          "video_id": "5553744346001",
          "affiliate_id": "1485884786001",
          "affiliate_video_id": null,
          "status": "ERROR",
          "error_message": "[{\"error_code\":\"MISSING_CUSTOM_FIELDS\",\"error_message\":\"Affiliate account is missing custom fields: [myfieldname]\"}]",
          "shared_at": "2017-10-23T15:21:38.541Z",
          "updated_at": "2017-10-23T15:22:58.519Z"
          }

    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é

    Départager la vidéo
    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.)

    Accepter la vidéo partagée
    Méthode PATCH
    Point de terminaison /accounts/ affiliate_account_id/videos/ affiliate_video_id
    Corps de la requête
          
            {
              "state": "ACTIVE"
            }
          
    Exemple de réponse
          {
            "id": "5557656136001",
            "account_id": "1485884786001",
            "ad_keys": null,
            "clip_source_video_id": null,
            "complete": true,
            "created_at": "2017-08-30T13:35:51.796Z",
            "cue_points": [
            ],
            "custom_fields": {
            },
            "delivery_type": "dynamic_origin",
            "description": null,
            "digital_master_id": "4728546275001",
            "duration": 11111,
            "economics": "AD_SUPPORTED",
            "folder_id": null,
            "geo": null,
            "has_digital_master": true,
            "images": {
              "thumbnail": {
                "asset_id": "5473683978001",
                "remote": false,
                "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
                "sources": [
                  {
                    "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
                    "height": 90,
                    "width": 160
                  },
                  {
                    "src": "https://brightcove.hs.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
                    "height": 90,
                    "width": 160
                  }
                ]
              },
              "poster": {
                "asset_id": "5473684427001",
                "remote": false,
                "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
                "sources": [
                  {
                    "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
                    "height": 720,
                    "width": 1280
                  },
                  {
                    "src": "https://brightcove.hs.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
                    "height": 720,
                    "width": 1280
                  }
                ]
              }
            },
            "link": null,
            "long_description": null,
            "name": "oystercatcher.mp4",
            "original_filename": "57838016001_4728546275001_4728519374001.mp4",
            "projection": null,
            "published_at": "2017-08-30T13:41:13.974Z",
            "reference_id": "2016-01-29T21:41:33.225Z-screencast-1280",
            "schedule": null,
            "sharing": {
              "by_external_acct": true,
              "by_id": "57838016001",
              "source_id": "4728519374001",
              "to_external_acct": false,
              "by_reference": true
            },
            "state": "ACTIVE",
            "tags": [
              "newtag",
              "foo"
            ],
            "text_tracks": [
            ],
            "updated_at": "2017-08-30T13:41:14.075Z"
          }

    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 :

    Parts en attente
    Parts 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 sur true , 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 sur false , 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 comme Ad Supported.