Contactez le support | État du système
Contenu des pages

    Utilisation de l'autorisation de lecture DRM avec les SDK natifs

    Dans cette rubrique, vous apprendrez à utiliser le service d'autorisation de lecture de Brightcove pour récupérer les vidéos ingérées pour la diffusion dynamique avec les kits SDK natifs de Brightcove.

    introduction

    Le service d'autorisation de lecture (PAS) de Brightcove offre un niveau de sécurité supplémentaire lors de l'utilisation de Dynamic Delivery avec un contenu protégé par DRM ou HTTP Live Streaming Encryption (HLSe).

    Avec PAS, les demandes de licence seront authentifiées à l'aide d'un Jeton Web JSON (JWT).

    Il est utilisé lors de la demande de licence vidéo, une fois la vidéo chargée dans le lecteur et la source sélectionnée.

    Pour plus d'informations sur le PAS, consultez le Aperçu: DRM avec service d'autorisation de lecture document.

    Implémentation Android

    Le SDK natif pour Android prend actuellement en charge PAS pour les sources HLSe et Widevine DASH. Vous fournirez votre jeton d'autorisation dans le cadre de la demande de catalogue Brightcove pour une seule vidéo ou une liste de lecture.

    Pour effectuer une demande de catalogue Brightcove à l'aide de PAS, procédez comme suit:

    1. Créé un HttpRequestConfig objet et définissez le jeton d'autorisation Brightcove comme indiqué ici:

      HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
             .setBrightcoveAuthorizationToken(myToken)
             .build();
      

      La valeur du jeton d'autorisation sera la valeur de votre jeton Web JSON.

    2. Une fois que vous avez créé le HttpRequestConfig objet, vous pouvez le transmettre à l'une des méthodes Catalog suivantes:

      Pour une demande de vidéo, utilisez l'un des éléments suivants:

      findVideoByID(String, HttpRequestConfig, VideoListener)
      
      findVideoByReferenceID(String, HttpRequestConfig, VideoListener)
      

      Pour une demande de playlist, utilisez l'un des éléments suivants:

      findPlaylistByID(String, HttpRequestConfig, PlaylistListener)
      
      findPlaylistByReferenceID(String, HttpRequestConfig, PlaylistListener)
      

      Les détails de l'utilisation des jetons pour l'acquisition de licences HLSe et Widevine sont gérés par le SDK.

    Exemple de code

    L'exemple suivant montre comment transmettre votre jeton d'autorisation lors d'une demande de catalogue:

    String myToken = "...";
    HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
           .setBrightcoveAuthorizationToken(myToken)
           .build();
    …
    
    Catalog catalog = new Catalog(eventEmitter, accountId, policyKey, playbackApiBaseUrl);
    catalog.findVideoByReferenceID(videoReferenceId, httpRequestConfig, new VideoListener(){...});
    

    Lecture hors ligne

    Le catalogue hors ligne findVideo , requestPurchaseLicense et requestRentalLicense les méthodes prennent toutes un HttpRequestConfig comme argument.

    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);
        }
    });

    Pour plus de détails, consultez le Exemple d'application de lecture hors ligne.

    Réponses

    Les réponses suivantes sont associées au PAS:

    • 200 - La licence est autorisée à continuer
    • 401 - La délivrance de la licence ne doit pas être autorisée à se poursuivre

    Limites

    Il y a une limitation avec la version actuelle :

    • Chromecast n'est pas pris en charge avec l'autorisation de lecture.

    Implémentation iOS

    Lorsque vous utilisez le service d'autorisation de lecture de Brightcove, vous devrez utiliser les méthodes du service de lecture qui vous permettent de transmettre votre jeton d'autorisation.

    Pour une demande de vidéo, utilisez l'un des éléments suivants:

    - (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;
    

    Pour une demande de playlist, utilisez l'un des éléments suivants:

    - (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;
    

    Les détails de l'utilisation des jetons pour l'acquisition de licences HLSe et FairPlay sont gérés par le SDK.

    Pour plus de détails, consultez le Service d'autorisation de lecture section de référence du Kit de développement logiciel natif pour iOS.

    Lecture hors ligne

    Si vous utilisez le service d'autorisation de lecture avec lecture hors ligne, il existe une nouvelle méthode pour renouveler une licence FairPlay qui accepte un jeton d'autorisation:

    // 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
        }];
    

    Lorsque le renouvellement de la licence est terminé, le bloc d'achèvement sera appelé avec le même jeton vidéo hors ligne qui a été transmis. Un NSError indiquera tout problème survenu (ou nul s'il n'y a pas d'erreur).

    Pour plus de détails, consultez le Renouveler une licence FairPlay section de référence du Kit de développement logiciel natif pour iOS.

    Réponses

    Les réponses suivantes sont associées au PAS:

    • 200 - La licence est autorisée à continuer
    • 401 - La délivrance de la licence ne doit pas être autorisée à se poursuivre

    Dernière mise à jour de la page le 14 Feb 2022