Contacta con el soporte | Estado del sistema
Contenido de la página

    Uso de la autorización de reproducción DRM con los SDK nativos

    En este tema, aprenderá a utilizar el servicio de autorización de reproducción de Brightcove para recuperar videos ingeridos para Dynamic Delivery con los SDK nativos de Brightcove.

    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:

    1. 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.

    2. 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

    Página actualizada por última vez el 27 Jan 2022