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:
- Controles geográficos
- Verificación de horarios
- Comprobación de proxy
- Comprobación de dominio
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 enallow_all
geo_global_rule
se establece enblock_all
geo_global_rule
se establece ennull
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:
- Verificación de horarios
- Comprobación de proxy
- Comprobación de dominio
¿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:
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.
- Inicie sesión en Video Cloud Studio. En el Administración desplegable, seleccione Información de la cuenta. Copia tu ID de la cuenta.
-
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.
-
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.
- 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:
- Si prefiere generar sus credenciales usando la API de OAuth directamente, continúe con los siguientes pasos.
-
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
-
De la respuesta de la API, copie el
client_id
yclient_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 elLocation
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 elid
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:
|
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}