soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema

Uso compartido de multimedia

En este tema, aprenderá cómo compartir videos de uno Video Cloud cuenta a otro usando el CMS API.

Introducción

Compartir medios es una característica de Video Cloud que permite a los editores compartir videos con otros editores, lo que le permite administrar más fácilmente los videos en varias cuentas. Por ejemplo, los editores pueden mantener una cuenta maestra de contenido de video y luego compartir videos con otras divisiones o subsidiarias de la organización.

Tenga en cuenta que todas las operaciones de uso compartido de medios se pueden realizar en Studio también. Ver Administrar la configuración de uso compartido de medios.

Medios compartidos y facturación

Para obtener información sobre cómo funciona la facturación de los medios compartidos, consulte Uso compartido de medios usando el módulo de medios.

Terminología

En el intercambio de medios, existe una relación entre una cuenta principal (que comparte videos) y una o más cuentas afiliadas (que reciben videos compartidos) involucradas:

Terminología de uso compartido de medios
Mi Cuenta Descripción
Dominar La cuenta que creó el video original.

El Maestro posee el contenido y es responsable de configurar, administrar y proporcionar contenido a los Afiliados.

Afiliado La cuenta que está recibiendo el video.

El Afiliado puede aceptar contenido compartido desde un Máster.

Channel Una canalización a través de la cual el contenido se comparte desde un Máster a cualquier cantidad de Afiliados. Cuando el uso compartido de medios está habilitado default El canal se creará en su cuenta.
Lazo familiar Describe la interacción entre un Maestro y un Afiliado.

Una relación se compone de un Máster para compartir contenido, un Canal a través del cual se comparte contenido, un Contrato para aceptar contenido y un Afiliado para recibir contenido.

Tipo de Contrato Describe la relación de intercambio entre un Maestro y un Afiliado.

El maestro crea un contrato y luego se debe aceptar para que se pueda compartir. El Afiliado también puede especificar si los videos compartidos se aceptan automáticamente o si deben aprobarse uno por uno.

URL base

Como para todos CMS API solicitudes, la URL base para las operaciones que se analizan a continuación es:

      https://cms.api.brightcove.com/v1

Todos los puntos finales que se detallan a continuación se agregarán a la URL base cuando realice las solicitudes.

Autenticación

La autenticación para las solicitudes requiere un encabezado de Autorización:

          Authorization: Bearer {access_token}

La access_token es un token de acceso temporal OAuth2 que debe obtenerse del servicio Brightcove OAuth. Para obtener detalles sobre cómo obtener credenciales de cliente y usarlas para recuperar tokens de acceso, consulte la publicación Descripción general de Brightcove OAuth.

Tenga en cuenta que todas las operaciones alrededor relaciones requiere nuevos permisos:

      video-cloud/video/all
      video-cloud/sharing-relationships/read
      video-cloud/sharing-relationships/create
      video-cloud/sharing-relationships/update
      video-cloud/sharing-relationships/delete

Alternativamente, puedes usar:

      video-cloud/sharing-relationships/all

En la página Administrador de Autenticación de API de Studio, se muestran dos permisos:

  • Compartir lectura (equivalente a video-cloud/sharing-relationships/read)
  • Compartir lectura / escritura (equivalente a video-cloud/sharing-relationships/all)

Restricciones para compartir

Por defecto, todos los videos pueden ser compartidos. Sin embargo, puedes evitar compartir si:

  • La cuenta de afiliado no tiene un campo personalizado para el que se establece un valor en el video en la cuenta maestra
  • La cuenta principal tiene habilitado el filtrado geográfico, pero la cuenta de afiliado no

Coincidencia de campo personalizado

Puede aplicar la coincidencia de campos personalizados para un canal, lo que significa que las acciones de video fallarán si el video tiene valores para campos personalizados que no están presentes en la cuenta de afiliado. Los videos aún se compartirán correctamente si el video no tiene valores para ningún campo personalizado que no coincida.

De forma predeterminada, la coincidencia de campos personalizados es no forzado.

Si un video compartido falla debido a campos personalizados que no coinciden, verá un error como este en la respuesta:

      {
        "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"
      }

Coincidencia de Geo-filtrado

