メインコンテンツまでスキップ

Play Callback

Kollus VOD は、コンテンツセキュリティおよびアクセス管理のために、プレイヤー再生開始時点でお客様のサーバーの承認を受ける Play Callback 機能をサポートしています。 ユーザーが再生ボタンをクリックした際にリアルタイムで呼び出され、お客様のサーバーから有効な承認レスポンスを受信した場合のみコンテンツの再生が有効化されます。

注意事項​

  • チャンネルごとの制御ポリシー: Callback URL が設定されているチャンネルは、すべての再生リクエストに対してサーバーの承認が必須です。(未設定の場合、承認なしで即時再生)
  • 識別子の必須包含: 再生用 JWT の生成時にclient_user_idパラメータを必ず含めてください。
  • オフライン再生の制限: デバイスに保存されたコンテンツの再生制御は 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(最終再生承認):プレイヤーの準備完了直後に、現時点の再生権限を最終確認します。
kind 3 の区別

kind の値はコールバックごとに別途定義されます。プレイコールバックの kind 3(最終再生承認)は、DRM ダウンロードコールバックの kind 3(オフライン再生権限確認)とは別のコールバックです。

リクエスト仕様​

転送方式​

  • Method: POST
  • Content-Type: application/x-www-form-urlencoded
  • Data Format: FormData

リクエストパラメータ​

パラメータタイプ必須説明
kindinteger◯Play Callback タイプ
  • 1: 再生有効期限設定
  • 3: 最終再生承認
client_user_idstring◯ユーザー ID(JWT 生成時に入力したclient_user_id)
player_idstring◯Kollus Player 固有 ID
hardware_idstring-ハードウェア ID(Windows 環境など識別可能な値が存在する場合に提供)
device_namestring-デバイスモデル名
media_content_keystring◯メディアコンテンツキー
localtimeinteger-リクエスト時点のデバイス時刻(Unix timestamp)
uservaluesJSON 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_dateinteger◯再生有効期限日時(Unix timestamp)
  • 最大値: 2145916799(2037-12-31 23:59:59)
resultinteger◯承認結果
  • 0: 異常(再生遮断)
  • 1: 正常(再生許可)
messagestring-再生遮断(result: 0)時にプレイヤー画面に表示する案内メッセージ
  • PC は再生 URL にloadcheck=0パラメータを含める必要があります。
    • 例: https://v.jp.kollus.com/{MEDIA_CONTENT_KEY}?loadcheck=0
vmcheckinteger-(HTML5 Player for PC 専用) 仮想マシン(VM)環境での再生許可
  • 0: 許可
  • 1(デフォルト): 仮想マシン環境の検出および遮断
disable_tvoutinteger-外部ディスプレイ出力の許可(チャンネルのデフォルトポリシーより優先適用)
  • 0: 許可(App Player for iOS 使用時にキャプチャー遮断機能が無効化される場合があります)
  • 1: 遮断
expiration_playtimeinteger-再生制限時間(sec)
  • 0またはnull: 制限なし
cpcheckinteger-キャプチャープログラム検出機能の有効化(PC)
  • 0: 無効
  • 1(デフォルト): 有効

exp フィールド​

フィールドタイプ必須説明
expinteger-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_expiredinteger-再生有効期限の状態
  • 0: 再生可能
  • 1: 再生遮断(期限切れ)
resultinteger◯承認結果(resultの値がcontent_expiredの設定より優先適用されます。)
  • 0: 異常(再生遮断)
  • 1: 正常(再生許可)
messagestring-再生遮断(result: 0またはcontent_expired: 1)時にプレイヤーに表示する案内メッセージ
  • PC は再生 URL にloadcheck=0パラメータを含める必要があります。
    • 例: https://v.jp.kollus.com/{MEDIA_CONTENT_KEY}?loadcheck=0

exp フィールド​

フィールドタイプ必須説明
expinteger-JWT 有効期限日時(Unix timestamp)

kind 3 レスポンス例​

{
"data" : {
"content_expired": 1,
"result": 1
},
"exp" : 1477558242
}