소개
Brightcove의 PAS(Playback Authorization Service)는 DRM 보호 또는 HLSe(HTTP 라이브 스트리밍 암호화) 콘텐츠와 함께 Dynamic Delivery를 사용할 때 추가 보안 수준을 제공합니다.
PAS를 사용하면 라이센스 요청이 서명된 JSON 웹 토큰(JWT) .
비디오가 플레이어에 로드되고 소스가 선택되면 비디오 라이센스를 요청할 때 사용됩니다.
PAS에 대한 자세한 내용은개요: 재생 권한 부여 서비스가 포함된 DRM문서.
안드로이드 구현
Android용 기본 SDK는 현재 HLSe 및 Widevine DASH 소스용 PAS를 지원합니다. 단일 비디오 또는 재생 목록에 대한 Brightcove 카탈로그 요청의 일부로 인증 토큰을 제공합니다.
PAS를 사용하여 Brightcove 카탈로그를 요청하려면 다음 단계를 따르십시오.
-
생성
HttpRequestConfig
개체를 만들고 여기에 표시된 대로 Brightcove 인증 토큰을 설정합니다.HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder() .setBrightcoveAuthorizationToken(myToken) .build();
Authorization 토큰의 값은 JSON Web Token의 값이 됩니다.
-
생성한 후에는
HttpRequestConfig
개체를 다음 카탈로그 메서드 중 하나로 전달할 수 있습니다.비디오 요청의 경우 다음 중 하나를 사용합니다.
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_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);
}
});
자세한 내용은오프라인 재생 샘플 앱 .
응답
다음 응답은 PAS와 연결됩니다.
- 200 - 라이센스를 계속 사용할 수 있습니다.
- 401 - 라이센스 전달을 계속할 수 없습니다.
제한 사항
현재 릴리스에는 다음과 같은 제한이 있습니다.
- Chromecast는 재생 승인과 함께 지원되지 않습니다.
iOS 구현
Brightcove의 재생 인증 서비스를 사용할 때 인증 토큰을 전달할 수 있는 재생 서비스 방법을 사용해야 합니다.
비디오 요청의 경우 다음 중 하나를 사용합니다.
- (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
}];
라이선스 갱신이 완료되면 전달된 것과 동일한 오프라인 비디오 토큰으로 완료 블록이 호출됩니다. NS NSError
발생한 문제를 표시합니다(오류가 없으면 nil).
자세한 내용은 FairPlay 라이선스 갱신 iOS용 네이티브 SDK 참조 섹션.
응답
다음 응답은 PAS와 연결됩니다.
- 200 - 라이센스를 계속 사용할 수 있습니다.
- 401 - 라이센스 전달을 계속할 수 없습니다.