プレイヤー承認API

承認APIリクエストこそが、Ooyalaのコンテンツ保護機能の重要な要素なのです。

認証APIへのリクエストは次の構文に従います。
[GET] /sas/player_api/v1/authorization/embed_code/pcode/ListOfCommaSeparatedEmbedCodes?query_string_paramters		
		

例:

http://player.ooyala.com/sas/player_api/v1/authorization/embed_code/R0Y3Y6HtBEQtRUoC55GY8DTF4pGA/44azdwNDpSWUvfd8F30d55tXY0YH9njH?device=html5&domain=www.ooyala.com&supportedFormats=m3u8%2Cmp4		
	

ルート属性

次の表はすべてのルート属性を示します。
プロパティ 説明
pcode プロバイダーコード
ListOfCommaSeparatedEmbedCodes このリストでは、embedコード(コンテンツIDかアセットID)をコンマ区切りで列挙していください。
Note: ここでは、外部識別子を使えません。渡された値は実際のembedコード(アセットID)でなければいけません。

クエリー文字列パラメータ

次の表はルートのクエリー文字列パラメータを説明しています。リクエストは 次と一致する複数の追加的クエリー文字列パラメータをもつことができます。唯一の 必須パラメータはdomainです。
パラメータ 説明 必須?
domain プレイヤーembedのドメイン。 はい
timestamp リクエスト発行時のタイムスタンプ (エポック 時間)。

デフォルト:サーバーが受け取ったタイムリクエスト

いいえ
supported_formats 対応形式を表すカンマ区切りの値のリスト。 形式の対応はデバイスにより制限されるため、通常このパラメータの値は デバイスタイプと連結されています。

有効値:以下の表を参照

いいえ
device カンマ区切りの再生用デバイスのリスト

有効値: 以下の表をご覧ください

いいえ
jsonp このパラメーターの値は、返ってくるJSONPの中でラッパー として使用されます。

デフォルト:JSON

いいえ
embed_token Ooyala デベロッパーガイドの”Ooyalaプレイヤートークン”のセクションにて説明されています。 いいえ
auth_token 認証用トークン。以下で説明されています。 同時ストリーム数制限の視聴者への適用 いいえ

対応形式およびデバイス

supported_formats パラメータは、カンマで区切られた以下の値のリストになります。
形式
HDS hds
RTMP RTMP
HLS m3u8
MP4 mp4
Akamai HD akamai_hd
Widevine HLS wv_hls
Widevine MP4 wv_mp4
Widevine WVM wv_wvm
Adobe Access HLS faxs_hls
MicroSoft Smooth Streaming
Note: smooth streamingに関しては、 device (以下参照)が GENERICでなければいけません。
smooth
device パラメーターは、カンマで区切られた以下の値のリストになります。
  • IPHONE
  • IPAD
  • APPLE_TV
  • ANDROID_SDK
  • ANDROID_3PLUS_SDK
  • ANDROID_HLS_SDK
  • HTML5
  • GENERIC_FLASH
  • GENERIC

承認APIからのレスポンス

呼び出し側が承認リクエストを発行すると、承認APIは該当するリストに含まれるそれぞれのembedコードに 対する承認ステータスを表すJSON配列を呼び出し側に返します。以下に承認APIからのレスポンスのサンプルを示します。

	{
	"debug_data": {
		"server_latency": "21.919",
		"request_id": "domU-12-31-39-0B-D2-11_1346804527_57",
		"user_info": {
			"ip_address": "204.124.203.201",
			"continent": "NORTH AMERICA",
			"country": "US",
			"request_timestamp": "1346804527",
			"language": "ja-jp",
			"device": "html5",
			"timezone": -7,
			"domain": "www.ooyala.com"
		}
	},
	"signature": "0pobcTRSLoiSZchrMI7Aeoub05/OKRIavq36BgW74lU=\n",
	"authorization_data": {
		"44azdwNDpSWUvfd8F30d55tXY0YH9njH": {
			"authorized": true,
			"message": "authorized",
			"code": "0",
			"request_timestamp": "1346804527",
			"retry": null,
			"streams": [
				{
					"delivery_type": "hls",
					"url": {
    					"data": "aHR0cDovL3BsYXllci5vb3lhbGEuY29tL3BsYXllci9pcGhvbmUvNDRhemR3TkRwU1dVdmZkOEYzMGQ1NXRYWTBZSDluakgubTN1OA==",
						"format": "encoded"
					}
				}
			]
		}
	}
}
		
	

レスポンスの要素

レスポンスの重要部分はサンプル内で太字で表されています。レスポンスの重要部分:

  1. debug_dataはデータのデバッグにのみ使用します。いつでも変更できます。
  2. レスポンスの署名 (次のセクション「出力の署名方法」にて説明) は第三者によってレスポンスが改変されていないことを保証するために使用します。もっとも重要なハッシュは“authorization-data”ハッシュで、承認リクエストの結果が含まれています。以下に可能性のあるコードの列挙を示します。メッセージペア (承認されたものはバイナリのtrue/falseの値を持ちます)。今後承認処理にさらなるパラメータを加えることにより、このリストは継続して変化していきます。将来的な不具合に対してよりシステムに可視性を与えます。
  3. embedコードが承認されるとストリームへアクセスするためのbase64でエンコードされたURLを含むストリームが含まれます。それぞれのストリームは以下の承認結果とともに返ってきます。
    • "authorized"(承認済み)
    • “unauthorized parent"(未承認のペアレント)
    • "unauthorized domain"(未承認のドメイン)
    • "unauthorized location"(未承認の場所)
    • "unauthorized device"(未承認のデバイス)
    • “current time is before the flight start time" (フライト開始時間以前)
    • "current time is after the flight end time" (フライト終了時間以後)
    • "current time is outside any availability period" (繰り返しフライトタイム外)
    • "this is not a recognized embed code"(embedコードが正しくありません)
    • "invalid signature" (リクエスト内の署名が不正。トークンベースの再生使用時など)
    • "missing parameters" (必須パラメータがありません)
    • "missing rule set" (シンジケーショングループではなく、ルールセットを使用して承認する時)
    • “unauthorized” (めったに使用されることのないメッセージ。より具体的なメッセージの使用推奨)
    • "missing pcode"(pcodeがありません)
    • "invalid token" (トークンベース再生およびAdobe Pass用のエラーコード)

Widevineストリームを含むレスポンスには、追加プロパティ widevine_server_pathが返されます。 Widevineライセンスの取得およびトークンを復号化するために、再生SDKへストリームURLと共にこの値が渡されます。

{
  "authorization_data":{
     "huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW":{
        ...
        "streams":[
           {
              "delivery_type":"wv_wvm",
              "url":{
                 ...
              },
              "widevine_server_path":"http://player.ooyala.com/sas/drm2/lvcjAxOj82_rjlIAJ6Jr8ZZqGP-s/huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW/widevine/ooyala"
           }
        ]
     }
  },
  "debug_data": ...,
  "signature":"Fo6ewzq2tTrLJrFmjo5eQpeKUOoLvhSen7KLjrFU1YQ=\n"
}

視聴者ごとの同時ストリーム数制限のために、同時ストリーム数制限の視聴者への適用で説明されている追加プロパティが返ります。

この記事はお役にたちましたか?