Implementación de derechos de reproducción

En este tema, aprenderá a administrar la reproducción de video utilizando los derechos de reproducción de Brightcove.

Introducción

El servicio de administración de derechos de reproducción de Brightcove proporciona una forma escalable y expresiva de administrar la reproducción de video.

Si no está familiarizado con esta función, consulte la descripción general: Documento de restricciones de reproducción de Brightcove.

Proceso de validacion

Los derechos de reproducción se aplican en orden de especificidad y coincidencia. Una regla de permiso niega el resto de las reglas, ya que son menos específicas que la que permite la regla.

Es posible que desee permitir una dirección IP específica para evitar una regla de país para esa dirección IP. Es posible que también desee bloquear una IP diferente que normalmente estaría permitida por la restricción del país. Entonces, puede tener sentido tener ambos block-ips y allow-ips en la misma definición de derechos de reproducción. Lo mismo es válido para otras reglas.

Puede tener reglas de permitir y bloquear para la mayoría de los derechos. Los países son los únicos en los que podría no tener sentido tener ambos.

Los siguientes diagramas de flujo muestran cómo funciona el proceso de validación:

  1. Controles geográficos
  2. Verificación de horarios
  3. Comprobación de proxy
  4. Comprobación de dominio
Validación de derechos de reproducción
Validación de derechos de reproducción

Controles geográficos

El flujo de restricciones geográficas seguirá uno de los siguientes diagramas, basado en el valor de la geo_global_rule campo:

  • geo_global_rule se establece en allow_all
  • geo_global_rule se establece en block_all
  • geo_global_rule se establece en null
Restricciones geográficas
Restricciones geográficas

Si las verificaciones geográficas pasan, continúe con las verificaciones adicionales en el siguiente diagrama.

Verificaciones de validación adicionales

Si las verificaciones geográficas pasan, las siguientes verificaciones se procesan en orden:

  1. Verificación de horarios
  2. Comprobación de proxy
  3. Comprobación de dominio
Verificaciones de validación adicionales
Verificaciones de validación adicionales

¿Como funciona?

Los derechos de reproducción son una parte de los Solución de restricciones de reproducción.

Derechos de reproducción

De forma predeterminada, el reproductor (Brightcove Player y los SDK nativos) realiza una solicitud a la API de reproducción si tiene una clave de política. El reproductor envía la solicitud al siguiente punto final y recupera su contenido:

edge.api.brightcove.com

Para verificar los derechos de reproducción con su solicitud de API de reproducción, no incluirá la clave de política. Cuando no hay clave de política, el jugador envía la solicitud a este punto final:

edge-auth.api.brightcove.com

si todos los Comprobaciones de validación de derechos de reproducción pass, luego se devuelve su contenido.

Flujo de trabajo

Para administrar las restricciones de reproducción, siga estos pasos:

  1. Configurar tu cuenta
  2. Definir restricciones
  3. Asociar restricciones con un video
  4. Configura tu reproductor

Configurar tu cuenta

Esta función está disponible para un conjunto específico de clientes con acceso a la fase de disponibilidad limitada del servicio de gestión de derechos de reproducción. Comuníquese con su Gerente de Éxito del Cliente para obtener más detalles.

Generar credenciales de OAuth

Conseguir su BC_TOKEN y número de cuenta.

  1. Inicie sesión en Video Cloud Studio. En el Administración desplegable, seleccione Información de la cuenta. Copia tu ID de la cuenta.
  2. Con cualquier página de Studio abierta, abra las herramientas de desarrollo para el navegador, vaya a la Consola y pegue el siguiente código:

    var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
    for (i = 0; i < cookiesArray.length; i++) {
        tmpArray = cookiesArray[i].split("=");
        if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
            cookiesObj.BC_TOKEN = tmpArray[1];
        }
    }
    window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);

    y presione regreso.

  3. Debería ver aparecer un mensaje que contiene su BC_TOKEN

Solicitar credenciales de cliente

