Play Callback
概要
Kollus Security Playerで再生する際に顧客側で指定したURLを呼出す(Callback)機能を説明します。Agentインストール型及びモバイルPlayerアプリ, Player SDKの使用が前提になります。
Expire option
設定項目のdata-typeや値が範囲から外れた場合、エンドユーザーのコンテンツの利用に問題が発生する可能性があります。また、誤った設定値による使用回数の過剰などを回収する方法はありませんので設定に注意してください。
Expire date : 再生有効期限
data-type : integer, unixtime stamp
コンテンツの有効期限(再生可能期限)
終了日(日時)ex) 2014. 3. 3. 5時 45分 30秒 GMT → 1393825531
0 : unlimited (無制限)
最大値 : 2029年 12月 31日 23時 59分 59秒 (1893455999)
Play callback
Play callbackを使用するにはチャンネル編集ページの運用ポリシー、Play Callback項目にCallbackを受け取るURLを事前に登録する必要があります。
チャンネルにPlay Callbackを指定するとこのチャンネルから再生される全てのコンテンツはCallbackに対したレスポンスが確認されてから再生されるため、Callback URLは常にレスポンスができる状態を維持する必要があります。
注意:
顧客側のユーザID(サービスに登録された会員が特定できる情報)を含むメディアトークン(Media token)を生成してリクエストするとPlay Callbackが呼出されます。(メディアトークンの生成は別途文書を参考にしてください。)
Play Callback URLからレスポンスがないと再生されません。
Play Callbackはダウンロードされたコンテンツ(DRM Callback)とは動作が異なります。ダウンロードされたコンテンツはPlay Callbackではなく、DRM Callbackが適用されます。必要に応じてPlay CallbackとDRM Callbackに同一なURLを指定する場合、ストリーミングとダウンロードに対してのレスポンスを同時に受け取ることができます。
Callback flow

