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).
Se utiliza al solicitar la licencia de video, una vez que el video se ha cargado al reproductor y se ha seleccionado la fuente.
Para obtener más información sobre PAS, consulte la Descripción general: DRM con servicio de autorización de reproducción documento.
Implementación de Android
El SDK nativo para Android actualmente admite PAS para fuentes HLSe y Widevine DASH. Proporcionará su token de autorización como parte de la solicitud de catálogo de Brightcove para un solo video o una lista de reproducción.
Para realizar una solicitud de catálogo de Brightcove mediante PAS, siga estos pasos:
-
Crear un
HttpRequestConfig
objeto y establezca el token de autorización de Brightcove como se muestra aquí:HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder() .setBrightcoveAuthorizationToken(myToken) .build();
El valor del token de autorización será el valor de su token web JSON.
-
Una vez que haya creado el
HttpRequestConfig
objeto, puede pasarlo a uno de los siguientes métodos de catálogo:Para una solicitud de video, use uno de los siguientes:
findVideoByID(String, HttpRequestConfig, VideoListener)
findVideoByReferenceID(String, HttpRequestConfig, VideoListener)
Para una solicitud de lista de reproducción, use uno de los siguientes:
findPlaylistByID(String, HttpRequestConfig, PlaylistListener)
findPlaylistByReferenceID(String, HttpRequestConfig, PlaylistListener)
El SDK maneja los detalles del uso del token para la adquisición de licencias de HLSe y Widevine.
Ejemplo de código
El siguiente ejemplo muestra cómo pasar su token de autorización al realizar una solicitud de catálogo:
String myToken = "...";
HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
.setBrightcoveAuthorizationToken(myToken)
.build();
…
Catalog catalog = new Catalog(eventEmitter, accountId, policyKey, playbackApiBaseUrl);
catalog.findVideoByReferenceID(videoReferenceId, httpRequestConfig, new VideoListener(){...});
Reproducción sin conexión
El catálogo sin conexión findVideo
, requestPurchaseLicense
y requestRentalLicense
todos los métodos toman un HttpRequestConfig
como argumento.
private HttpRequestConfig httpRequestConfig;
private String pasToken = "YOUR_PAS_TOKEN";
...
HttpRequestConfig.Builder httpRequestConfigBuilder = new HttpRequestConfig.Builder();
httpRequestConfigBuilder.setBrightcoveAuthorizationToken(pasToken);
httpRequestConfig = httpRequestConfigBuilder.build();
playlist.findPlaylist(catalog, httpRequestConfig, new PlaylistListener() {
@Override
public void onPlaylist(Playlist playlist) {
videoListAdapter.setVideoList(playlist.getVideos());
onVideoListUpdated(false);
brightcoveVideoView.addAll(playlist.getVideos());
}
@Override
public void onError(String error) {
String message = showToast("Failed to find playlist[%s]: %s", playlist.displayName, error);
Log.w(TAG, message);
onVideoListUpdated(true);
}
});
Para obtener más detalles, consulte la Aplicación de muestra de reproducción sin conexión.
Respuestas
Las siguientes respuestas están asociadas con PAS:
- 200 - Se permite que la licencia continúe
- 401 - No se debe permitir que la entrega de la licencia continúe
Limitaciones
Hay una limitación con la versión actual:
- Chromecast no es compatible con la autorización de reproducción.
Implementación de iOS
Cuando utilice el servicio de autorización de reproducción de Brightcove, deberá utilizar los métodos del servicio de reproducción que le permitan pasar su token de autorización.
Para una solicitud de video, use uno de los siguientes:
- (void)findVideoWithVideoID:(NSString *)videoID authToken:(NSString *)authToken parameters:(NSDictionary *)parameters completion:(void (^)(BCOVVideo *video, NSDictionary *jsonResponse, NSError *error))completionHandler;
- (void)findVideoWithReferenceID:(NSString *)referenceID authToken:(NSString *)authToken parameters:(NSDictionary *)parameters completion:(void (^)(BCOVVideo *video, NSDictionary *jsonResponse, NSError *error))completionHandler;
Para una solicitud de lista de reproducción, use uno de los siguientes:
- (void)findPlaylistWithPlaylistID:(NSString *)playlistID authToken:(NSString *)authToken parameters:(NSDictionary *)parameters completion:(void (^)(BCOVPlaylist *playlist, NSDictionary *jsonResponse, NSError *error))completionHandler;
- (void)findPlaylistWithReferenceID:(NSString *)referenceID authToken:(NSString *)authToken parameters:(NSDictionary *)parameters completion:(void (^)(BCOVPlaylist *playlist, NSDictionary *jsonResponse, NSError *error))completionHandler;
Los detalles del uso del token para la adquisición de licencias de HLSe y FairPlay son manejados por el SDK.
Para obtener más detalles, consulte la Servicio de autorización de reproducción sección del SDK nativo para referencia de iOS.
Reproducción sin conexión
Si está utilizando el servicio de autorización de reproducción con reproducción sin conexión, existe un nuevo método para renovar una licencia de FairPlay que acepta un token de autorización:
// Request license renewal
[BCOVOfflineVideoManager.sharedManager renewFairPlayLicense:offlineVideoToken
video:video // recent video from Playback API or Playback Service class
authToken: authToken
Parameters: parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error)
{
// handle errors
}];
Cuando finalice la renovación de la licencia, el bloque de finalización se llamará con el mismo token de video sin conexión que se pasó. Un NSError
indicará cualquier problema que haya ocurrido (o nulo si no hay error).
Para obtener más detalles, consulte la Renovación de una licencia FairPlay sección del SDK nativo para referencia de iOS.
Respuestas
Las siguientes respuestas están asociadas con PAS:
- 200 - Se permite que la licencia continúe
- 401 - No se debe permitir que la entrega de la licencia continúe