Si la coincidencia de filtrado geográfico está habilitada para un canal, los videos no se pueden compartir si la cuenta maestra tiene habilitado el filtrado geográfico y la cuenta de afiliado no.

Por defecto, coincidencia de filtrado geográfico is forzado.

El error se verá así:

      {
        "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"
      
      

Vea Actualizar canal a continuación para ver cómo se actualiza un canal para hacer cumplir el campo personalizado o la coincidencia de filtrado geográfico.

¿Qué se comparte?

Esta sección explica qué se comparte y cómo se manejan los cambios posteriores en el video.

Cuando el video es compartido

La mayoría de los campos de metadatos de video se copian del Maestro a la cuenta de Afiliado cuando se comparte el video. Las excepciones notables son:

  • id - el video tendrá su propia identificación única en la cuenta de Afiliado
  • campos de fecha como created_at y updated_at

Todos los recursos de video (representaciones, imágenes, texto_tracks, etc.) son utilizados por las cuentas afiliadas para su reproducción.

Después de compartir el video

Después de que se haya compartido el video, algunos cambios en el video en la cuenta principal se heredan automáticamente por las cuentas afiliadas, y otros no.

Activos de video

Excepto por imágenes, Los cambios principales en los activos de video son siempre heredado por Afiliados. Afiliados no puede cambiar los activos como representaciones, manifiestos, pistas de texto o el maestro digital.

Los cambios en las imágenes por el Maestro son heredados por el Afiliado a menos que el Afiliado haya reemplazado la (s) imagen (es). Una vez que un Afiliado cambia una imagen, esa imagen ya no será heredada del Maestro.

Metadatos de video

Cualquier metadato de video (como el nombre, la descripción y el ID de referencia) puede ser modificado por el Afiliado, y los cambios realizados en el video maestro son no heredado por el Afiliado.

Cómo compartir videos

Tenga en cuenta, sin embargo, que si el maestro re-acciones El video (esto solo puede hacerse a través de la CMS API, no en Studio), todos los activos y metadatos (aparte de los campos de datos / tiempo) se compartirán con los Afiliados, sobrescribiendo cualquier cambio que los Afiliados hayan realizado.

Descripción general de los pasos para compartir los medios

Estableciendo una relación

A continuación se muestra un resumen de las operaciones para configurar una relación (haga clic en el nombre de la operación para obtener más información):

Operaciones de configuración
Operaciones maestras
Operación Método / punto final Descripción
Lista de canales GET /accounts/ master_account_id/channels Obtener una lista de canales para la cuenta
Obtener detalles del canal GET /accounts/ master_account_id/channels/ channel_name [2 1-] Obtener detalles de un canal
Actualizar canal POST /accounts/ master_account_id/channels/ channel_name Actualiza la configuración de canales
Lista de afiliados de canales GET /accounts/ master_account_id/channels/default/members Obtenga los afiliados para un canal
Agregar afiliados PUT /accounts/ master_account_id/channels/default/members Agregar afiliados a un canal
Eliminar afiliado DELETE /accounts/ master_account_id/channels/default/members/ affiliate_account_id Elimina un afiliado de un canal
Operaciones afiliadas
Operación Método / punto final Descripción
Lista de contratos disponibles GET /accounts/ affiliate_account_id/contracts Obtiene todos los contratos disponibles para la cuenta
Obtener contrato para una cuenta específica GET /accounts/ affiliate_account_id/contracts/ master_account_id Obtiene un contrato, si corresponde, de una cuenta específica
Aprobar un contrato PATCH /accounts/ affiliate_account_id/contracts/ master_account_id Aceptar y configurar las condiciones de aceptación del contrato

Notas

  • [2 1-] Actualmente solo hay un canal llamado default

Compartir videos

Las operaciones de intercambio de video las realiza la cuenta maestra. La cuenta de afiliado puede aceptar el recurso compartido (si auto_accept se establece a false) y puede actualizar metadatos de video compartidos e imágenes usando el estándar Actualizar video operación.

Estas son las operaciones de intercambio que se pueden realizar una vez que se establece una relación (haga clic en el nombre de una operación para obtener más detalles):

Operaciones de intercambio
Operaciones maestras
Operación Método / punto final Descripción
Listar acciones existentes GET /accounts/ master_account_id/videos/ video_id/shares Obtenga una lista de las acciones existentes para un video; esto es importante debido a las consecuencias de volver a compartir un video cuando ya ha sido compartido
Comparte un video POST /accounts/ master_account_id/videos/ video_id/shares Comparta un video con uno o más afiliados: tenga en cuenta que si el video ya se ha compartido, esta operación volver a compartirlo - eso es probablemente no que quieres hacer
Descomprimir un video para un Afiliado DELETE /accounts/ master_account_id/videos/ video_id/shares Desea compartir un video para un Afiliado específico: tenga en cuenta que si no comparte y vuelve a compartir, el video compartido tendrá un nuevo ID de video en la cuenta de Afiliado.
Operaciones afiliadas
Operación Método / punto final Descripción
Aceptar un video compartido PATCH /accounts/ affiliate_account_id/videos/ video_id Aceptar un video compartido (si auto_accept esta apagado)

CMS API solicitudes - configuración

Esta sección enumera los CMS API Operaciones involucradas en la configuración de medios compartidos.

Operaciones maestras

Lista de canal (es)

Lista de canales
Método GET
Punto final /accounts/ master_account_id/channels
Solicitar cuerpo
Muestra de respuesta
      [
        {
          "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"
        }
      ]

Obtener detalles del canal

Obtener detalles del canal
Método GET
Punto final https://cms.api.brightcove.com/v1/accounts/ master_account_id/channels/ channel_name [5-1]
Solicitar cuerpo
Muestra de respuesta
      {
        "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"
      }
Notas
  • [5 1-] Actualmente solo hay un canal llamado default

Actualizar canal

Crear canal
Método PATCH
Punto final /accounts/ master_account_id/channels/ channel_name [6 1-]
Solicitar cuerpo
      {
        "enforce_custom_fields" : true,
        "enforce_geo" : true
      }
Muestra de respuesta
      {
        "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"
      }
Notas
  • [6 1-] Actualmente solo hay un canal llamado default

Lista de afiliados para el canal

Lista de afiliados del canal
Método GET
Punto final /accounts/ master_account_id/channels/default/members
Solicitar cuerpo
Muestra de respuesta
      [
        {
          "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"
        }
      ]

El valor de la approved campo indica si el Afiliado ha aprobado o no el contrato.

Agregar afiliado al canal

Añadir afiliado
Método PUT
Punto final /accounts/ master_account_id/channels/default/members/ affiliate_account_id
Solicitar cuerpo
      {
        "account_id":"affiliate_account_id"
      }
Muestra de respuesta
      {
        "account_id": "1485884786001"
      }

Eliminar afiliado del canal

Eliminar afiliado
Método DELETE
Punto final /accounts/ master_account_id/channels/default/members/ affiliate_account_id
Solicitar cuerpo
Muestra de respuesta 204 NO CONTENT (cuerpo de respuesta vacío)

Operaciones afiliadas

Lista de contratos disponibles

Contratos de lista
Método GET
Punto final /accounts/ affiliate_account_id/contracts
Solicitar cuerpo
Muestra de respuesta
      [
        {
          "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"
        }
      ]

Los dos campos esenciales en la respuesta son:

  • approved - cuando se establece en verdadero, el afiliado acepta el contrato
  • auto-accept - cuando se establece en verdadero, los videos compartidos a través de este contrato serán automáticamente aceptados por el Afiliado; de lo contrario, deben ser aprobados uno por uno

Veremos cómo actualizar el contrato a continuación.

Obtener contrato para una cuenta específica

Obtener contrato
Método GET
Punto final /accounts/ affiliate_account_id/contracts/ master_account_id
Solicitar cuerpo
Muestra de respuesta
      {
        "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"
      }

Aprobar el contrato

Aprobar el contrato
Método PATCH
Punto final /accounts/ affiliate_account_id/contracts/ master_account_id
Solicitar cuerpo
      {
        "approved": true,
        "auto_accept": true
      }
Muestra de respuesta
      {
        "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 incluye solo "approved":true, cada video tendrá que ser aprobado individualmente.

CMS API peticiones - compartir

Esta sección detalla el CMS API solicitudes utilizadas en compartir videos. Las operaciones de intercambio de medios son realizadas por la cuenta Master. La cuenta de afiliado puede aceptar acciones si auto_accept está apagado.

Operaciones maestras

Listar acciones existentes

Para saber si un video ya se ha compartido en otras cuentas, puede usar la solicitud a continuación.

Lista de acciones
Método GET
Punto final /accounts/ master_account_id/videos/ video_id/shares
Solicitar cuerpo
Muestra de respuesta
      [
        {
          "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"
        }
      ]

Compartir (o compartir) un video

La solicitud que se describe a continuación compartirá un video a una o más cuentas afiliadas.

Compartir video
Método POST
Punto final /accounts/ master_account_id/videos/ video_id/shares
Solicitar cuerpo
      [
        { "id": "affiliate_account_id_1" },
        { "id": "affiliate_account_id_2" }
      ]
Muestra de respuesta

Respuesta de éxito

      [
        {
          "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"
        }
      ]

Respuesta de falla

      {
      "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"
      }

Compartir creará un nuevo video en la cuenta del afiliado. los state del video compartido será PROCESSING hasta que se complete la acción y el video se crea en la cuenta de Afiliado. El Afiliado aún puede necesitar aceptar el video (si auto_accept se establece a false en el contrato por parte del Afiliado: consulte la sección anterior sobre cómo configurar el uso compartido).

Dejar de compartir un video para un Afiliado

No compartir video
Método DELETE
Punto final /accounts/ master_account_id/videos/ video_id/shares/ affiliate_account_id
Solicitar cuerpo
Muestra de respuesta 202 ACCEPTED (cuerpo de respuesta vacío): la respuesta indica que la solicitud se ha aceptado para su procesamiento, pero es posible que la operación no se complete durante un par de minutos

Operaciones afiliadas

Aceptar video compartido

Para aceptar un video compartido, el Afiliado actualiza el video compartido, configurando su state a ACTIVE. (Configurando el state a INACTIVE rechaza la acción).

Aceptar video compartido
Método PATCH
Punto final /accounts/ affiliate_account_id/videos/ affiliate_video_id
Solicitar cuerpo
      
        {
          "state": "ACTIVE"
        }
      
Muestra de respuesta
      {
        "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"
      }

Seleccione las state a INACTIVE rechazar la parte

Tenga en cuenta que no hay una notificación especial que indique que un video ha sido compartido en su cuenta. Sin embargo, si videos de búsqueda idea state:pending, que encontrará acciones no aceptadas. Alternativamente, puede usar la lista de Acciones Pendientes en el módulo Studio Media para ver y aceptar / rechazar participaciones pendientes:

Acciones pendientes
Acciones pendientes

Errores

Los errores de uso compartido de medios no se devuelven como una respuesta de error separada a la solicitud de la API, sino más bien en una error_message campo en la respuesta normal:

      [
        {
          "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]"}]"
        }
      ]