配信チャンネルにPlay CallbackのURL設定します。
ex> http://www.foo.com/auth.php を顧客のPlay Callback サーバーとする
Media tokenを生成して再生(ダウンロード)をリクエストします。
Kollus crypt SDKを使ってMedia tokenを生成します。
Kollus Security playerがhttp://www.foo.com/auth.php に以下の情報をPOST転送します。
kind : 1, 3
client_user_id : ユーザID(サービス会員情報)
Media token 生成の際に含まれたID
player_id : ユーザのデバイスID
device_name : ユーザのデバイス名
media_content_key : 再生するコンテンツキー
チャンネルに登録されたコンテンツのメディアコンテンツキー(ユニーク)
同じコンテンツを複数のチャンネルに登録する場合、それぞれのmedia_content_keyは全て異なります。
顧客のPlay Callbackサーバーは転送された上記の情報に基づいて以下のjson フォーマットのdataを次の方式に合わせてHttp Bodyに転送します。(顧客が認証データをPlayerに転送する全てのデータは必ずinteger型で転送しなければなりません。)
対応方式
Kollus crypt SDKで暗号化して転送
JWT Encodeして転送、アルゴリズムはHS256のみ対応しており、jsonフォーマットのdataをJWTのpayloadに追加してEncodingします。ヘッダーに指定された *ユーザーキー(X-KOLLUs-USERKEY)"を共に転送します。secret keyはCallbackリクエストの際に転送するcustom_keyパラメータ値を使用します。
Response JSON spec.
expiration_date
unixtime stamp (有効期限終了日のunixtime stamp) 最大値 : 2029年 12月 31日 23時 59分 59秒 (1893455999)
result
結果が正常の場合は1、異常の場合は0をリターンする。
content_expired
DRM コンテンツを強制的にexpireします。
Callback Kind
Play Callbackが呼出される状況は以下の三つのケースになります。
コンテンツのExpire情報をリクエストする場合 (kind:1)
Request
POST
Http POSTでリクエスト (parameterではない)
kind
1
client_user_id
ユーザーID, media_token 生成に使用されたclient_user_idと同一です。
player_id
ユーザーのデバイスID
hardware_id
デバイスのhardware ID (PC, 入力内容がある場合)
device_name
ユーザーデバイスのモデル名
media_content_key
再生するコンテンツのメディアコンテンツキー
uservalues
JSON format (VideoGatewayの呼出に使用されたuservalue0~9)
uservalues sample
uservalues={"uservalue0":"商品種類コード01","uservalue1":"商品名コード02","uservalue9":"生成コード03"}
VideoGateway(v.jp.kollus.com)の呼出に使用されたuservalue0~9 情報が一緒にリターンされます。
Response
Data
(int) expiration_date
有効期限終了日のunixtime stamp 最大値 : 2029年 12月 31日 23時 59分 59秒 (1893455999)
(int) result
0 (エラー), 1 (正常)
(string) message
0 (エラー)の場合、messageを追加すると状況に合うメッセージが表示されます。
PCで再生する場合、再生URLにloadcheck=0 パラメータを追加する必要があります。 EX. http://v.jp.kollus.com/{メディアコンテンツキー}?loadcheck=0
(int) vmcheck
0 (使用しない), 1 (使用する, default) virtual machineの確認有無、PC(v3)のみ使用可能
(array) play_section{ start_time, end_time }
プレビュー区間、秒単位で区分(end_timeをstart_timeより大きく指定)
(int) disable_tvout
0 (tvout 遮断なし), 1 (tvout 遮断) ここで指定しなかった場合、チャンネルポリシーのdisable_tvoutポリシーが適用されます。
(int) expiration_playtime
空白または0の場合、再生時間が適用されません。0より大きい場合該当秒だけ再生後に終了します。
exp
(int)
使用可能期限 unixtime stamp(オプション)
Example
コンテンツを再生する場合 (kind:3)
注意) Play Callbackに対したレスポンスが確認されてから再生が始まります。レスポンスがなければ再生できません。
Request
POST
Http POSTでリクエスト (parameterではない)
kind
3
client_user_id
ユーザーID, media_token 生成に使用されたclient_user_idと同一です。
player_id
ユーザーのデバイスID
device_name
ユーザーデバイスのモデル名
media_content_key
再生するコンテンツのメディアコンテンツキー
uservalues
JSON format (VideoGatewayの呼出に使用されたuservalue0~9)
Response
data
(int) content_expired
0 (再生可能), 1 (再生不可) 再生を遮断します。DRM Callbackと同一な仕様を維持するため同一項目で管理されます。
(int) result
0 (エラー), 1 (正常) 0の場合再生されません。たとえconent_expiredが1になっていてもexpireが適用されません。
(string) message
0 (エラー)の場合、またはcontent_expiredが1(再生不可)の場合にmessageを追加すると内容に合わせてメッセージが表示されます。
PCで再生する場合、再生URLにloadcheck=0 パラメータを追加する必要があります。 EX. http://v.jp.kollus.com/{メディアコンテンツキー}?loadcheck=0
exp
(int) expiration_date
使用可能期限 unixtime stamp(オプション) 最大値 : 2029年 12月 31日 23時 59分 59秒 (1893455999)
Example
Sample
Play callback url
http://www.foo.com/auth.php
コンテンツ有効期限 : 2014年 6月 10日 24:00まで
DATE (M/D/Y @ h : m : s): 6 / 10 / 2014 @ 24:0:0 UTC
Unix time stamp : 1402444800
http://www.epochconverter.com から1402444800値を変更することができます。※UTC基準(GMTではない)
kind1 : request expire option
request
URL : http://www.foo.com/auth.php
post data
kind=1
client_user_id=guest1
media_content_key=VXBW1VdY
uservalues={"uservalue0":"商品種類コード01","uservalue1":"商品名コード02","uservalue9":"生成コード03"}
response
kind3 : play content (expire content)
request
URL : http://www.foo.com/auth.php
post data
kind=3
client_user_id=guest1
media_content_key=VXBW1VdY
uservalues={"uservalue0":"商品種類コード01","uservalue1":"商品名コード02","uservalue9":"生成コード03"}
response
Code sample
以下のように顧客のDBが構成されていると想定したサンプルコードになります。

PHP sample
JSP sample
サービスサポート
サンプルコードについてのお問い合わせは担当までご連絡ください。
E-mail お問い合わせ > jp_team@catenoid.net
電話番号 > 03-4405-8462
Last updated