- 印刷する
- PDF
コンテンツ認証
- 印刷する
- PDF
Classic/VPC環境で利用できます。
コンテンツ認証ではスクリプトコードを修正して再生ソースに Secure Tokenを適用する方法と、MultiDRMを設定する方法を説明します。
Secure Token
token
プロパティで再生ソースに Secure Tokenを適用して OneTimeUrlをサポートします。また、player.tokenChange
プロパティで動画の再生中に中断なしに Secure Tokenを交換できます。
Secure Tokenに関する詳細は CDN+ご利用ガイドをご参照ください。
ユースケースは次の通りです。
// 動画(MP4)
new ncplayer('video1', {
autostart: true,
playlist: [
{
file: 'https://CDNドメイン/example_video_01.mp4',
},
],
token: 'token=st=1675320871~exp=1675320901~acl=....', // Secure Token
});
//トークン交換
player.tokenChange('token=st=1675320871~exp=1675320901~acl=....') //再生中に新規トークンに交換
MultiDRM
playlist.drm
プロパティで MultiDRMを設定します。ユースケースは次の通りです。
let player;
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
playlist: [
{
drm:{
'com.apple.fps':{
certificateUrl: '{Certificate URL}',
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'Content-type': 'application/x-www-form-urlencoded',
'pallycon-customdata-v2':'{FairPlay用 Token}'
},
src : '{hls url}'
},
'com.widevine.alpha':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{Widevine用 Token}'
},
src : '{dash url}'
},
'com.microsoft.playready':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{PlayReady用 Token}'
},
src : '{dash url}'
},
},
poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
description: {
title: "NAVERクラウド",
create_at: "2022-12-31",
profile_name: "Naver Cloud Platform",
profile_image: "https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png
},
}
],
controlBtn: {
play: true,
fullscreen: true,
volume: true,
times: true,
pictureInPicture: true,
setting: true,
subtitle: true
},
autostart: false
});
});
MultiDRMを使用するには、HLSと DASHのいずれもサポートするように VOD Stationサービスで2つのチャンネルに構成する必要があります。
MultiDRMは SSL/TSLが適用された https環境でのみ動作します。
MultiDRMは Widevine、PlayReady、FairPlay(FPS)をサポートします。
Video Player Enhancementサービスは Pallycon MultiDRMを公式サポートしています。
DRM機能を使用するには、事前に外部の DRM供給会社との契約が必要です。
DRMのタイプ
- Widevine: Googleで提供する DRM技術規格として、Common Encryption規格に応じて AES-128方式で暗号化します。
- PlayReady: Microsoftで提供する DRM技術規格として、Common Encryption規格に応じて AES-128方式で暗号化します。
- FairPlay: Appleで提供する DRM技術規格として、それぞれの HLSセグメントを Sample-AES方式で暗号化します。
サポート状況
ブラウザ Widevine PlayReady FairPlay Internet Explorer(11+ on Windows 8.1+) X O
(MPEG-DASH)X Microsoft Edge(Windows 10+) X O
(MPEG-DASH)X Chrome(35+ on Windows 7.0+, 57+ on Android 4.4+) O
(MPEG-DASH)X X Firefox(47+ on Windows 7.0+) O
MPEG=DASHX X Safari(8+ on Mac OS 10.10+, 11.2+ on iOS 11.2+) X X O
(HLS)
Video Player Enhancementサービスは使用中のブラウザがサポートする DRMに応じて状況に合う再生ソース(HLSまたは DASH)を自動で選択します。
One Click Multi DRM
Video Player Enhancementサービスと One Click Multi DRMサービスを連携して DRMを適用できます。
FPS Certificateとライセンス発行をリクエストするための Endpoint(エンドポイント)とリクエストヘッダを確認します。
- One Click Multi DRMサービスとの連携は、Video Player Enhancementバージョン1.1.1以降から可能です。
- Apple FairPlayの場合、FPS Certificateとライセンスの署名(X-NCP-APIGW-SIGNATURE-V2)をそれぞれ作成する必要があります。作成に関する詳細については、シグネチャ作成ガイドをご参照ください。
FPS Certificateのリクエスト(Apple FairPlay専用)
FPS Certificateをリクエストするためのエンドポイントとリクエストヘッダは、次の通りです。
Endpoint
GET https://multi-drm.apigw.ntruss.com/api/v1/license/fairplay
リクエストヘッダ
項目 要否 説明 X-NCP-REGION_CODE O 利用中のサービスリージョンコード - 韓国: KR
- シンガポール: SGN
- 米国: USWN
- 日本: JPN
- ドイツ: DEN
X-NCP-IAM-ACCESS-KEY O ポータルまたは Sub Accountが発行した Access Key ID X-NCP-APIGW-TIMESTAMP O 1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす X-NCP-APIGW-SIGNATURE-V2 O Access Key ID値と Secret Keyで暗号化した署名で、HMAC暗号化アルゴリズムは HmacSHA256を使用
ライセンス発行のリクエスト(FairPlay, Widevine, PlayReady共用)
ライセンス発行をリクエストするためのエンドポイントとリクエストヘッダは、次の通りです。
Endpoint
POST https://multi-drm.apigw.ntruss.com/api/v1/license
リクエストヘッダ
項目 要否 説明 X-DRM-TOKEN O One Click Multi DRMライセンス発行に必要なデータを含む暗号化されたトークン値 X-NCP-REGION_CODE O 利用中のサービスリージョンコード - 韓国: KR
- シンガポール: SGN
- 米国: USWN
- 日本: JPN
- ドイツ: DEN
X-NCP-IAM-ACCESS-KEY O ポータルまたは Sub Accountが発行した Access Key ID X-NCP-APIGW-TIMESTAMP O 1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす X-NCP-APIGW-SIGNATURE-V2 O Access Key ID値と Secret Keyで暗号化した署名で、HMAC暗号化アルゴリズムは HmacSHA256を使用
ユースケース
One Click Multi DRMを適用するための Apple FairPlayと Widevine/PlayReadyのユースケースは、次の通りです。
- Apple FairPlay
document.addEventListener('DOMContentLoaded', async ()=> { await ncplayerDRM('myElement',{ playlist: [ { drm:{ 'com.apple.fps':{ certificateUri: '{FPS Certificate Endpoint}', certificateRequestHeader:{ 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp, 'X-NCP-APIGW-SIGNATURE-V2': signature, }, licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM FPS TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.m3u8' } }, poster: 'http://example.com/myVideoThumb.png', } ], autostart: true }); });
- Widevine/PlayReady
document.addEventListener('DOMContentLoaded', async ()=> { await ncplayerDRM('myElement',{ playlist: [ { drm:{ 'com.widevine.alpha':{ licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM WIDEVINE TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.mpd' }, 'com.microsoft.playready':{ licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM PLAYREADY TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.mpd' }, poster: 'http://example.com/myVideoThumb.png', } } ], autostart: true }); });
DRMテスト
スクリプトコードを作成して DRMテストを行うことができます。
DRMテストを行うには、デフォルトのプレイヤー実行スクリプト(ncplayer()
)ではなく、別の実行スクリプト(ncplayerDRM()
)を利用する必要があります。
// DRM専用スクリプトコードを利用します。
// DOMが完全にロードされて実行することで、DRMがエラーなく実行されます。
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{});
})
Widevine/PlayReady
Widevineまたは PlayReadyタイプの DRMをテストするスクリプトは、次の通りです。
- Widevineまたは PlayReady DRMをテストするには、次の情報が必要です。
- DASH再生ソースの URL
- DRMトークン値
- Widevineは Chromeブラウザ、PlayReadyは Windows OS Edgeブラウザでテストできます。
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
playlist: [
{
drm:{
'com.widevine.alpha':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{Token}'
},
src : '{dash url}'
},
'com.microsoft.playready':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{Token}'
},
src : '{dash url}'
},
},
poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
}
],
});
});
FairPlay(FPS)
FairPlayタイプの DRMをテストするスクリプトは、次の通りです。
- FairPlay DRMをテストするには、次の情報が必要です。
- HLS再生ソースの URL
- Certificate URL(認証 URL)
- DRMトークン値
- Mac OS Safariブラウザでテストできます。
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
playlist: [
{
drm:{
'com.apple.fps':{
certificateUrl: '{Certificate URL}',
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'Content-type': 'application/x-www-form-urlencoded',
'pallycon-customdata-v2':'{Token}'
},
src : '{hls url}'
},
},
poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
}
],
});
});