Agregue permisos de cuenta para la API de derechos de reproducción.

  1. La forma más sencilla de crear credenciales de cliente para la API de derechos de reproducción es utilizar esta aplicación en línea y asegúrese de incluir estos permisos cuando cree las credenciales:
    Permisos de derechos de reproducción
    Permisos de derechos de reproducción
  2. Si prefiere generar sus credenciales usando la API de OAuth directamente, continúe con los siguientes pasos.
  3. A continuación, se muestra un ejemplo de una solicitud de cliente OAuth con los permisos necesarios. Ver Obteniendo tu BC_TOKEN para obtener información sobre cómo obtener su BC_TOKEN.

    rizo \\
      --incluye \\
      --encabezado "Autorización: BC_TOKEN tu BC_TOKEN "\\
      --datos {
        name = demo & maximum_scope = [{
          "identidad": {
            "type": "video-cloud-account",
            "ID de la cuenta": su identificación de cuenta
          },
          "operaciones": [
            "video-nube / reproducción-autenticación / reproducción-derechos / lectura",
            "video-nube / reproducción-autenticación / reproducción-derechos / escritura",
            "video-cloud / video / read",
            "video-nube / video / crear",
            "video-nube / video / actualización",
            "video-cloud / video / delete",
            "video-cloud / playback-auth / key / read",
            "video-nube / reproducción-autenticación / clave / escritura"
          ]
      }]
    } \
    https://oauth.brightcove.com/v4/client_credentials
  4. De la respuesta de la API, copie el client_id y client_secret. Los utilizará para generar un token de acceso al realizar solicitudes a la API de derechos de reproducción.

Definir restricciones

Utilice la API de derechos de reproducción para definir restricciones de reproducción de video.

API de derechos de reproducción

Cada objeto de restricción de derechos de reproducción se puede usar con uno o más videos.

URL base

La URL base de la API es:

https://playback-rights.api.brightcove.com

Ruta de la cuenta

En todos los casos, las solicitudes se realizarán para un Video Cloud Cuenta. Por lo tanto, siempre agregará el término cuentas seguido de la identificación de su cuenta a la URL base:

https://playback-rights.api.brightcove.com/v1/accounts/{accountID}

Autorización

Se requiere un token de acceso para las solicitudes y debe estar presente en el encabezado de Autorización:

Authorization: Bearer {access_token}

El token de acceso es un token de acceso OAuth2 temporal 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 Descripción general de Brightcove OAuth.

Permisos

Las solicitudes a la API de derechos de reproducción deben realizarse desde credenciales del cliente con los siguientes permisos:

  • video-cloud/playback-auth/playback-rights/read
  • video-cloud/playback-auth/playback-rights/write

Administrar restricciones

La API de derechos de reproducción admite las siguientes solicitudes. Para obtener detalles de la API, consulte la Referencia de la API de derechos de reproducción.

Crear nuevos derechos de reproducción

POST /v1/accounts/{accountID}/playback_rights
  Content-Type: application/json
  Body: {playback rights object}

Para obtener una lista de campos válidos, consulte la Cuerpo de la solicitud sección.

Ejemplo de rizo

Crear derecho de reproducción válido solo para Australia.

curl -X POST \\
  https://playback-rights.api.brightcove.com/v1/accounts/{your_account_id}/playback_rights \\
  -H 'Autorización: Portador {access_token} '\\
  -H 'Tipo de contenido: aplicación / json' \\
  -D '{
  "geo": {
    "países_permitidos": [
      "AU"
    ]
  }
}'

Respuesta de API

