Introducción
El servicio de autorización de reproducción (PAS) de Brightcove ofrece un nivel adicional de seguridad cuando se utiliza Dynamic Delivery con contenido protegido por DRM o HTTP Live Streaming Encryption (HLSe). Con PAS, las solicitudes de licencia se autenticarán mediante un Token web JSON (JWT). El token se utiliza al solicitar la licencia de video, una vez que el video se ha cargado en el reproductor y se ha seleccionado la fuente.
Este documento se centra en el uso de PAS con Brightcove Player. Para obtener más información sobre PAS en general, consulte la Descripción general: DRM con servicio de autorización de reproducción documento.
Descripción general
Para configurar Brightcove Player para usar PAS, pase un parámetro de token al realizar la solicitud de catálogo para el video. El código se mostrará en la siguiente sección. Para asegurarse de que tiene los requisitos previos para comprender el código, los conceptos de los siguientes documentos le ayudarán a proporcionar una base sobre la cual construir:
Usando un token en los parámetros del catálogo
Esta sección detalla el código necesario para configurar el reproductor para usar PAS. Para hacer esto, pase un token de cadena como parte de un parámetros del catálogo objeto, usando el nombre de la propiedad bcovAuthToken
.
Este enfoque funcionará tanto para DRM como para HLSe. El reproductor detectará el tipo de fuente que se está cargando desde la Playback API y proporcionará la implementación correcta para esa fuente.
Este código de implementación de muestra utiliza el catalog.get () método para solicitar el video mientras se proporciona el token (que debería reemplazar el <BCOV_AUTH_TOKEN>
marcador de posición). Asegúrese de NO incluir la identificación del video en el <video-js>
etiqueta.
<video-js id="myPlayerID"
data-account="1507807800001"
data-player="default"
data-embed="default"
controls
data-application-id></video-js>
<script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
<script>
(function() {
var myPlayer = videojs.getPlayer('myPlayerID');
myPlayer.catalog.get({
type: 'video',
id: '6015247091001',
bcovAuthToken: '<BCOV_AUTH_TOKEN>'
})
.then(function(videoReturned){
myPlayer.catalog.load(videoReturned);
})
.catch(function(err){
console.log('err:', err);
});
})();
</script>
Configuración SSAI
Si va a utilizar PAS con SSAI, hay una pequeña adición de configuración que debe realizarse. Es necesario agregar un parámetro adicional al objeto de parámetros del catálogo, denominado adConfigId
.
<video-js id="myPlayerID"
data-account="1507807800001"
data-player="default"
data-embed="default"
controls
data-application-id></video-js>
<script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
<script>
(function() {
var myPlayer = videojs.getPlayer('myPlayerID');
myPlayer.catalog.get({
type: 'video',
id: '6015247091001',
bcovAuthToken: 'BCOV_AUTH_TOKEN',
adConfigId: '<YOUR_ADD_CONFIG_ID>'
})
.then(function(videoReturned){
myPlayer.catalog.load(videoReturned);
})
.catch(function(err){
console.log('err:', err);
});
})();
</script>
Usando una implementación personalizada
Es posible que esté utilizando una implementación personalizada donde no tiene la bcovAuthToken
para establecer el valor con el catalog.get () solicitud de método. Si está utilizando un reproductor propio o de terceros, puede utilizar uno de los siguientes enfoques para pasar su token a la solicitud de licencia:
-
Encabezado HTTP:
BCOV-Auth
(No compatible con HLSe) -
Galleta:
bcov-auth
(No compatible con HLSe) -
Parámetro de consulta:
bcov-auth
(Solo compatible con HLSe) Debe adjuntarse a la URL del manifiesto maestro, en lugar de a la URL de la licencia.
A continuación se muestra un ejemplo que muestra cómo configurar el source.emeHeaders['BCOV-Auth']
atributo en el objeto de video al token. Esto inserta el emeHeader
en cada fuente DESPUÉS de la solicitud del catálogo.
<video-js id="myPlayerID"
data-account="1507807800001"
data-player="default"
data-embed="default"
controls
data-application-id></video-js>
<script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
<script>
(function() {
var myPlayer = videojs.getPlayer('myPlayerID');
myPlayer.catalog.get({
type: 'video',
id: '6015247091001'
})
.then(function(video){
sources=video.sources;
for (let i = 0; i < sources.length; i++) {
const source = sources[i];
// Only add the auth token as an eme header for DRM content
if (BCOV_AUTH_TOKEN && source.key_systems) {
source.emeHeaders = {
'BCOV-Auth': BCOV_AUTH_TOKEN
};
}
}
myPlayer.catalog.load(video);
})
.catch(function(err){
console.log('err:', err);
});
})();
</script>