Play Callback
お知らせ
このドキュメントは機械翻訳で作成された下書きであり、現在レビュー中です。機械翻訳の特性上、一部の内容が不正確であったり、韓国語の原文と異なる場合があります。より正確な情報については、韓国語のドキュメントをご参照ください。
Kollus VOD は、コンテンツセキュリティおよびアクセス管理のために、プレイヤー再生開始時点でお客様のサーバーの承認を受ける Play Callback 機能をサポートしています。 ユーザーが再生ボタンをクリックした際にリアルタイムで呼び出され、お客様のサーバーから有効な承認レスポンスを受信した場合のみコンテンツの再生が有効化されます。
注意事項
- チャンネルごとの制御ポリシー: Callback URL が設定されているチャンネルは、すべての再生リクエストに対してサーバーの承認が必須です。(未設定の場合、承認なしで即時再生)
- 識別子の必須包含: 再生用 JWT の生成時に
client_user_idパラメータを必ず含めてください。 - オフライン再生の制限: デバイスに保存されたコンテンツの再生制御は DRM Download Callback で処理します。
- 参考文書: DRM Download Callback
Callback 設定方法
Callback URL は Kollus VOD コンソールで設定できます。
Callback フロー
注意
- レスポンス仕様: Callback サーバーのレスポンスデータは必ず**JWT(JSON Web Token)**形式で返される必要があります。
- ヘッダー認証: HTTP レスポンスヘッダーに
X-KOLLUS-USERKEY: {CUSTOM_KEY}を必ず含める必要があります。- 確認方法: Kollus VOD コンソール > [設定] > [ユーザーキー]
- データタイプ: JSON 内のすべての整数型フィールド(
expiration_date、result、content_expiredなど)はinteger型で渡す必要があります。("1"のように string 型で送信した場合、処理に失敗します)
Callback タイプ
Play Callback は、呼び出しタイミングと目的に応じて 2 種類に分類されます。
kind 1(再生有効期限設定):再生開始前に、ユーザーの再生可能期限を動的に割り当てます。kind 3(最終再生承認):プレイヤーの準備完了直後に、現時点の再生権限を最終確認します。
リクエスト仕様
転送方式
- Method:
POST - Content-Type:
application/x-www-form-urlencoded - Data Format:
FormData
リクエストパラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
kind | integer | ◯ | Play Callback タイプ
|
client_user_id | string | ◯ | ユーザー ID(JWT 生成時に入力したclient_user_id) |
player_id | string | ◯ | Kollus Player 固有 ID |
hardware_id | string | - | ハードウェア ID(Windows 環境など識別可能な値が存在する場合に提供) |
device_name | string | - | デバイスモデル名 |
media_content_key | string | ◯ | メディアコンテンツキー |
localtime | integer | - | リクエスト時点のデバイス時刻(Unix timestamp) |
uservalues | JSON string | - | カスタム変数(uservalue0〜uservalue99) |
uservalues の例
{
"uservalue0": "class_code_01",
"uservalue1": "product_code_02",
"uservalue99": "custom_code_03"
}
レスポンス仕様
kind 1 レスポンスフィールド
kind 1レスポンスは、ユーザーの権限を定義し、セキュリティオプション(キャプチャー遮断、仮想マシン環境の検出など)を動的に制御するために使用されます。
data フィールド
注意
有効期限日時(expiration_date)は Kollus システムに記録された後、修正または取り消しが不可能です。必ず正確な Unix timestamp 値を割り当ててください。
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
expiration_date | integer | ◯ | 再生有効期限日時(Unix timestamp)
|
result | integer | ◯ | 承認結果
|
message | string | - | 再生遮断(result: 0)時にプレイヤー画面に表示する案内メッセージ
|
vmcheck | integer | - | (HTML5 Player for PC 専用) 仮想マシン(VM)環境での再生許可
|
disable_tvout | integer | - | 外部ディスプレイ出力の許可(チャンネルのデフォルトポリシーより優先適用)
|
expiration_playtime | integer | - | 再生制限時間(sec)
|
cpcheck | integer | - | キャプチャープログラム検出機能の有効化(PC)
|
exp フィールド
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
exp | integer | - | JWT 有効期限日時(Unix timestamp) |
kind 1 レスポンス例
{
"data" : {
"expiration_date": 1402444800,
"vmcheck": 1,
"disable_tvout": 1,
"expiration_playtime": 1800,
"result": 1
},
"exp" : 1477558242
}
kind 3 レスポンスフィールド
kind 3レスポンスは、再生直前にユーザーの現在の権限状態を最終確認する目的で使用されます。
data フィールド
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
content_expired | integer | - | 再生有効期限の状態
|
result | integer | ◯ | 承認結果(resultの値がcontent_expiredの設定より優先適用されます。)
|
message | string | - | 再生遮断(result: 0またはcontent_expired: 1)時にプレイヤーに表示する案内メッセージ
|
exp フィールド
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
exp | integer | - | JWT 有効期限日時(Unix timestamp) |
kind 3 レスポンス例
{
"data" : {
"content_expired": 1,
"result": 1
},
"exp" : 1477558242
}