Vea el CMS API Referencia de error para más detalles.

Limitaciones

Actualmente, el uso compartido de medios tiene las siguientes limitaciones:

  • DRM: compartir medios a través de la CMS API Actualmente no es compatible con cuentas habilitadas para DRM. Compartir videos de una cuenta que no esté habilitada para DRM a una cuenta que esté habilitada para DRM es compatible, pero los videos compartidos no ser empaquetado para DRM.
  • Si el canal definido por la cuenta maestra se ha configurado enforce_custom_fields a true, y luego comparte un video que tiene un campo personalizado con un valor que no está permitido por la cuenta de afiliado, ese intento de compartir fracasará. El estado de compartir se actualizará con un mensaje de error como este:

          [{"error_code": "ILLEGAL_CUSTOM_FIELD_VALUE", "error_message": "Illegal value for custom fields: [topic]"}]
          

    Si el canal definido por la cuenta maestra se ha configurado enforce_custom_fields a false, y luego comparte un video que tiene un campo personalizado con un valor que no está permitido por la cuenta de afiliado, entonces el intento de compartir funcionará, pero el campo con el valor incorrecto no se incluirá en la copia afiliada del video.

  • Al reproducir un video compartido con SSAI, el reemplazo de Macro SSAI usará los metadatos del video principal en lugar del video secundario. SSAI también omitirá la búsqueda de anuncios si el video principal está marcado como Advertising='Free', incluso si el video secundario está etiquetado como Ad Supported.

Página actualizada por última vez el 12 jun 2020