はじめに
デフォルトでは、ネイティブ SDK は Brightcove 再生 API と通信して、動画と再生リストのコンテンツを取得します。再生権限と制限を管理する新しいシステムは、Playback APIの前に配置され、DRMライセンスを使用して再生認証を提供します。
DRMの有無にかかわらず再生権を使用できますが、ランタイム制限を使用する場合は、JSON Web Token(JWT)を使用する必要があります。
ライセンスキー保護は、DRM保護またはHTTPライブストリーミング暗号化(HLSe)コンテンツで動的配信を使用するときに追加レベルのセキュリティを提供します。ライセンス要求は、署名されたものを使用して認証できますJSON Web Token(JWT)。
トークンは、ビデオがプレーヤーにロードされ、ソースが選択されると、ビデオライセンスを要求するときに使用されます。
この機能に慣れていない場合は、「概要」を参照してください。Brightcoveの再生制限資料。
要件
再生制限を使用するために必要な要件は次のとおりです。
Android
- Androidバージョン用のBrightcoveネイティブSDKを使用する必要があります6.11.0またはそれ以降
iOS
- iOSバージョン用のBrightcoveNativeSDKを使用する必要があります6.7.0またはそれ以降
Android:再生権の使用
再生権限と制限をチェックする Playback API リクエストを実行するには、次の手順に従います。
-
デフォルトでは、Android 用ネイティブ SDK は、ポリシーキーがある場合、再生 API へのリクエストを行います。再生権限を利用するには、リクエストとともにポリシーキーを送信しないでください。
のインスタンスを作成します
com.brightcove.player.edge.Catalog
ポリシーキーを提供せずに。例を次に示します。Catalog catalog = new Catalog.Builder(eventEmitter, accountId).build();
Brightcoveサンプルアプリをフォローしている場合は、次のようにアカウントIDを取得します。
getString(R.string.account)
-
オプション :ランタイム制限を使用する場合は、JWTトークンを作成し、カタログリクエストで渡す必要があります。
JWTトークンを作成するには、次の手順に従います。実行時の制限概要のセクション:Brightcoveの再生制限資料。
カタログリクエストでトークンを渡すには、を参照してください。ライセンスキー保護の使用:Androidセクション。
Android:ライセンスキー保護の使用
Android用のネイティブSDKは現在、HLSeおよびWidevineDASHソースのキー/ライセンス保護をサポートしています。単一のビデオまたはプレイリストに対するBrightcoveカタログリクエストの一部として認証トークンを提供します。
Brightcoveカタログリクエストを行うには、次の手順に従います。
-
作成する
HttpRequestConfig
オブジェクトを作成し、次のようにBrightcove認証トークンを設定します。HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder() .setBrightcoveAuthorizationToken("your jwt token") .build();
Authorizationトークンの値は、JSONWebトークンの値になります。
-
作成したら
HttpRequestConfig
オブジェクトを次のCatalogメソッドのいずれかに渡します。ビデオリクエストの場合は、次のいずれかを使用します。
findVideoByID(String, HttpRequestConfig, VideoListener)
findVideoByReferenceID(String, HttpRequestConfig, VideoListener)
プレイリストリクエストの場合は、次のいずれかを使用します。
findPlaylistByID(String, HttpRequestConfig, PlaylistListener)
findPlaylistByReferenceID(String, HttpRequestConfig, PlaylistListener)
HLSeおよびWidevineライセンス取得のトークン使用の詳細は、SDKによって処理されます。
コード例
次に、カタログリクエストを行うときに認証トークンを渡す方法を示す例を示します。
String myToken = "...";
HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
.setBrightcoveAuthorizationToken(myToken)
.build();
…
Catalog catalog = new Catalog(eventEmitter, accountId, policyKey, playbackApiBaseUrl);
catalog.findVideoByReferenceID(videoReferenceId, httpRequestConfig, new VideoListener(){...});
オフライン再生
オフラインカタログfindVideo
、requestPurchaseLicense
そしてrequestRentalLicense
すべてのメソッドはHttpRequestConfig
引数として。
下記がその例です。
private HttpRequestConfig httpRequestConfig;
private String pasToken = "your jwt 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);
}
});
詳細については、オフライン再生サンプルアプリを参照してください。
回答
PAS には、次の応答が関連付けられています。
- 200-ライセンスの続行が許可されています
- 401-ライセンス提供は続行できません
iOS: 再生権の使用
再生権限と制限をチェックする Playback API リクエストを実行するには、次の手順に従います。
-
デフォルトでは、iOS 用のネイティブ SDK は、ポリシーキーがある場合、Playback API へのリクエストを行います。再生権限を利用するには、リクエストとともにポリシーキーを送信しないでください。
のインスタンスを作成し
BCOVPlaybackService
、ポリシーキーをに設定しますnil
。例を次に示します。let playbackService = BCOVPlaybackService(accountId: kViewControllerAccountID, policyKey: nil)
-
オプション :ランタイム制限を使用する場合は、JWTトークンを作成し、カタログリクエストで渡す必要があります。
JWTトークンを作成するには、次の手順に従います。実行時の制限概要のセクション:Brightcoveの再生制限資料。
カタログリクエストでトークンを渡すには、を参照してください。ライセンスキー保護の使用:iOSセクション。
iOS: ライセンスキー保護の使用
キー/ライセンス保護を使用する場合は、認証トークンを渡すことができる再生サービスメソッドを使用する必要があります。これは、authToken
パラメータ。
ビデオリクエストの場合は、次のいずれかを使用します。
- (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;
プレイリストリクエストの場合は、次のいずれかを使用します。
- (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;
HLSeおよびFairPlayライセンス取得のトークン使用の詳細は、SDKによって処理されます。
詳細については、再生認証サービス iOS用ネイティブSDKリファレンスのセクション。
オフライン再生
オフライン再生で再生認証サービスを使用している場合、認証トークンを受け入れるFairPlayライセンスを更新するための新しい方法があります。
// 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
}];
ライセンスの更新が完了すると、渡されたのと同じオフラインビデオトークンを使用して完了ブロックが呼び出されます。アンNSError
発生した問題を示します(エラーがない場合はnil)。
詳細については、 FairPlayライセンスの更新 iOS用ネイティブSDKリファレンスのセクション。
回答
PAS には、次の応答が関連付けられています。
- 200-ライセンスの続行が許可されています
- 401-ライセンス提供は続行できません