Salva el playback_rights_id valor para uso posterior. Puede encontrar este valor en la respuesta de la API. Ya sea:

  • Encabezado de respuesta:

    La playback_rights_id El valor se puede encontrar en el Location campo de la respuesta del encabezado. Debería ser similar a esto:

    Location: /v1/accounts/your account_id/playback_rights/your playback_rights_id
        
  • Cuerpo de respuesta

    La playback_rights_id El valor se puede encontrar en el cuerpo de la respuesta como el id campo. Debería ser similar a esto:

    {
      "id": "your playback_rights_id",
      "geo": {
      "allowed_countries": [
        "MX",
        "US"]
    }

Obtenga todos los derechos de reproducción para una cuenta

GET /v1/accounts/{accountID}/playback_rights

Obtenga una reproducción específica adecuada para una cuenta

GET /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

Actualizar un derecho de reproducción específico:

PUT /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
  Content-Type: application/json
  Body: {playback rights object}

Para obtener una lista de campos válidos, consulte la Cuerpo de la solicitud sección.

Eliminar un derecho de reproducción específico:

DELETE /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

Cuerpo de la solicitud

A continuación, se muestra un ejemplo de todos los campos que puede incluir en el cuerpo de la solicitud:

{
  "geo": {
  "allowed_countries": [
    "MX",
    "US"
  ],
  "blocked_countries": [
    "JP",
    "CN"
  ],
  "allowed_zip_codes": [
    "US-90210"
  ],
  "blocked_zip_codes": [
    "US-72810"
  ],
  "allowed_dmas": [
    501
  ],
  "blocked_dmas": [
    803
  ]
},
"blocked_proxies": {
  "anonymous": true,
  "public": true,
  "corporate": true,
  "transparent": true,
  "hosting": true
},
"allowed_domains": [
  "www.google.com",
  "www.brightcove.com"
],
"blocked_domains": [
  "www.ooyala.com"
],
"start_time": 1572905011,
"end_time": 1672905011,
"allowed_ips": [
  "192.168.1.1"
],
"blocked_ips": [
  "192.168.1.1"
],
"allowed_days": [
  "mon",
  "tue"
],
"allowed_hours": [
  "5-6"
],
"allow_insecure": true,
"disabled": false,
"geo_global_rule": "allow_all",
"is_default": true,
"name": "Optional playback right name"
}

Campos de la API de derechos de reproducción

Campo Tipo Descripción
allowed_days Cadena Matriz de nombres en minúsculas de 3 letras para los días en que se permite recuperar el recurso. Uno o más de: mon, tue, wed, thu, fri, sat, sun
allowed_domains, blocked_domains Cadena Matriz de nombres de dominio
allowed_hours Entero Matriz de horas del reloj de 24 horas (comenzando en 0 y hasta 47) durante las cuales se permite recuperar el recurso. De 0 a 23 para el día actual y de 24 a 47 para la fecha de finalización del día siguiente. Si un bloque de horas permitidas comienza el día anterior y termina al día siguiente, se requiere una notación de más de 24 horas.

Ejemplo: el valor de 3-4 en este encabezado significa que el recurso está disponible desde las 3:00 a. m. UTC hasta las 3:59 a. m. UTC
allow_insecure booleano Predeterminado: false
Estableciendo esto en true hace que el token JWT sea opcional.
allowed_ips, blocked_ips Entero Matriz de direcciones ipv4 / ipv6 o bloques CIDR.
disabled booleano Predeterminado: false
Estableciendo esto en true desactiva el derecho de reproducción, lo que permite la reproducción para todos.
geo Objeto Propiedades relacionadas con derechos geográficos
geo.allowed_countries,
geo.blocked_countries
Cadena Matriz de códigos de país de dos letras, que siguen el estándar ISO 3166-1 alpha-2. Para obtener una lista de valores, consulte la Elementos de código asignados oficialmente.
geo.allowed_dmas,
geo.blocked_dmas
Entero Matriz de números de Área de mercado designada (DMA) de Nielsen. Para obtener una lista de valores, consulte la Códigos DMA documento.
geo.allowed_zip_codes,
geo.blocked_zip_codes
Cadena Matriz de códigos postales, que tienen como prefijo el país de dos letras y un guión. p.ej ["US-90045"].
El código de país de dos letras debe estar en mayúsculas y seguir el estándar ISO 3166-1 alpha-2, como se muestra en la Elementos de código asignados oficialmente.
geo_global_rule Cadena Predeterminado: ""
Valores:
  • ""- Sin regla geográfica global (es decir, sigue el flujo normal de propiedades geográficas)
  • "allow_all"- Permite la reproducción desde cualquier parte del mundo, excepto ubicaciones en la lista negra, que se especifican mediante el blocked_* propiedades
  • "block_all"- Bloquea la reproducción desde cualquier parte del mundo, excepto las ubicaciones en la lista blanca, que se especifican mediante el allow_* propiedades
is_default booleano Predeterminado: false
Estableciendo esto en true hace que el derecho de reproducción actual sea el predeterminado. Para obtener detalles, consulte las notas en el Introducción sección.
name Cadena Nombre derecho de reproducción opcional
start_time, end_time Entero Época
Propiedades del proxy de derechos de reproducción
Campo Tipo Descripción
blocked_proxies Objeto Propiedades relacionadas con los derechos de apoderado
blocked_proxies.anonymous booleano La dirección IP del cliente no está disponible. Incluye servicios que cambian de ubicación para vencer a DRM, puntos TOR, proxies temporales y otros servicios de enmascaramiento.
blocked_proxies.corporate booleano Generalmente se considera inofensivo, pero la ubicación puede ser una preocupación. Identifique si varios usuarios son proxy a través de una ubicación o ubicaciones centrales y pueden compartir una única dirección IP aparente de red.
blocked_proxies.hosting booleano La dirección IP pertenece a una instalación de alojamiento y es probable que sea un proxy, ya que los usuarios finales no suelen estar ubicados en una instalación de alojamiento.
blocked_proxies.public booleano Múltiples usuarios proxy desde una ubicación que permite el acceso público a Internet.
blocked_proxies.transparent booleano La dirección IP del cliente está disponible a través de encabezados HTTP, aunque el valor no es necesariamente confiable (por ejemplo, puede ser falsificado).

Asociar restricciones con un video

Utilizar el CMS API para asociar un ID de derechos de reproducción con un video. Utilizará el ID de derechos de reproducción que creó en el paso anterior.

API de CMS

Cada objeto de restricción de derechos de reproducción se puede usar con uno o más videos.

URL base

La URL base de la API es:

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

Ruta de la cuenta

En todos los casos, las solicitudes se realizarán para un Video Cloud Cuenta. Por lo tanto, siempre agregará el término cuentas seguido de la identificación de su cuenta a la URL base:

https://cms.api.brightcove.com/v1/accounts/{accountId}

Autorización

Se requiere un token de acceso para las solicitudes y debe estar presente en el encabezado de Autorización:

Authorization: Bearer {access_token}

El token de acceso es un token de acceso OAuth2 temporal 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 Descripción general de Brightcove OAuth.

Permisos

Las solicitudes a la API de derechos de reproducción deben realizarse desde credenciales del cliente con los siguientes permisos:

  • video-cloud/video/read
  • video-cloud/video/update

Administrar restricciones

La CMS API admite los muchos tipos de solicitudes. Para actualizar un video, use lo siguiente:

Actualizar un video:

Asociar un playback_rights_id con un video. Esta identificación debe existir en la API de derechos de reproducción, que creó en el paso anterior.

PATCH /v1/accounts/{account_id}/videos/{video_id}
  Content-Type: application/json
  Body: {video object}

Ejemplo de rizo

Agrega un playback_rights_id a un video.

curl -X PATCH \\
  https://cms.api.brightcove.com/v1/cuentas/su cuenta_id/videos/tu video_id \\
  -H 'Autorización: Portador su token_de_acceso ' \\
  -H 'Tipo de contenido: aplicación / json' \\
  -D '{
	"playback_rights_id": "su playback_rights_id"
}'

Obtenga un video específico:

GET /v1/accounts/{account_id}/videos/{video_ids}

Para obtener detalles completos sobre el uso de la API, consulte la Referencia de la API de CMS.

Configura tu reproductor

De forma predeterminada, Brightcove Player se comunica con Brightcove Playback API (PAPI). Un nuevo sistema para administrar las restricciones de reproducción se encuentra frente a la API de reproducción. Para configurar su reproductor, consulte lo siguiente:

Reproductor web

Para configurar el reproductor web de Brightcove, consulte la Restricciones de reproducción con Brightcove Player documento.

Reproductor nativo de Android o iOS

Para configurar el reproductor nativo para Android o iOS, consulte la Restricciones de reproducción con los SDK nativos documento.

Tu propio jugador

Si su contenido está en la biblioteca de Video Cloud, pero está utilizando su propio reproductor, puede realizar llamadas a la API de reproducción como se muestra en la Descripción general: API de reproducción documento. Reemplace la URL base con lo siguiente:

https://edge-auth.api.brigthcove.com

En lugar de utilizar una clave de política, utilizará JSON Web Token (JWT) para la autenticación:

Authorization: Bearer {JWT}

Aquí hay un ejemplo de Curl:

curl -X GET \\
-H 'Autorización: Portador {JWT} '\\
https://edge-auth.api.brightcove.com/playback/v1/accounts/{your_account_id}/videos/{your_video_id}