Vonage Video API REST API リファレンス
OpenTok REST API を使用して、OpenTok セッションの生成、アーカイブの操作、およびライブストリーミング配信の操作を行います。この OpenTok サーバー用 SDK (に対して ジャワ, .NET, Node.js, PHP, パイソンそして ルビー) REST APIのメソッドの多くを実装しています。
このREST APIには、以下の機能に対応するメソッドが含まれています:
セッションの作成、シグナリング、およびモデレーション
- セッションの作成
- アプリサーバーから接続中のクライアントへシグナルを送信する
- クライアントエンドポイントにセッションからの切断を強制する
- ストリームの情報を取得する
- 公開されたオーディオをミュートするために、単一のストリームを強制的にミュートする
- セッション内のストリームに対して、配信中のオーディオをミュートするように強制する
- セッション内の接続の一覧表示
- セッションの移行
アーカイブ
- アーカイブ録画の開始
- アーカイブ録画の停止
- 掲載履歴
- アーカイブ情報の取得
- アーカイブの削除
- プロジェクトのアーカイブ ファイルのアップロード先として、S3 または Azure を 指定します
- プロジェクトのアーカイブ ファイルのアップロード先を削除する
- 構成済みアーカイブのレイアウトタイプを動的に変更する
- OpenTok ストリームの構成済みアーカイブレイアウトクラスの変更
- アーカイブに含めるストリームの選択
SIP相互接続
ライブ・ストリーミング放送
- ライブ配信を開始する
- ライブ配信の中止
- ライブ配信の一覧
- ライブ配信に関する情報の入手
- ライブ・ストリーミング放送中にレイアウトの種類を動的に変更する
- OpenTokストリームのライブストリーミングレイアウトクラスの変更
- ライブ・ストリーミング放送に含めるストリームの選択
ライブキャプション
エクスペリエンス・コンポーザー
オーディオ・コネクター
Account管理
- OpenTok アカウント用の新しいプロジェクトを作成する
- プロジェクトのAPIキーを一時停止する、または 再度有効にする
- プロジェクトを削除する
- 特定のプロジェクト、またはすべての プロジェクトに関する情報を確認する Account作成
- プロジェクト用の 新しいAPIシークレットを生成する
- プロジェクトのアーカイブ ファイルのアップロード先として、Amazon S3 または Microsoft Azure を 指定します
- プロジェクトのアーカイブ ファイルのアップロード先を削除する
について OpenTok SDK OpenTok REST API をラッピングし、OpenTok プラットフォームへの呼び出しを容易にする。
認証
REST API の呼び出しでは、カスタム HTTP ヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — それに加えて、 JSON Webトークン. 以下のクレームを含むJWTトークンを作成します:
{
"iss": "your_api_key",
"ist": "project",
"iat": current_timestamp_in_seconds,
"exp": expire_timestamp_in_seconds,
"jti": "jwt_nonce"
}
セット iss OpenTok API キーに設定してください。ほとんどの REST API 呼び出しでは、
Account 内の特定のプロジェクトに対応する API キーを使用してください。このキーは、
[プロジェクト] ページに表示されています。 Video APIアカウント.
ただし、以下のRESTメソッドは、OpenTokアカウントの登録済み管理者のみが利用できます。
これらのメソッドを使用するには、設定を行う必要があります。 iss ~へ
アカウント単位 APIキー。これはAccount管理者のみが利用可能です。
(参照: Account Management):
- OpenTok アカウント用の新しいプロジェクトを作成する
- プロジェクトのAPIキーを一時停止する、または 再度有効にする
- プロジェクトの削除
- 特定のプロジェクト、またはすべての プロジェクトに関する情報を取得する Account作成
- プロジェクト用の 新しいAPIシークレットを生成する
AccountレベルのAPIキーとシークレットを取得するには、ご自身の Video APIアカウントクリック アカウント設定 [in] 左側のメニューで、その下の OpenTok REST APIクリック Accountキーを表示する.
ほとんどのREST API呼び出しでは、次のように設定してください。 ist への "project"。ただし、以下の点については
Account Management RESTメソッド、set
ist への "account":
- OpenTok アカウント用の新しいプロジェクトを作成する
- プロジェクトのAPIキーを一時停止する、または 再度有効にする
- プロジェクトの削除
- 特定のプロジェクト、またはすべての プロジェクトに関する情報を取得する Account作成
- プロジェクト用の 新しいAPIシークレットを生成する
セット iat を現在のUnixエポックタイムスタンプ(トークンが作成された時)に秒単位で変換します。
セット exp をトークンの有効期限に設定します。セキュリティのため、トークン作成時間に近い有効期限(たとえば、作成後3分)を使用し、REST API呼び出しごとに新しいトークンを作成することをお勧めします。有効期限の最大許容範囲は5分です。
セット jti をJWTの一意な識別子に変換する。これはオプションである。JWTの JSONウェブトークン仕様 詳細はこちら。
OpenTok API シークレットを JWT シークレットキーとして使用し、これを HMAC-SHA256 暗号化アルゴリズムで署名してください。ほとんどの REST API 呼び出しでは、 Account 内の特定のプロジェクト用の API シークレットを使用してください。これは、 プロジェクトページで提供されています。 Video APIアカウント. ただし、以下のRESTメソッドは、OpenTokアカウントの登録済み管理者のみが利用可能です。 これらのメソッドを使用するには、 アカウント単位 API キーおよびシークレット(Account管理者のみが利用可能)をJWTのシークレット キーとして使用します(詳細は Account Management):
- OpenTok アカウント用の新しいプロジェクトを作成する
- プロジェクトのAPIキーを一時停止する、または 再度有効にする
- プロジェクトの削除
- 特定のプロジェクト、またはすべての プロジェクトに関する情報を取得する Account作成
- プロジェクト用の 新しいAPIシークレットを生成する
たとえば、次の Python コードは、OpenTok REST API の呼び出しで使用できるトークンを作成します。
import jwt # See https://pypi.python.org/pypi/PyJWT
import time
import uuid
print jwt.encode({"iss": "my-OpenTok-API-key",
"iat": int(time.time()),
"exp": int(time.time()) + 180,
"ist": "project",
"jti": str(uuid.uuid4())},
'my-OpenTok-API-secret',
algorithm='HS256')
を交換する。 my-OpenTok-API-key そして my-OpenTok-API-secret OpenTokのAPIキーとAPIシークレットを指定して。
注: JSON Web Tokens を使用する以前は、OpenTok REST API の呼び出しは、カスタム HTTP ヘッダーを使用して認証されていました: X-TB-PARTNER-AUTH OpenTokのAPIキーとAPIシークレットをコロンで連結した値を以下のように設定してください:
X-TB-PARTNER-AUTH: <api_key>:<partner_secret>
しかし、この認証方式( X-TB-PARTNER-AUTHである。 非推奨, 今後は認証にJSON Webトークンを使用してください。(この非推奨の認証方式は、2017年7月に利用できなくなります。)
セッションの作成
新しいセッションを生成します。
リソースのURL:
https://api.opentok.com/session/create
リソース動詞:
ポスト
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
を設定する。 Content-Type ヘッダを application/x-www-form-urlencoded:
Content-Type:application/x-www-form-urlencoded
を設定する。 Accept ヘッダを application/json:
Accept:application/json
POSTパラメータ
archiveName
自動アーカイブされるセッションのアーカイブに使用する名前。このオプションを設定すると、 archiveMode このオプションは、次のように設定する必要があります。 always そうしないとエラーが発生します。アーカイブ名の長さは最大80文字までです。エンコーディングの制限により、以下の特殊文字はコロン(:)に変換されます:~、-、_。名前を設定しない場合、および archiveMode オプションは次のように設定されています always, アーカイブ名は空になります。
archiveResolution
自動アーカイブセッションにおけるアーカイブの解像度。有効な値は「480x640」、「640x480」(デフォルト)、「720x1280」、 「1280x720」、「1080x1920」、および「1920x1080」です。このオプションを設定すると、 archiveMode このオプションは、次のように設定する必要があります。 always そうしないと、エラーが発生します。
location
Vonage Video API が、グローバルネットワーク内でセッションの位置を特定するために使用する IP アドレスです。ロケーションヒントが渡されない場合(これが推奨されます)、セッションは、セッションに最初に接続したクライアントの場所に基づいてメディアサーバーを使用します。 ロケーションヒントを渡すのは、おおよその地理的地域(およびその地域を代表する IP アドレス)がわかっており、最初に接続するクライアントがその地域外にある可能性がある場合に限ってください。セッションの地理的位置を代表する IP アドレスを指定してください。
p2p.preference
に設定する。 enabled クライアント同士でオーディオ・ビデオストリームを直接送信できるようにしたい場合は、以下に設定してください。 disabled OpenTok Media Router を使用するセッションの場合。(オプション。デフォルト設定は disabled -- このセッションでは OpenTok Media Router が使用されています。)
について OpenTok メディアルーター には次のようなメリットがある:
- OpenTok Media Router を使用すると、多者間セッションにおける帯域幅の使用量を削減できます。(p2p.preference プロパティが
enabled各クライアントは、サブスクライブしている各クライアントに個別のオーディオ・ビデオストリームを送信しなければならない)。
- OpenTok Media Router は、以下を活用することでユーザー体験の質を向上させることができます。 オーディオのフォールバックとビデオのリカバリー. これらの機能により、クライアントの接続状態が、購読しているストリームの動画を再生できないほど悪化した場合、そのクライアントでは動画の再生が停止され(他のクライアントには影響しません)、音声のみが再生されます。クライアントの接続状態が改善すると、動画の再生が再開されます。
- OpenTok Media Router は、以下の機能をサポートしています。 アーカイブ機能、これにより、OpenTokのセッションを録画、保存、および再生することができます。
を持つ。 p2p.preference このプロパティが「enabled」に設定されている場合、セッションではクライアント間でストリームを直接送信しようとします。ファイアウォールの制限によりクライアントが接続できない場合、セッションではOpenTok TURNサーバーを使用して音声・動画ストリームを中継します。
リクエスト例
POST /session/create HTTP/1.1
Host: https://api.opentok.com
X-OPENTOK-AUTH: json_web_token
Accept:application/json
location=10.1.200.30&p2p.preference=disabled
次のコマンドラインの例は、OpenTok Media Router を使用し、ロケーションヒントを指定するセッションを作成するものです:
export TB_url=https://api.opentok.com/session/create
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
datastr="location=10.1.200.30"
curl \
-X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Accept:application/json" \
-H "X-OPENTOK-AUTH:$json_web_token" \
-d $datastr \
$TB_url
次のコマンドラインの例は、(OpenTok Media Router を使用せずに)クライアント間でストリームを直接送信しようとするセッションを作成します。
export TB_url=https://api.opentok.com/session/create
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
datastr="p2p.preference=enabled"
curl \
-X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Accept:application/json" \
-H "X-OPENTOK-AUTH:$json_web_token" \
-d $datastr \
$TB_url
次のコマンドラインの例は、自動的にアーカイブされるセッションを作成するものです:
export TB_url=https://api.opentok.com/session/create
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
datastr="archiveMode=always"
curl \
-X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Accept:application/json" \
-H "X-OPENTOK-AUTH:$json_web_token" \
-d $datastr \
$TB_url
回答例
応答は、以下の形式のJSONデータです:
[
{
"session_id": "the session ID",
"project_id": "your OpenTok API key",
"create_dt": "The creation date",
"media_server_url": "The URL of the OpenTok media router used by the session -- ignore this"
}
]
なお、「Accept:application/json」ヘッダーを含めない場合、レスポンス形式はXMLとなります。このXML形式のAPI呼び出しは非推奨となっています。
無効な OpenTok API キーまたは JWT トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
アプリサーバーから接続中のクライアントへシグナルを送信する
Signal REST API を使用して、アクティブな
OpenTok セッションのすべての参加者、またはそのセッションに接続している特定のクライアントにシグナルを送信します。サーバーから送信されるシグナルには、空の from 受信したシグナルのパラメータ
セッションに接続しているクライアント上のハンドラ。セッション内の
参加者から送信されたシグナルについては、 from このプロパティには、シグナルを送信した
クライアントの接続 ID が設定されますが、このケースでは関連する
接続が存在しません。
以下の2つの信号の例において、リクエスト本文は、
両方の type そして data フィールド。これらは、クライアントのシグナル受信ハンドラに渡される
型およびデータパラメータに対応しています。
type
文字列。最大長は128バイトで、文字(A~Zおよびa~z)、Numbers(0~9)、'-'、'_'、および'~'のみで構成されている必要があります。
data
文字列。最大長は8kbです。
そのセッションに接続しているすべてのクライアントに通知する
HTTP POSTリクエストを signal セッションの資料:
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
セッションに接続している特定のクライアントを通知する
HTTP POSTリクエストを signal 特定の接続IDを持つリソースで、
そのセッションに属するものです:
エラー応答の通知
エラーは、HTTPステータスコードとしてレスポンスに返されます:
400— 信号の特性の一つ —data,type,sessionIdまたはconnectionId— は無効です。403— あなたにはこの信号を送信する権限がありません。 認証情報を確認してください。404— で指定されたクライアントconnectionIdこのプロパティは セッションに関連付けられていません。413— タイプ文字列が最大長(128 バイト)を超えているか、 データ文字列が最大サイズ(8 kB)を超えています。
エラーが発生した場合、レスポンス本文は次のようになります:
{
"code" : 400,
"message" : "One of the signal properties — data, type, sessionId or connectionId — is invalid."
}
クライアントエンドポイントにセッションからの切断を強制する
アプリケーションサーバーは、そのクライアントの接続に対応するリソースに対してHTTP DELETEリクエストを送信することで、 OpenTokセッションからクライアントを切断することができます:
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
エラー応答
エラーは、HTTPステータスコードとしてレスポンスに返されます:
400— その主張の一つとして —sessionIdまたはconnectionId— は無効です。403— forceDisconnect を実行する権限がありません。 認証情報を確認してください。404— で指定されたクライアントconnectionIdこのプロパティは セッションに関連付けられていません。
エラーが発生した場合、レスポンス本文は次のようになります:
{
"code" : 404,
"message" : "Connection not found."
}
ストリームの情報を取得する
このメソッドを使用して、OpenTokのストリーム(またはセッション内のすべてのストリーム)に関する情報を取得します。
たとえば、このメソッドを呼び出すことで、OpenTok ストリームで使用されているレイアウトクラスに関する情報を取得できます。レイアウトクラスは、放送ストリームのレイアウト内でそのストリームがどのように表示されるかを定義します。 詳細については、以下を参照してください。 OpenTokの ストリームにライブストリーミングのレイアウトクラスを割り当てる.
session/stream への HTTP GET リクエスト
特定のストリームのレイアウトクラス情報を取得するには、 以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/session/<sessionId>/stream/<streamId>
-
交換
<apiKey>OpenTok APIキーを指定してください。 -
交換
<sessionId>セッションIDとともに。 -
交換
<streamId>ストリームIDとともに。
セッション内のすべてのストリームのレイアウトクラス情報を取得するには、以下のURLに対してHTTP GETリクエストを送信してください(末尾のストリームIDは省略してください):
https://api.opentok.com/v2/project/<apiKey>/session/<sessionId>/stream/
GETヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
応答
単一のストリームのレイアウトクラス情報を取得する場合、レスポンスのJSONデータには layoutClassList 配列である:
{
"id": "8b732909-0a06-46a2-8ea8-074e64d43422",
"videoType": "camera",
"name": "",
"layoutClassList": ["full"]
}
- について
layoutClassListプロパティは、ストリームのレイアウト・クラスの配列です。 - について
idプロパティはストリームIDである。 - について
videoTypeこのプロパティは「camera」、「screen」、または「custom」に設定されます。「screen」の動画は、 パブリッシャー側の画面共有を動画ソースとして使用します。「custom」の動画は、 HTMLのVideoTrack要素を動画ソースとして使用するWebクライアントによって配信されます。 - について
nameプロパティはストリーム名です (クライアントがストリームを公開したときに設定されていた場合)。
複数のストリームのレイアウトクラス情報を取得する場合、レスポンスのJSONデータには items
このプロパティは、セッション内のストリームのレイアウト情報を格納した配列です:
{
"count": 2
"items": [
{
"id": "8b732909-0a06-46a2-8ea8-074e64d43422",
"videoType": "camera",
"name": "",
"layoutClassList": ["full"]
},
...
]
}
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが 無効なJSONであることを示している可能性があります。あるいは、セッションIDが指定されていないか、無効な ストリームIDが指定されていることを示している可能性があります。
- 403 — 無効な OpenTok API キーまたは JWT トークンが渡されました。
- 404 — セッションは存在しますが、まだストリームが追加されていません。
- 408 — 無効なストリーム ID を指定しました。
- 500 — OpenTok サーバーエラー。
例
次のコマンドラインの例は、特定のストリームのレイアウトクラス情報を取得するものです:
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
session_id=23435236235235235235
stream_id=88ff99fc203a5bc
curl -i \
-X GET \
-H X-OPENTOK-AUTH:json_web_token \
https://api.opentok.com/v2/project/$api_key/session/$session_id/stream/$stream_id
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(「認証」を参照)に変換します。 - を設定する。
session_idセッションに値を追加します。 - を設定する。
stream_idストリームIDに値を割り当てる。
次のコマンドラインの例は、セッション内のすべてのストリームのレイアウトクラス情報を取得するものです。
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
session_id=23435236235235235235
curl -i \
-X GET \
-H X-OPENTOK-AUTH:json_web_token \
https://api.opentok.com/v2/project/$api_key/session/$session_id/stream/
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(「認証」を参照)に変換します。 - を設定する。
session_idセッションに値を追加します。
公開されたオーディオをミュートするために、単一のストリームを強制的にミュートする
OpenTok REST API を使用すると、特定のストリームの配信者に音声のミュートを強制することができます。
session/stream/mute への POST
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/session/<session_id>/stream/<stream_id>/mute
交換 <api_key> OpenTokプロジェクトのAPIキーを使用して(ご自身のプロジェクトページを参照してください)
Video APIアカウント). 置き換える <session_id> ストリームを含む
セッションのセッションIDを指定します。以下を置き換えてください <stream_id> ストリームIDとともに。
POSTヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証).
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは プロジェクトの詳細 オブジェクト.
-
400 — 無効なリクエスト。
-
403 — 認証エラー。
-
404 — 見つかりません。セッションまたはストリームが見つかりません。
-
500 — OpenTok サーバーエラー。
例
セッション内のストリームに対して、配信中のオーディオをミュートするように強制する
OpenTok REST API を使用すると、セッション内のすべてのストリーム(オプションで指定した ストリームの一覧を除く)について、配信中の音声を強制的にミュートにすることができます。また、このメソッドを使用して、 セッションの強制ミュート状態を解除することもできます(以下を参照)。
session/mute に POST する
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/session/<session_id>/mute
交換 <api_key> OpenTokプロジェクトのAPIキーを使用して(ご自身のプロジェクトページを参照してください)
Video APIアカウント). 置き換える <session_id> セッションIDとともに。
POSTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証).
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"active": true,
"excludedStreamIds": [
"excludedStreamId1",
"excludedStreamId2"
]
}
JSONデータには、以下のプロパティが含まれています:
-
active(ブール値、必須) — セッション内のストリームをミュートするかどうか(true) セッションのミュート状態を有効にする、またはセッションのミュート状態を無効にする(false). ミュート状態が有効になっている場合(true), セッションに公開されている現在および将来のすべてのストリーム (ただし、excludedStreamIdsarray) はミュートされます。 このメソッドをactiveプロパティをfalse, その後、そのセッションに公開される ストリームはミュートされません(ただし、すでにミュートされているストリームはそのままミュートされた状態のままです)。 -
excludedStreamIds(文字列の配列、オプション) — ミュート対象から除外する ストリームの ID。これはオプションのプロパティです。このプロパティを省略した場合、セッション内のすべての ストリームがミュートされます。このプロパティは、activeプロパティがtrue. そのとき、activeプロパティがfalse, 無視されます。の要素
excludedStreamIdsarray には、ミュート対象から除外したい ストリームのストリーム ID(文字列)が格納されます。除外するストリームの配列を含めたくない場合は、 本文の内容を何も記述しないでください。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは プロジェクトの詳細 オブジェクト.
-
400 — 無効なリクエスト。この応答は、リクエストデータ内のデータが 無効なJSONであることを示している可能性があります。
-
403 — 認証エラー。
-
404 — 見つかりません。セッションが見つかりません。
-
500 — OpenTok サーバーエラー。
例
以下の操作により、セッション内のすべてのストリーム(オプションで指定されたストリームの一覧を除く)の 公開オーディオがミュートされます:
セッションのミュート状態を解除するには(今後のストリームがミュートされないようにするには)、
以下の引数を指定して、このメソッドを再度呼び出してください。 active プロパティを false:
セッション内の接続の一覧表示
このメソッドを使用すると、プロジェクトに関連付けられた OpenTok セッションからの接続を一覧表示できます。
セッション/接続に対するHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/session/<sessionId>/connection
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身の Video APIアカウント.
交換 <sessionId> 接続を含むセッションのセッションIDを指定して。
結果を絞り込むために、オプションのクエリパラメータを追加することができます:
- offset(整数、省略可):返す最初の接続の0を基点とするインデックス。デフォルトは0(最も古い接続)です。
- count(整数、オプション):返す接続数の最大値。デフォルトは 50、最大値は 1000 です。
たとえば、次の呼び出しでは、400番目の位置から20個の接続を取得します:
https://api.opentok.com/v2/project/<api_key>/session/<sessionId>/connection?offset=400&count=20
GETヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダー「X-OPENTOK-AUTH」 とJSON Webトークン(JWT)を使用して認証を行う必要があります。詳しくは 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"count": 3,
"projectId" : "<api_key>",
"sessionId" : "<sessionId>",
"items": [{
"connectionId": "<connection_id_1>",
"createdAt": 1747655658197,
"connectionState": "Connected"
},{
"connectionId": "<connection_id_2>",
"createdAt": 1747655658227,
"connectionState": "Connected"
},{
"connectionId": "<connection_id_3>",
"createdAt": 1747655658258,
"connectionState": "Connecting"
}
]
}
JSONオブジェクトには以下のプロパティが含まれる:
- count — セッション内の接続の総数。
- projectId — お客様の OpenTok API キー。
- sessionId — セッションID。
- items — 取得された各接続を定義するオブジェクトの配列。返される結果セットでは、接続は古いものから新しいものの順に一覧表示されます。
items 配列内の各オブジェクトは接続を表しており、以下のプロパティを持っています:
- connectionId — 接続 ID。
- connectionState — 接続の状態:
- 「接続中」 — 接続はまだ確立の過程にあり、完全には確立されていません。
- 「接続済み」 — 接続が完全に確立され、セッションに接続されています。
- createdAt — 接続が確立された時点のタイムスタンプ。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表します。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。応答データには、OpenTok セッションの接続リストが含まれています。
- 400 — 無効なリクエスト。この応答は、クエリのパラメータの一部が無効であることを示している可能性があります。
- 403 — 認証エラー。
- 404 — セッションが見つかりません。
- 500 — OpenTok サーバーエラー。
例
以下の例では:
- API_KEY の値に、ご自身の OpenTok API キーを設定してください。
- JWT の値を有効な JSON Web トークンに設定します(参照: 認証).
- SESSION_ID の値を、ご自身の OpenTok セッション ID に設定してください。
次のコマンドラインの例は、セッションから最初の 50 件の接続を取得します。
次のコマンドラインの例は、そのセッションで最初に作成された接続を取得します:
次のコマンドラインの例は、セッション内で作成された 5 番目の接続から順に、2 つの接続を取得します。
次の例では、オフセットがセッション内の接続数よりも大きいため、接続は取得されません:
セッションの移行
必要に応じて、この方法を使用してセッションを別のサーバーに移行してください。 移行は、そのセッションに対して現在進行中の移行がなく、かつそのセッションが最近作成または移行されていない場合にのみ可能です。 (詳細は サーバーのローテーションとセッションの移行 開発者ガイド。)
注: 移行が開始されると、「migrate」機能を持つすべての接続は新しいサーバーに移行されます。「migrate」機能を持たない接続は、移行プロセスの一環として閉じられます。(参照: クライアントでのセッション移行を有効にする.)
リソースのURL:
https://api.opentok.com/v2/project/<api_key>/session/<sessionId>/migrate
交換 <api_key> OpenTokプロジェクトのAPIキーを使用して(ご自身のプロジェクトページを参照してください)
Video APIアカウント). 置き換える <session_id> 別のサーバーへ移行するセッションのセッションIDを指定します。
リソース動詞:
ポスト
POSTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証).
HTTPレスポンス
一部のエラー応答では、HTTPレスポンスコードに加えて、レスポンス本文に code エラーの具体的な原因を示すフィールド。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
202 — 受理されました。リクエストは有効であり、セッションは移行されます。
-
400 — 無効なリクエスト。この応答は、リクエストに何らかの情報が欠けていることを示している可能性があります。
-
403 — 認証エラー。トークンが未承認であるか、無効なため
-
404 — 見つかりません。セッションが見つかりません。
-
409 — 競合。現時点ではセッションを移行できません。これは、以下のいずれかの理由による可能性があります:
- コード 15214: 当該セッションでは、すでに移行処理が進行中です。
- コード 15215: セッションが最近作成または移行されました。
-
500 — OpenTokの内部サーバーエラー。
サンプルリクエスト
- の値を設定する。
API_KEYOpenTok APIキーに。 - の値を設定する。
JWTJSON Webトークン(「認証」を参照)に変換します。 - を設定する。
SESSION_ID移行対象のセッションのIDに値を設定します。
回答例
認証エラーの応答:
{
"code":15215,
"message":"Migration is not allowed shortly after session creation or a previous migration",
"description":"Migration is not allowed shortly after session creation or a previous migration"
}
アーカイブ録画の開始
OpenTok セッションのアーカイブの記録を開始するには、HTTP POST リクエストを送信してください。
アーカイブの録画を正常に開始するには、少なくとも1台のクライアントがセッションに接続されている必要があります。
OpenTok Media Router を使用しているセッション(メディアモードが「routed」に設定されているもの)のアーカイブのみを記録できます。メディアモードが「relayed」に設定されているセッションはアーカイブできません。(参照: OpenTok メディアルーターとメディアモード.)
詳細は OpenTok アーカイブ開発者ガイド.
アーカイブへのHTTP POST
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/archive
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身のプロジェクトページをご覧ください。 Video APIアカウント.
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
Content-Type ヘッダーを application/json に設定します:
Content-Type:application/json
POSTデータ
POSTデータとして、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId" : "session_id",
"hasAudio" : true,
"hasVideo" : true,
"layout" : {
"type": "custom",
"stylesheet": "the layout stylesheet (only used with type == custom)",
"screenshareType": "the layout type to use when there is a screen-sharing stream (optional)"
},
"name" : "archive_name",
"outputMode" : "composed",
"resolution" : "640x480",
"streamMode" : "auto"
}
JSONオブジェクトには以下のプロパティが含まれる:
sessionId(文字列) — (必須) アーカイブを開始したい OpenTok セッションのセッション ID
hasAudio(ブール値) — (オプション) アーカイブで音声を録音するかどうか(true:デフォルト、false:録音しない)。両方を設定した場合hasAudioそしてhasVideofalse に設定されている場合、このメソッドを呼び出すとエラーが発生します。
hasVideo(ブール値) — (オプション) アーカイブで動画を記録するかどうか(true:デフォルト、false:記録しない)。両方を設定した場合hasAudioそしてhasVideofalse に設定されている場合、このメソッドを呼び出すとエラーが発生します。
layout(オブジェクト) — 省略可能。アーカイブの初期レイアウトタイプを割り当てるには、これを指定します。これは、 整理済みのアーカイブ. このオブジェクトには3つのプロパティがあります:type,stylesheetそしてscreenshareType、これらはそれぞれ文字列です。の有効な値はlayoutプロパティは以下の通りです"bestFit"(ベストフィット)、"custom"(カスタム)、"horizontalPresentation"(水平プレゼンテーション)、"pip"(ピクチャー・イン・ピクチャー)、そして"verticalPresentation"(縦向き表示)。もし"custom"レイアウト・タイプを設定します。stylesheetプロパティのlayoutスタイルシートに異議を唱える。(その他のレイアウトタイプについては、stylesheetプロパティ。)以下の設定を行います。screenshareTypeセッションに画面共有ストリームが存在する場合に使用するレイアウトタイプを指定するプロパティです。(このプロパティはオプションです。)なお、screenshareTypeプロパティについては、typeプロパティを "bestFit "に設定する。stylesheetプロパティが設定されていません。初期レイアウトタイプを指定しない場合、アーカイブは最適なレイアウトタイプを使用します。詳細については、以下を参照してください。 構成されたアーカイブのビデオレイアウトをカスタマイズする.
maxBitrate(オプション) — アーカイブの最大ビデオビットレート(ビット/秒)。最小値は 100,000、最大値は 6,000,000 です。このオプションは、合成アーカイブでのみ有効です。 合成アーカイブのサイズを制御するには、動画の最大ビットレートを設定してください。この最大ビットレートは、動画のビットレートにのみ適用されます。出力アーカイブに音声が含まれている場合、そのビットは制限の対象外となります。maxBitrateプロパティの場合、アーカイブでは固定ビットレートが使用されます。両方を設定することはできません。maxBitrateプロパティとquantizationParameterプロパティ — そうするとエラーが発生します。
multiArchiveTag(文字列) — (オプション) 同じセッションの複数のアーカイブを同時に記録できるようにするには、これを設定します。進行中のセッションの同時アーカイブごとに、一意の文字列を設定してください。また、セッション内で手動でアーカイブを開始する場合も、このオプションを設定する必要があります。 自動的にアーカイブされました. 一意な値を指定しない場合はmultiArchiveTag, 特定のセッションでは、一度に1つのアーカイブしか記録できません。詳しくは 同時アーカイブ.
name(文字列) — (任意) アーカイブの名前(識別用)。アーカイブ名の最大長は255文字です。
outputMode(文字列) — (オプション) アーカイブ内のすべてのストリームを単一のファイルに記録するかどうか ("composed"(デフォルト)または個々のファイル("individual").参照 個々のストリームと構成されたアーカイブ.
quantizationParameter(数値) — (オプション) 合成アーカイブの量子化パラメータ (QP)。これは、動画の画質とファイルサイズのバランスを調整するものです。量子化パラメータを設定すると、アーカイブは可変ビットレートと一定の圧縮量子化を使用するようになり、シーンの切り替え時でも一貫した画質レベルが得られます。 有効な値は 15 から 40 までで、20 から 30 の範囲に設定すると、知覚上の画質に大きな違いが生じることなく、妥当な結果が得られます。 QPの値が低いほど、動画圧縮の量子化が細かくなり、動画品質が向上(動画の細部がより多く保持される)し、ファイルサイズも大きくなります。QPの値が高いほど、動画圧縮の量子化が粗くなり、動画品質が低下する一方で、ファイルサイズは小さくなります。量子化パラメータを設定できるのは、合成アーカイブのみです。設定quantizationParameter個別のストリームのアーカイブを作成しようとすると、エラーが発生します。次の両方を設定することはできません。quantizationParameterプロパティとmaxBitrateプロパティを使用するとエラーになります。
resolution(文字列) — (省略可) アーカイブの解像度。以下のいずれかです。"640x480"(SD横向き、デフォルト)、"1280x720"(HD 横向き)、"1920x1080"(FHD 横向き)、"480x640"(SDポートレート)、"720x1280"(HD縦向き)、または"1080x1920"(FHD 縦向き)。モバイルデバイスからの動画ストリーム(多くの場合、縦向きアスペクト比が使用される)を含むアーカイブには、縦向きアスペクト比を使用することをお勧めします。このプロパティは、合成されたアーカイブにのみ適用されます。このプロパティを設定し、さらにoutputModeプロパティ"individual", RESTメソッドへの呼び出しによりエラーが発生します。
streamMode(文字列) — (オプション) アーカイブに含まれるストリームを自動的に選択するかどうか ("auto"(デフォルト)または手動で("manual"). ストリームが自動的に選択される場合("auto")、そのセッション内のすべてのストリームをアーカイブに含めることができます。ストリームを手動で選択する場合は("manual")、``への呼び出しに基づいて、含めるストリームを指定します。 このRESTメソッド. アーカイブにストリームの音声、動画、あるいはその両方を含めるかどうかを指定できます。自動モードおよび手動モードのいずれにおいても、複合アーカイブを作成する際、アーカイブ作成ツールは以下に基づいてストリームを含めます。 ストリーム優先ルール.
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"createdAt" : 1384221730555,
"duration" : 0,
"hasAudio" : true,
"hasVideo" : true,
"id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
"name" : "The archive name you supplied",
"outputMode" : "composed",
"projectId" : 234567,
"reason" : "",
"resolution" : "640x480",
"sessionId" : "flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN",
"size" : 0,
"status" : "started",
"streamMode" : "auto",
"url" : null
}
JSONオブジェクトには以下のプロパティが含まれる:
createdAt— アーカイブの記録が開始された時刻のタイムスタンプ。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過ミリ秒数で表されます。hasAudio— アーカイブで音声を記録するかどうか(true)または記録しないかどうか(false)。hasVideo— アーカイブが動画を記録するかどうか(true)または記録しないかどうか(false)。id— 一意のアーカイブIDです。この値を後で使用するために保存しておいてください(例えば、 録音を停止する).multiArchiveTag— 同時アーカイブ用の固有タグ(設定されている場合)。name— 指定したアーカイブの名前(これは任意です)。outputMode— どちらか"composed"または"individual".参照 個々のストリームと構成されたアーカイブ.projectId— OpenTokのAPIキー。resolution— アーカイブの解像度(「640x480」、「1280x720」、「1920x1080」、 「480x640」、「720x1280」、または「1080x1920」)。このプロパティは、合成アーカイブに対してのみ設定されます。sessionId— アーカイブ対象の OpenTok セッションのセッション ID。status- に設定されている。"started".streamMode— アーカイブに含まれるストリームが自動的に選択されるかどうか("auto"(デフォルト)または手動で("manual").streams— 現在アーカイブ処理中のストリームに対応するオブジェクトの配列。これは、statusに設定する。"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId— アーカイブに含まれるストリームのストリームID。hasAudio— ストリームの音声がアーカイブに含まれるかどうか。hasVideo— ストリームの動画がアーカイブに含まれているかどうか。
以下の場合、HTTPレスポンスにはステータスコード400が返されます:
- セッションIDが指定されていないか、無効なセッションIDが指定されています。
- 現在、OpenTokセッションにアクティブに接続しているクライアントはいません。
- 無効な
resolution値である。 - について
outputModeプロパティが"individual"そして、あなたはresolutionプロパティおよび(個々のストリームアーカイブではサポートされていません)。 - 無効な
maxBitrate値、またはmaxBitrate個々のストリームアーカイブの値。(maxBitrate(これは、複合アーカイブでのみサポートされています。) - 無効な
quantizationParameter値、またはquantizationParameter個々のストリームアーカイブの値。(quantizationParameter(これは、複合アーカイブでのみサポートされています。) - 次の両方を指定します。
maxBitrateそしてquantizationParameter財産である。
無効な OpenTok API キーまたは JWT トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
セッションが存在しない場合、またはセッションは存在するがそれに接続しているクライアントがない場合、HTTPレスポンスには404ステータスコードが返されます。
OpenTok Media Router を使用していないセッションのアーカイブを開始しようとすると、HTTP レスポンスにステータスコード 409 が返されます。また、すでに録画中のセッションについて、 multiArchiveTag オプション。あるいは、一意な multiArchiveTag 値である。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
次のコマンドラインの例は、OpenTok セッションのアーカイブの記録を開始するものです。
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
session_id=2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4
name="Foo"
data='{"sessionId" : "'$session_id'", "name" : "'$name'"}'
curl \
-i \
-H "Content-Type: application/json" \
-X POST \
-d $data \
-H "X-OPENTOK-AUTH:$json_web_token" \
https://api.opentok.com/v2/project/$api_key/archive
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証). - を設定する。
session_idアーカイブしたいOpenTokセッションのセッションIDにこの値を指定します。 - を設定する。
nameアーカイブ名に値を追加します(これは任意です)。
アーカイブ録画の停止
アーカイブの記録を停止するには、HTTP POSTリクエストを送信してください。
アーカイブの記録は、4時間(14,400秒)経過後、または最後のクライアントがセッションから切断されてから60秒後、あるいは最後のクライアントが配信を停止してから60分後に停止します。ただし、 自動アーカイブ 最大4時間ずつ、連続する複数のファイルに録画を継続できます。詳細については、以下を参照してください。 アーカイブの保存期間
このメソッドを呼び出すのは、 自動アーカイブ 効果はありません。自動アーカイブ機能は、最後のクライアントがセッションから切断されてから60秒後、または最後のクライアントがセッションへのストリーム配信を停止してから60分後まで、それぞれ最大4時間(14,400秒)の長さの連続した複数のファイルに記録を続けます。
アーカイブへのHTTP POST
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/archive/<archive_id>/stop
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身の Video APIアカウント.
交換 <archive_id> アーカイブIDを指定して。アーカイブIDは、API呼び出しへの応答から取得できます。 アーカイブの記録を開始する.
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"createdAt" : 1384221730555,
"duration" : 60,
"hasAudio" : true,
"hasVideo" : true,
"id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
"multiArchiveTag": "archive-1234b"
"name" : "The archive name you supplied",
"outputMode": "composed"
"projectId" : 234567,
"reason" : "",
"resolution" : "640x480",
"sessionId" : "flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN",
"size" : 0,
"status" : "stopped",
"streamMode" : "auto",
"streams" : "[]",
"url" : null
}
JSONオブジェクトには以下のプロパティが含まれる:
createdAt— アーカイブの記録が開始された時刻のタイムスタンプ。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過ミリ秒数で表されます。hasAudio— アーカイブで音声を記録するかどうか(true)または記録しないかどうか(false)。hasVideo— アーカイブが動画を記録するかどうか(true)または記録しないかどうか(false)。id— 一意のアーカイブID。multiArchiveTag— 同時アーカイブ用の固有タグ(設定されている場合)。outputMode— どちらか"composed"または"individual".参照 個々のストリームと構成されたアーカイブ.projectId— OpenTokのAPIキー。resolution— アーカイブの解像度(「640x480」、「1280x720」、「1920x1080」、 「480x640」、「720x1280」、または「1080x1920」)。このプロパティは、合成アーカイブに対してのみ設定されます。sessionId— アーカイブされた OpenTok セッションのセッション ID。name— 指定したアーカイブの名前(これは任意です)size— アーカイブの生成が停止された場合(かつアーカイブが生成されていない場合)、サイズは 0 に設定されます。status- に設定されている。"stopped".streamMode— アーカイブに含まれるストリームが自動的に選択されるかどうか("auto"(デフォルト)または手動で("manual").streams— 現在アーカイブ処理中のストリームに対応するオブジェクトの配列。これは、statusに設定する。"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId— アーカイブに含まれるストリームのストリームID。hasAudio— ストリームの音声がアーカイブに含まれるかどうか。hasVideo— ストリームの動画がアーカイブに含まれているかどうか。
セッション ID を指定しなかった場合、または無効なセッション ID を指定した場合は、HTTP レスポンスにステータスコード 400 が返されます。
無効な OpenTok API キーまたは JWT トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
無効なアーカイブIDを渡した場合、HTTPレスポンスには404ステータスコードが返されます。
録画されていないアーカイブの停止を試みると、HTTPレスポンスにステータスコード409が返されます。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
次のコマンドラインの例は、OpenTok セッションのアーカイブ記録を停止するものです。
api_key=123456
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
id=b40ef09b-3811-4726-b508-e41a0f96c68f
curl \
-i \
-X POST \
-H "X-OPENTOK-AUTH:$json_web_token" \
https://api.opentok.com/v2/project/$api_key/archive/$id/stop
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証). - を設定する。
idアーカイブIDに値を指定します。アーカイブIDは、API呼び出しへの応答から取得できます。 アーカイブの記録を開始する.
掲載履歴
API キーに関連するアーカイブ(完了済みおよび進行中のもの)を一覧表示するには、HTTP GET リクエストを送信してください。
注: アーカイブ記録は、最大12か月分まで閲覧可能です。
アーカイブへのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/archive
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身の Video APIアカウント.
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
検索結果を絞り込むためにクエリパラメータを追加することができます(これらは任意です):
-
[設定]
offset最初のアーカイブのインデックスオフセットを指定するためのクエリパラメータ。0 は、 最も最近開始されたアーカイブ(削除済みのアーカイブを除く)のオフセットです。1 は、 その直前に開始されたアーカイブのオフセットです。デフォルト値は 0 です。 -
を設定する。
count返されるアーカイブの数を制限するためのクエリパラメータ。デフォルトの アーカイブ返却数は50件です(アーカイブが50件未満の場合は、その数以下となります)。この呼び出しで返されるアーカイブの最大 数は1000件です。 -
を設定する。
sessionId特定のセッションIDに対応するアーカイブを一覧表示するためのクエリパラメータ。 (これは、ある 自動的にアーカイブされた セッション.)
たとえば、次の呼び出しでは、 count そして offset 価値観の違いだ:
https://api.opentok.com/v2/project/<api_key>/archive?offset=400&count=20
次の呼び出しでは、(架空の) sessionId 値である:
https://api.opentok.com/v2/project/<api_key>/archive?sessionId=2_MX4xMDB-flR1-QxNzIxNX4
削除されたアーカイブは、このAPI呼び出しの結果には含まれません。
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身の Video APIアカウント.
GETヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"count" : 2,
"items" : [ {
"createdAt" : 1384221730000,
"duration" : 5049,
"hasAudio" : true,
"hasVideo" : true,
"id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
"multiArchiveTag": "archive-1234a",
"name" : "Foo",
"outputMode" : "composed",
"projectId" : 123456,
"reason" : "",
"resolution" : "640x480",
"sessionId" : "2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4",
"size" : 247748791,
"status" : "available",
"streamMode" : "manual",
"streams" : [],
"url" : "https://example.com/archive.mp4"
}, {
"createdAt" : 1384221380000,
"duration" : 328,
"hasAudio" : true,
"hasVideo" : true,
"id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
"multiArchiveTag": "archive-1234b",
"name" : "Foo",
"outputMode" : "composed",
"projectId" : 123456,
"reason" : "",
"resolution" : "640x480",
"sessionId" : "2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4",
"size" : 18023312,
"status" : "available",
"streamMode" : "auto",
"streams" : [],
"url" : "https://example.com/archive.mp4"
} ]
JSONオブジェクトには以下のプロパティが含まれる:
count— API キーに対応するアーカイブの総数。items— 取得された各アーカイブを定義するオブジェクトの配列。アーカイブは、返される結果セット内で新しいものから古いものの順に一覧表示されます。
各アーカイブオブジェクト(アイテム)には、以下のプロパティがあります:
createdAt— アーカイブの記録が開始された時刻のタイムスタンプ。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過ミリ秒数で表されます。duration— アーカイブの保存期間(秒単位)。現在記録中のアーカイブ(status プロパティが「started」に設定されているもの)については、この値は 0 に設定されます。hasAudio— アーカイブで音声を記録するかどうか(true)または記録しないかどうか(false)。hasVideo— アーカイブが動画を記録するかどうか(true)または記録しないかどうか(false)。id— 一意のアーカイブID。multiArchiveTag— 同時アーカイブ用の固有タグ(設定されている場合)。name— 指定したアーカイブの名前(これは任意です)outputMode— どちらか"composed"または"individual".参照 個々のストリームと構成されたアーカイブ.projectId— OpenTokのAPIキー。reason— ステータスが次のアーカイブについて"stopped"に設定することができる。"maximum duration exceeded","maximum idle time exceeded","session ended","user initiated". ステータスが"failed"に設定することができる。"failure".sessionId— アーカイブされた OpenTok セッションのセッション ID。status— アーカイブの状況:-
"available"— このアーカイブは、OpenTokクラウドからダウンロードできます。 -
"expired"— このアーカイブは、OpenTokクラウドからダウンロードできなくなりました。 -
"failed"— アーカイブへの記録に失敗しました。 -
"paused"— アーカイブが一時停止されている間は、何も記録されません。以下のいずれかの条件に該当する場合、アーカイブは一時停止されます:- セッションに対してストリームを配信しているクライアントはいません。この場合、60分のタイムアウトが設定されており、その時間が経過するとアーカイブが停止し、アーカイブのステータスが
"stopped". - すべてのクライアントがセッションを切断しました。60秒後にアーカイブが停止し、アーカイブのステータスが
"stopped".
アーカイブが「一時停止」状態の間にクライアントが公開を再開した場合、アーカイブの記録が再開され、ステータスは再び
"started". - セッションに対してストリームを配信しているクライアントはいません。この場合、60分のタイムアウトが設定されており、その時間が経過するとアーカイブが停止し、アーカイブのステータスが
-
"started"— アーカイブの作成が開始され、現在記録が進められています。 -
"stopped"— アーカイブの記録が停止しました。 -
"uploaded"— アーカイブは、設定で指定した S3 バケットからダウンロードできます。 Video APIアカウント.
-
streamMode— アーカイブに含まれるストリームが自動的に選択されるかどうか("auto"(デフォルト)または手動で("manual").resolution— アーカイブの解像度(「640x480」、「1280x720」、「1920x1080」、 「480x640」、「720x1280」、または「1080x1920」)。このプロパティは、合成アーカイブに対してのみ設定されます。size— アーカイブファイルのサイズ。まだ生成されていないアーカイブの場合、この値は 0 に設定されます。streamMode— すべてのストリームがアーカイブに含まれているかどうか("auto")、またはアーカイブに含めるストリームを選択する("manual").参照 アーカイブに含めるストリームの選択.streams— 現在アーカイブ処理中のストリームに対応するオブジェクトの配列。これは、statusに設定する。"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId— アーカイブに含まれるストリームのストリームID。hasAudio— ストリームの音声がアーカイブに含まれるかどうか。hasVideo— ストリームの動画がアーカイブに含まれているかどうか。
url— 利用可能なアーカイブファイルのダウンロードURL。これは、ステータスが"available"その他のアーカイブ(以下のステータスを持つアーカイブを含む。"uploaded") このプロパティは null に設定されています。ダウンロード URL は難読化されており、ファイルはその URL から 10 分間のみ利用可能です。新しい URL を生成するには、REST API を使用して アーカイブ情報の検索 または リスト・アーカイブ.
無効な OpenTok API キーまたは JWT トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
次のコマンドラインの例は、すべてのアーカイブに関する情報を取得します。
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
curl \
-i \
-X GET \
-H "X-OPENTOK-AUTH:$json_web_token" \
https://api.opentok.com/v2/project/$api_key/archive
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証).
アーカイブ情報の取得
特定のアーカイブに関する情報を取得するには、HTTP GETリクエストを送信してください。
注: アーカイブ記録は、最大12か月分まで閲覧可能です。
複数のアーカイブに関する情報を取得することもできます。詳しくは、 掲載履歴.
アーカイブへのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/archive/<archive_id>
- 交換
<api_key>OpenTok API キーを使用して。詳細については、ご自身のプロジェクトページをご覧ください。 Video APIアカウント. - 交換
<archive_idアーカイブIDとともに。
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
GETヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"createdAt" : 1384221730000,
"duration" : 5049,
"hasAudio" : true,
"hasVideo" : true,
"id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
"multiArchiveTag": "archive-1234b",
"name" : "Foo",
"outputMode" : "composed",
"projectId" : 123456,
"reason" : "",
"resolution" : "640x480",
"sessionId" : "2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4",
"size" : 247748791,
"status" : "available",
"streamMode" : "auto",
"streams" : []
"url" : "https://example.com/archive.mp4"
}
JSONオブジェクトには以下のプロパティが含まれる:
createdAt— アーカイブの記録が開始された時刻のタイムスタンプ。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過ミリ秒数で表されます。duration— アーカイブの保存期間(秒単位)。現在記録中のアーカイブ(status プロパティが「started」に設定されているもの)については、この値は 0 に設定されます。hasAudio— アーカイブで音声を記録するかどうか(true)または記録しないかどうか(false)。hasVideo— アーカイブが動画を記録するかどうか(true)または記録しないかどうか(false)。id— 一意のアーカイブID。multiArchiveTag— 同時アーカイブ用の固有タグ(設定されている場合)。name— 指定したアーカイブの名前(これは任意です)outputMode— どちらか"composed"または"individual".参照 個々のストリームと構成されたアーカイブ.projectId— OpenTokのAPIキー。reason— ステータスが次のアーカイブについて"stopped"に設定することができる。"maximum duration exceeded","maximum idle time exceeded","session ended","user initiated". ステータスが"failed"に設定することができる。"failure".resolution— アーカイブの解像度(「640x480」、「1280x720」、「1920x1080」、 「480x640」、「720x1280」、または「1080x1920」)。このプロパティは、合成アーカイブに対してのみ設定されます。sessionId— アーカイブされた OpenTok セッションのセッション ID。status— アーカイブの状況:-
"available"— このアーカイブは、OpenTokクラウドからダウンロードできます。 -
"deleted"— アーカイブが削除されました。 -
"expired"— このアーカイブは、OpenTokクラウドからダウンロードできなくなりました。 -
"failed"— アーカイブへの記録に失敗しました。 -
"paused"— アーカイブが一時停止されている間は、何も記録されません。以下のいずれかの条件に該当する場合、アーカイブは一時停止されます:- セッションに対してストリームを配信しているクライアントはいません。この場合、60分のタイムアウトが設定されており、その時間が経過するとアーカイブが停止し、アーカイブのステータスが
"stopped". - すべてのクライアントがセッションを切断しました。60秒後にアーカイブが停止し、アーカイブのステータスが
"stopped".
アーカイブが
"paused"状態になると、アーカイブの記録が再開され、ステータスは再び"started". - セッションに対してストリームを配信しているクライアントはいません。この場合、60分のタイムアウトが設定されており、その時間が経過するとアーカイブが停止し、アーカイブのステータスが
-
"started"— アーカイブの作成が開始され、現在記録が進められています。 -
"stopped"— アーカイブの記録が停止しました。 -
"uploaded"— アーカイブは、設定で指定した S3 バケットからダウンロードできます。 Video APIアカウント.
-
size— アーカイブファイルのサイズ。まだ生成されていないアーカイブの場合、この値は 0 に設定されます。streamMode— すべてのストリームがアーカイブに含まれているかどうか("auto")、またはアーカイブに含めるストリームを選択する("manual").参照 アーカイブに含めるストリームの選択.streams— 現在アーカイブ処理中のストリームに対応するオブジェクトの配列。これは、ステータスが"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId— アーカイブに含まれるストリームのストリームID。hasAudio— ストリームの音声がアーカイブに含まれるかどうか。hasVideo— ストリームの動画がアーカイブに含まれているかどうか。
url— 利用可能なアーカイブファイルのダウンロードURL。これは、ステータスが"available"その他のアーカイブ(以下のステータスを持つアーカイブを含む。"uploaded") このプロパティは null に設定されています。ダウンロード URL は難読化されており、ファイルはその URL から 10 分間のみ利用可能です。新しい URL を生成するには、REST API を使用して アーカイブ情報の検索 または リスト・アーカイブ.
セッションIDを指定しなかった場合、または無効なアーカイブIDを指定した場合は、HTTPレスポンスにステータスコード400が返されます。
無効な OpenTok API キーまたは JWT トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
次のコマンドラインの例は、アーカイブに関する情報を取得するものです:
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
id=23435236235235235235
curl \
-i \
-X GET \
-H "X-OPENTOK-AUTH:$json_web_token" \
https://api.opentok.com/v2/project/$api_key/archive/$archive
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証). - を設定する。
idアーカイブIDに値を割り当てる。
アーカイブの削除
アーカイブを削除するには、HTTP DELETEリクエストを送信してください。
ステータスが "available" または "uploaded". アーカイブを削除すると、アーカイブ一覧からその記録が削除されます(「 掲載履歴). については、 "available" アーカイブに加え、アーカイブファイルも削除されるため、そのファイルはダウンロードできなくなります。
アーカイブへのHTTP DELETE
以下のURLに対してHTTP DELETEリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/archive/<archive_id>
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身のプロジェクトページをご覧ください。 Video APIアカウント.
交換 <archive_id> アーカイブIDとともに。
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
DELETEヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
応答
ステータスコードが 204 の HTTP レスポンスは、アーカイブが削除されたことを示しています。
無効な OpenTok API キー、無効な JWT トークン、または無効なアーカイブ ID を指定した場合、HTTP レスポンスにはステータスコード 403 が返されます。
アーカイブのステータスが次の通りでない場合、HTTPレスポンスには409のステータスコードが返されます。 "uploaded", "available"あるいは "deleted".
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
次のコマンドラインの例は、アーカイブを削除するものです:
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
id=b40ef09b-3811-4726-b508-e41a0f96c68f
curl \
-i \
-X DELETE \
-H "X-OPENTOK-AUTH:$json_web_token" \
https://api.opentok.com/v2/project/$api_key/archive/$id
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証). - を設定する。
id削除するアーカイブのIDに値を設定します。
S3 または Azure アーカイブへのアップロード先を設定する
OpenTok プロジェクトでは、OpenTok に完了したアーカイブを Amazon S3 バケット(または S3 互換のストレージプロバイダー)もしくは Windows Azure コンテナにアップロードさせることができます。
注: また、お使いの Vonage Video API アカウント ページを参照されたい。
Amazon S3 をご利用の場合は、Amazon S3 バケットに対するアップロード専用権限を Vonage に付与する必要があります。S3 IAM ユーザーを使用する場合は、そのユーザーに 以下のユーザープライシーを割り当ててください:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Allow",
"Resource": [ "arn:aws:s3:::<your-bucket-name>/*" ],
"Action": [
"s3:PutObject",
"s3:ListBucket"
]
},
{
"Sid": "Stmt2",
"Effect": "Allow",
"Resource": [ "arn:aws:s3:::*" ],
"Action": [
"s3:ListAllMyBuckets"
]
}
]
}
アーカイブのアップロード先を設定するには、HTTP PUTリクエストを送信してください。
アップロード先を設定すると、完成したアーカイブファイルはそれぞれ、
「archive.mp4」という名前で、以下のパスにアップロードされます。 /projectKey/archiveId/ 対象のバケットの、
ここで projectKey はプロジェクトのAPIキーであり、 archiveId はアーカイブIDです。
プロジェクトのアーカイブファイルに対してアーカイブのアップロード先をすでに設定している場合は、 別のPUTリクエストを送信して、新しいアップロード先を登録することができます。
アーカイブの詳細については アーカイブ作成の手順 ガイド.
アーカイブへのHTTP PUTリクエスト
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<api_key>/archive/storage
交換 <api_key> OpenTokプロジェクトのAPIキーを使用して。
PUTヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証).
を設定する。 Content-type ヘッダを application/json:
Content-Type:application/json
PUTデータ
Amazon S3 バケットの場合は、PUT データとして、以下の形式の JSON オブジェクトを含めてください:
{
"type": "s3",
"config": {
"accessKey":"myUsername",
"secretKey":"myPassword",
"bucket": "bucketName",
"endpoint": "http://s3.cloudianhyperstore.com"
},
"fallback":"none"
}
このJSONオブジェクトには、以下のプロパティが含まれています:
-
type-"s3"(Amazon S3用) -
config— Amazon Web Services アカウントの設定: -
accessKey— Amazon Web Services のアクセスキー -
secretKey— Amazon Web Servicesのシークレットキー -
bucket— S3バケット名。 -
endpoint(任意) — S3エンドポイント。これは任意です。デフォルトの エンドポイントはhttp://s3.amazonaws.com(Amazon S3 のエンドポイント)。Amazon S3 以外の S3 準拠のストレージソリューションを使用する場合は、これを指定してください。 プロトコル(http または https)を含めたエンドポイントのベース URL を、次のように設定してください。 例:"https://s3.cloudianhyperstore.com"または"https://storage.googleapis.com". S3互換のストレージソリューションとして、CloudianおよびGoogle Cloud Storage(AWS S3 APIを介してアクセス)をサポートしています。 その他のS3互換サービスでは、機能に制限がある場合があります。 -
fallback— これを次のように設定してください"opentok"アップロードに失敗した場合でも、 OpenTokダッシュボードでアーカイブを利用できるようにするためです。これを"none"(またはこのプロパティを省略すると)、 アップロードに失敗した場合、アーカイブファイルが OpenTok クラウドに保存されるのを 防ぎます。
Windows Azure コンテナの場合は、PUT データとして以下の形式の JSON オブジェクトを 含めてください:
{
"type": "azure",
"config": {
"accountName":"myAccountname",
"accountKey":"myAccountKey",
"container": "containerName",
"domain": "domainName"
},
"fallback":"none"
}
このJSONオブジェクトには、以下のプロパティが含まれています:
-
type-"azure"(Microsoft Azure用) -
config— Windows Azure Accountの設定: -
accountName— Windows Azure のアカウント名 -
accountKey— Windows Azure のアカウントキー -
container— Windows Azure のコンテナ名。 -
domain(オプション) — コンテナが存在する Windows Azure ドメイン。 -
fallback— これを次のように設定してください"opentok"アップロードに失敗した場合でも、 OpenTokダッシュボードでアーカイブを利用できるようにするためです。これを"none"(またはこのプロパティを省略) これにより、アップロードに失敗した場合、アーカイブファイルが OpenTokクラウドに保存されるのを防ぐことができます。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。レスポンス本文は、送信したデータと一致しています。
-
400 — 無効なリクエスト。この応答は、以下のいずれかを示している可能性があります:
-
型が未定義です。
-
この型はサポートされていません(これは
"s3"または"azure"). -
設定が未定義です。
-
設定値がサイズ制限を超えています。設定は保存時に暗号化されますが、暗号化後のサイズは2,048文字以下でなければなりません。
-
リクエストデータに無効なJSONが含まれています。
- 403 — 認証エラー。以下の部分で無効なトークンが渡されました。
X-OPENTOK-AUTHヘッダーを使用する。
- 403 — 認証エラー。以下の部分で無効なトークンが渡されました。
例
以下のコマンドラインの例は、プロジェクトに S3 バケットを設定するものです:
token=123456789 # Change this to your JWT token
projectKey=55555 # Change this to the project API key
storage_type=s3
access_key=myUsername # Change this to your S3 access key
secret_key=myPassword # Change this to your S3 secret key
bucket=bucketName # Change this to the bucket name
data='{"type": "$storage_type", "config": { "accessKey":"$access_key", "secretKey":"$secret_key", "bucket": "$bucket"}}'
curl \
-i \
-H "Content-Type: application/json" \
-X PUT -H "X-TB-OPENTOK-AUTH:$token" -d "$data" \
https://api.opentok.com/v2/project/$partnerKey/archive/storage
-
の値を設定する。
token有効な OpenTok JWT トークンに。 -
の値を設定する。
projectKeyプロジェクトのAPIキーに。 -
を設定する。
storage_type値を"s3". -
を設定する。
access_keyAmazon Web Services アカウントのアクセスキーに値を設定します。 -
を設定する。
secret_keyAmazon Web Services アカウントのシークレットキーに値を割り当てます。 -
を設定する。
bucketバケット名に値を追加します。
アーカイブ用アップロード先を削除する
プロジェクトのアーカイブファイルに対してアーカイブのアップロード先を設定している場合、 それを削除することができます。
注: また、ご自身の Vonage Video API アカウント ページを参照されたい。
アーカイブへのHTTP DELETE
以下のURLに対してHTTP DELETEリクエストを送信してください:
https://api.opentok.com/v2/project/<project_key>/archive/storage
交換 <project_key> プロジェクトのAPIキーを使用して。
DELETEヘッダーのプロパティ
カスタム HTTP ヘッダー「X-OPENTOK-AUTH」を使用して、この API 呼び出しを認証してください:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証).
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
204 — 成功(コンテンツなし)。
-
403 — 認証エラー。X-OPENTOK-AUTH ヘッダーに無効なトークンが指定されました。
-
404 — アップロード先が存在しません。
### 例
次のコマンドラインの例は、プロジェクトのアップロード先を削除するものです:
token=123456789 # Change this to your JWT token
projectKey=55555 # Change this to the project key
curl \
-i \
-H "Content-Type: application/json" \
-X DELETE -H "X-OPENTOK-AUTH:$token" \
https://api.opentok.com/v2/project/$projectKey/archive/storage
-
の値を設定する。
token有効な OpenTok JWT トークンに。 -
の値を設定する。
projectKeyプロジェクトのAPIキーに。
構成済みアーカイブのレイアウトタイプを動的に変更する
作成中のアーカイブのレイアウトタイプは、 記録中に動的に変更することができます。
複合アーカイブに関する詳細については、 OpenTok アーカイブ開発者ガイド そして 構成されたビデオのレイアウトをカスタマイズする アーカイブ.
アーカイブへのHTTP PUTリクエスト
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<apiKey>/archive/<archiveId>/layout
交換 <apiKey> OpenTok APIキーを指定してください。
交換 <archiveId> アーカイブIDとともに。
PUTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
PUTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"type": "custom",
"screenshareType": "optional layout type to use when there is a screen-sharing stream",
"stylesheet": "the layout stylesheet (only used with type == custom)"
}
JSONオブジェクトには以下のプロパティが含まれる:
-
タイプ (文字列) — アーカイブのレイアウトタイプ。有効な値は以下の通りです。
"bestFit"(最適解)、"custom"(カスタム),"horizontalPresentation"(水平プレゼンテーション)、"pip"(ピクチャー・イン・ピクチャー)、および"verticalPresentation"(縦向き表示)。 もし"custom"レイアウト・タイプを設定します。stylesheetプロパティ をスタイルシートに追加します。(その他のレイアウトタイプの場合は、stylesheetプロパティ。) 詳細については、以下を参照してください。 構成されたアーカイブのビデオレイアウトをカスタマイズする.「Best Fit」以外のレイアウトタイプを指定する場合は、OpenTok セッション内のストリームに 適切なレイアウトクラスを適用するようにしてください( OpenTokの ストリームにライブストリーミングのレイアウトクラスを割り当てる).
-
スタイルシート (文字列) — 省略可能。これを指定するのは、
typeプロパティを"custom".を設定する。stylesheetスタイルシートにプロパティを追加します。 (その他のレイアウトタイプについては、stylesheetプロパティ。)詳細については、 以下を参照してください。 カスタムレイアウトの定義. -
screenshareType (文字列) — オプション。セッション内に 画面共有ストリームが存在する場合に使用するレイアウトの種類。このプロパティを使用するには、
typeプロパティを "bestFit "に設定する。stylesheetプロパティが設定解除されました。詳細については、 以下を参照してください。 画面共有のためのレイアウトタイプ.
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが 無効なJSONであることを示している可能性があります。また、無効なレイアウトオプションが指定されたことを示している可能性もあります。
- 403 — 認証エラー。
- 500 — OpenTok サーバーエラー。
例
curl -i \
-X PUT \
-H X-OPENTOK-AUTH:JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"type\":"verticalPresentation"} \
https://api.opentok.com/v2/project/$apiKey/archive/$archiveId/layout
OpenTok ストリームの構成済みアーカイブレイアウトクラスの変更
このメソッドを使用して、OpenTok ストリームのレイアウトクラスを変更します。レイアウトクラスは、 構成された OpenTok アーカイブのレイアウト内でストリームがどのように表示されるかを定義します。詳細については、以下を参照してください。 OpenTokの ストリームにライブストリーミングのレイアウトクラスを割り当てる.
ストリームへのHTTP PUTリクエスト
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<apiKey>/session/<sessionId>/stream
交換 <apiKey> OpenTok API キーを指定してください。
以下を置き換えてください <sessionId> セッションIDとともに。
PUTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
PUTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"items": [
{
"id": "8b732909-0a06-46a2-8ea8-074e64d43422",
"layoutClassList": ["full"]
}
]
}
このJSONオブジェクトには、 items オブジェクトの配列。各オブジェクトは、ストリームに割り当てるレイアウト
クラスを定義しており、以下のプロパティを含んでいます:
- id (文字列) — ストリーム ID。
- layoutClassList (配列) — ストリーム用のレイアウトクラスの配列(各要素は文字列)。
複数のJSONオブジェクトを
に渡し、複数のストリームのレイアウトクラス一覧を更新することができます。 items 配列である。
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが 無効なJSONであることを示している可能性があります。また、無効なレイアウトオプションが指定されたことを示している可能性もあります。
- 403 — 認証エラー。
- 500 — OpenTok サーバーエラー。
例
curl -i \
-X PUT \
-H X-OPENTOK-AUTH:JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"streamId\":STREAM_ID,\"layoutClassList\":[\"CLASS_NAME\"]} \
https://api.opentok.com/v2/project/$apiKey/session/$sessionId
アーカイブに含めるストリームの選択
このメソッドを使用すると、
で開始された複合アーカイブに含まれるストリームを変更できます。 streamMode に設定する。 "manual" 参照 アーカイブ録画の開始).
アーカイブコンポーザーには、以下に基づいて追加されたストリームが含まれています。 ストリーム優先ルール.
archive/streams への HTTP PATCH リクエスト
以下のURLに対してHTTP PATCHリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/archive/<archiveId>/streams
交換 <apiKey> OpenTok API キーを指定してください。
以下を置き換えてください <archiveId> アーカイブIDとともに。
PATCHヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
PATCHデータ
ストリームをアーカイブに追加するには、リクエスト本文として以下の形式のJSONオブジェクトを含めてください:
{
"addStream": "12312312-3811-4726-b508-e41a0f96c68f",
"hasAudio": true,
"hasVideo": false
}
この JSON オブジェクトには、以下のプロパティが含まれています:
- addStream (文字列) — ストリーム ID。
- hasAudio (ブール値、省略可) — 結合されたアーカイブに、そのストリームの音声を含めるかどうか
(
true(デフォルト)か、そうでないか(false). - hasVideo (ブール値、省略可) — 結合されたアーカイブに、そのストリームの動画を包含するかどうか
(
true(デフォルト)か、そうでないか(false).
このメソッドは、次のようにして繰り返し呼び出すことができます。 addStream 同じストリームIDに設定することで、アーカイブ内の
そのストリームの音声または映像の表示を切り替えることができます。
両方を設定すると hasAudio そして hasVideo への false, エラー応答が返されます。
ストリームがアーカイブに含まれないようにするには、以下の形式のJSONオブジェクトを リクエスト本文として含めてください:
{
"removeStream": "12312312-3811-4726-b508-e41a0f96c68f"
}
を設定する。 removeStream ストリームIDに対するプロパティ。
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 204 — 成功(コンテンツなし)。
- 400 — 無効なリクエスト。この応答は、リクエストで指定されたデータが
無効なJSONであるか、アーカイブが
で開始されたためリクエストを処理できなかったことを示している可能性があります。
streamModeに設定する。"auto", これはストリームの操作に対応していません。 - 403 — 認証エラー。
- 404 — アーカイブまたはストリームが見つかりません。
- 500 — OpenTok サーバーエラー。
例
アーカイブにストリームを追加する:
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"addStream\":$STREAM_ID} \
https://api.opentok.com/v2/project/$apiKey/archive/$ARCHIVE_ID/streams
アーカイブ内のストリームの動画を削除する(音声は残す):
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"addStream\":\"$STREAM_ID\", \"hasAudio\":true, \"hasVideo\":false } \
https://api.opentok.com/v2/project/$apiKey/archive/$ARCHIVE_ID/streams
アーカイブからストリームを削除するには:
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"removeStream\":\"$STREAM_ID\"} \
https://api.opentok.com/v2/project/$apiKey/archive/$ARCHIVE_ID/streams
SIPコールの開始
SIPプラットフォームをOpenTokセッションに接続するには、以下のURLに対してHTTP POSTリクエストを送信してください。 dial 方法。SIP通話におけるユーザー側の音声は、音声専用ストリームとしてOpenTokセッションに追加されます。OpenTokメディアルーターは、セッション内の他のストリームからの音声をミックスし、そのミックスされた音声をユーザーのSIPエンドポイントに送信します。
SIPサーバーが BYE メッセージ(通話を終了するため)。また、OpenTok REST API メソッドを使用して通話を終了することもできます。 クライアントをセッションから切断する. OpenTok SIPゲートウェイは、5分間操作がない場合(メディアの受信がない状態が5分間続いた場合)、自動的に通話を終了します。また、セキュリティ対策として、OpenTok SIPゲートウェイは、6時間以上継続するSIP通話をすべて切断します。
SIP相互接続機能を利用するには、以下の設定を使用するOpenTokセッションを使用する必要があります。 OpenTok メディアルーター (メディアモードが「ルーティング」に設定されているセッション)。
技術的な詳細やセキュリティ上の注意点などの詳細については、以下を参照してください。 OpenTok SIP相互接続 開発者ガイド
ダイヤルへのHTTP POST
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/dial
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身のプロジェクトページをご覧ください。 Video APIアカウント.
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダーを使用して認証を行う必要があります — X-OPENTOK-AUTH — およびJSON Webトークン(JWT)。詳細は 認証.
Content-Type ヘッダーを application/json に設定します:
Content-Type:application/json
POSTデータ
POSTデータとして、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId": "OpenTok session ID",
"token": "A valid OpenTok token",
"sip": {
"uri": "sip:user@sip.partner.com;transport=tls",
"from": "from@example.com",
"headers": {
"headerKey": "headerValue"
},
"auth": {
"username": "username",
"password": "password"
},
"secure": true|false,
"video": true|false,
"observeForceMute": true|false,
"streams": ["stream-id-1", "stream-id-2"]
}
}
JSONオブジェクトには以下のプロパティが含まれる:
sessionId(必須) — 参加するSIP通話のOpenTokセッションID。
token(必須) — 呼び出し先の参加者に使用する OpenTok トークン。トークンを追加できますdata参加者がSIPエンドポイントに接続しているかどうかを特定するため、または電話番号などのその他の識別データを確認するためです。(OpenTokクライアントライブラリには、セッションに接続しているクライアントの接続データを検査するためのプロパティが含まれています。)詳細は、 トークン作成 開発者ガイド
-
シップ
uri(必須) — OpenTokからお客様のSIPプラットフォームに向けて発信されるSIP通話の宛先として使用されるSIP URI。SIPが
uriには が含まれていますtransport=tlsヘッダーを設定することで、Vonage と SIP エンドポイント間のネゴシエーションは安全に行われます。なお、これはネゴシエーション自体にのみ適用され、音声の伝送には適用されない点にご注意ください。音声の伝送も暗号化したい場合は、secureプロパティを true.これは安全なコール・ネゴシエーションの例である:
コピー"sip:user@sip.partner.com;transport=tls"これは、安全でないコール・ネゴシエーションの例である:
コピー"sip:user@sip.partner.com" -
from(任意):最終的なSIP番号に対して発信者として送信される番号または文字列。以下の形式の文字列でなければなりません。from@example.comここでfrom単語文字(a-z、A-Z、0-9)で構成される文字列、または以下の文字で構成される文字列_,+,!,%,`,',~あるいは-.もし
fromには数字がセットされる(例えば、"<14155550101@example.com>")、PSTN電話では発信元番号として表示されます。もしfrom未定義であるか、文字列に設定されている(例えば、"<joe@example.com>")、PSTN電話では+000000が着信番号として表示されます。もし
fromが未定義であるか、あるいは文字列(たとえば"<joe@example.com>")、つまり認識されない番号や許可されていない番号の場合、ほとんどの場合、それは"Unknown"SIPプロバイダーによって、リクエストがPSTN終端のために通信事業者に転送される前に。プロバイダーによっては、"Unknown"PSTN電話では、発信元番号として「+00000000」が表示されます。場合によっては、番号偽装などの問題を回避するため、セキュリティ上の理由から、通信事業者がこれらの通話を拒否することがあります。通信事業者によって通話が拒否されなかった場合、PSTN電話では発信元番号として「+00000000」が表示されます。番号は、E.164規格に準拠していない場合、または Vonageバーチャル番号 もし…に接続する場合は、 Vonage Voice API、例えば。
-
シップ
headers(オプション) — このオブジェクトは、SIP に追加されるカスタムヘッダーを定義します INVITEリクエストが OpenTok から SIP プラットフォームに送信されます。 -
シップ
auth(オプション) — このオブジェクトには、SIP で使用するユーザー名とパスワードが含まれていますINVITEHTTPダイジェスト認証がSIPプラットフォームで要求される場合、HTTPダイジェ スト認証のリクエストを作成する。 -
secure(オプション) — メディアを暗号化して送信する必要があるかどうかを示すブール値のフラグ(true) かどうか(falseデフォルト)。 -
video(オプション) — SIP通話にビデオが含まれるかどうかを示すブール値のフラグ(true) かどうか(false(デフォルト設定)。ビデオが含まれる場合、SIPクライアントのビデオは、OpenTokセッションに送信されるOpenTokストリームに組み込まれます。SIPビデオの解像度は480p、ビットレートは800 kbpsに制限されます。SIPクライアントには、OpenTokセッション内で公開されたストリームを合成した単一のビデオが受信されます。 -
observeForceMute(オプション) SIPエンドポイントがこれを遵守するかどうかを示すブール値のフラグ 強制ミュート (true)または(falseデフォルト)。またobserveForceMuteに設定する。true、発信者は「*6」を押すことで、配信中の音声のミュートを解除または有効にできます。「*6」によるミュート切り替えが機能するためには、SIP発信者がRFC2833 DTMF(RFC2833/RFC4733の数字)のネゴシエーションを行う必要があります。 SIP INFO またはインバンド DTMF では、ミュート切り替えはサポートされていません。発信者がミュートやミュート解除を行った場合、または SIP クライアントが強制ミュート操作によってミュートされた場合、発信者に対してメッセージ(英語)が再生されます。 -
streams(オプション) — SIPコールに含めるストリームのIDの配列。このプロパティを設定しない場合、セッション内のすべてのストリームがコールに含まれます。
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"id": "b0a5a8c7-dc38-459f-a48d-a7f2008da853",
"connectionId": "e9f8c166-6c67-440d-994a-04fb6dfed007",
"streamId": "482bce73-f882-40fd-8ca5-cb74ff416036",
}
JSONオブジェクトには以下のプロパティが含まれる:
id- SIPコールの一意のID。connectionId— OpenTok セッション内の SIP 通話の接続に対応する OpenTok 接続 ID です。この接続 ID を使用すると、OpenTok REST API を通じて SIP 通話を終了させることができます。streamId— OpenTok セッション内の SIP 通話のストリームに対応する OpenTok ストリーム ID。
以下の場合、HTTPレスポンスにはステータスコード400が返されます:
- セッションIDが指定されていないか、無効なセッションIDが指定されています。
無効な OpenTok API キーまたは無効な JSON Web トークンを渡した場合、HTTP レスポンスのステータスコードは 403 になります。
セッションが存在しない場合、HTTPレスポンスには404ステータスコードが返されます。
OpenTok Media Router を使用していないセッションに対して SIP 通話を開始しようとすると、HTTP レスポンスにステータスコード 409 が返されます。
HTTPレスポンスのステータスコードが500となっており、OpenTokサーバーのエラーが発生しています。
例
以下のコマンドラインの例は、SIPエンドポイントをOpenTokセッションに接続するものです。
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
session_id=2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4
sip_uri='sip:user@sip.partner.comwhen;transport=tls'
data='{\
"sessionId" : "'$session_id'", \
"token": "A valid OpenTok token", \
"sip": { \
"uri": "'$sip_uri'", \
"auth": {
"username": "username",
"password": "password"
}
}
}'
curl \
-i \
-H "Content-Type: application/json" \
-H "X-OPENTOK-AUTH:$json_web_token" \
-d "$data" \
https://api.opentok.com/v2/project/$api_key/dial
- の値を設定する。
api_keyOpenTok APIキーに。 - の値を設定する。
json_web_tokenJSON Webトークン(以下を参照)へ 認証). - を設定する。
session_idSIPプラットフォームに接続したいOpenTokセッションのセッションIDにこの値を指定してください。 - を設定する。
sip_uriSIPエンドポイントのSIP URIに値を指定します。 - を設定する。
tokenプロパティのdataJSONを、呼び出される参加者の有効なOpenTok接続トークンに変換します(詳細は トークン作成 (開発者ガイド)。 - を設定する。
usernameそしてpasswordの特性である。dataSIPエンドポイントのユーザー名とパスワードをJSON形式で指定します。(これは任意です。)
SIPクライアントへのDTMF桁の送信
play-dtmf REST API を使用して、アクティブな OpenTok セッションのすべての参加者に、またはそのセッションに接続している特定のクライアントに、DTMF 数字を送信します。
テレフォニーイベントはSDPを介してネゴシエーションされ、RFC4733/RFC2833形式のデータとして リモートエンドポイントに送信されます。
そのセッションに接続しているすべてのクライアントにDTMF信号を送信する
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/session/<session_id>/play-dtmf
交換 <api_key> OpenTok API キーを指定してください。ご自身のプロジェクトの「プロジェクト」ページを参照してください。
Video APIアカウント.交換 <session_id> DTMF信号を送信するセッションの
セッションIDを指定します。
DTMFメッセージは、DTMFをサポートしていないクライアント(SIP以外のクライアントなど)では無視されます。
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダー「X-OPENTOK-AUTH」 とJSON Webトークン(JWT)を使用して認証を行う必要があります。詳しくは 認証.
を設定する。 Content-type ヘッダを application/json:
Content-Type:application/json
POSTデータ
POSTデータとして、以下の形式のJSONオブジェクトを含めてください:
このJSONオブジェクトには、 digits プロパティ。これは、送信するDTMF数字の文字列です。
これには以下が含まれる場合があります 0-9, '*', '#', および 'p'。A p は500msの一時停止を表します(数字の送信に
遅延を加える必要がある場合)。
応答
呼び出しが成功した場合、応答にはHTTPステータスコード200が含まれます。
エラーが発生した場合、レスポンスには以下のいずれかのHTTPステータスコードが含まれます:
-
400— 物件の一つ —digitsまたはsessionId— は無効です。 -
403— 認証エラー。これは、無効な OpenTok API キー または無効な JSON Web トークンを使用した場合に発生することがあります -
404— 指定されたセッションは存在しません。
エラーが発生した場合、レスポンス本文はJSON形式となり、その内容は code そして message 財産である:
例
以下は、HTTP POSTリクエストを play-dtmf セッションの資料:
セッションに接続されている特定のクライアントにDTMF信号を送信する
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/session/<session_id>/connection/<connection_id>/play-dtmf
交換 <api_key> OpenTok API キーを使用して。詳細については、ご自身のプロジェクトページをご覧ください。
Video APIアカウント.交換 <session_id> DTMF信号を送信するセッションの
セッションIDを指定します。以下を置き換えてください <connection_id>
DTMF信号を送信する相手のクライアントの接続IDを指定します。
SIPクライアントの接続IDは、REST API呼び出しのレスポンスから取得できます。 呼び出し先: SIP通話を開始する.
DTMFに対応していないクライアント(SIP以外のクライアントなど)にDTMF信号を送信した場合、 そのクライアントはリクエストを無視します。
POSTヘッダーのプロパティ
API呼び出しでは、カスタムHTTPヘッダー「X-OPENTOK-AUTH」 とJSON Webトークン(JWT)を使用して認証を行う必要があります。詳しくは 認証.
を設定する。 Content-type ヘッダを application/json:
Content-Type:application/json
POSTデータ
POSTデータとして、以下の形式のJSONオブジェクトを含めてください:
このJSONオブジェクトには、 digits プロパティ。これは、送信するDTMF数字の文字列です。
これには以下が含まれる場合があります 0-9, '*', '#', および 'p'。A p は500msの一時停止を表します(数字の送信に
遅延を加える必要がある場合)。
応答
呼び出しが成功した場合、応答にはHTTPステータスコード200が含まれます。
エラーが発生した場合、レスポンスには以下のいずれかのHTTPステータスコードが含まれます:
-
400— 物件の一つ —digitsまたはsessionId— は無効です。 -
403— 認証エラー。これは、無効な OpenTok API キー または無効な JSON Web トークンを使用した場合に発生することがあります -
404— 指定されたセッションが存在しないか、またはconnectionIdこのプロパティはセッションに関連付けられていません。
エラーが発生した場合、レスポンス本文はJSON形式となり、その内容は code そして message 財産である:
例
HTTP POSTリクエストを play-dtmf そのセッションに属する特定の接続IDのリソース:
ライブ配信を開始する
このメソッドを使用して、OpenTokセッションのライブストリーミング配信を開始します。これにより、セッションがHLS(HTTPライブストリーミング)またはRTMPストリームとして配信されます。
セッションのブロードキャストを成功裏に開始するには、少なくとも1人のクライアントがセッションに接続していなければならない。
ライブストリーミング配信では、1回のセッションにつき、1つのHLSエンドポイントと最大5つのRTMPサーバーを同時に指定できます。ライブストリーミングを開始できるのは、OpenTok Media Routerを使用し、メディアモードが「routed」に設定されているセッションのみです。メディアモードが「relayed」に設定されているセッションでは、ライブストリーミングを使用することはできません。(参照: OpenTok メディアルーターとメディアモード。)
OpenTokのライブストリーミングに関する詳細については、以下の 放送開発者ガイド.
HTTP POSTによるブロードキャスト
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/broadcast
交換 <apiKey> OpenTok APIキーを指定してください。
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
POSTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId": "<session-id>",
"layout": {
"type": "custom",
"stylesheet": "the layout stylesheet (only used with type == custom)",
"screenshareType": "optional layout type to use when there is a screen-sharing stream"
},
"maxBitrate": 1000000,
"maxDuration": 5400,
"outputs": {
"hls": {
"dvr": false,
"lowLatency": false
},
"rtmp": [{
"id": "foo",
"serverUrl": "rtmps://myfooserver:443/myfooapp",
"streamName": "myfoostream"
},
{
"id": "bar",
"serverUrl": "rtmp://mybarserver:443/mybarapp",
"streamName": "mybarstream"
}]
},
"hasAudio": true,
"hasVideo": true,
"resolution": "640x480",
"streamMode" : "auto"
}
JSONオブジェクトには以下のプロパティが含まれる:
-
sessionId(文字列) — 配信したい OpenTok セッションのセッション ID をここに設定します。 -
hasAudio(ブール値) — (オプション) ブロードキャストに音声を含めるかどうか(true:デフォルト、false:含めない)。両方を設定した場合hasAudioそしてhasVideofalse に設定されている場合、このメソッドを呼び出すとエラーが発生します。 -
hasVideo(ブール値) — (オプション) ブロードキャストに動画を含めるかどうか(true:デフォルト、false:含まない)。両方を設定した場合hasAudioそしてhasVideofalse に設定されている場合、このメソッドを呼び出すとエラーが発生します。注: 設定する際
hasVideoを「false」に設定すると、RTMPストリームには160×120の黒画面フレームを含む動画が含まれます。YouTubeやFacebookなど、一部のエンドポイントは音声のみのRTMPストリームを受け付けません。 -
layout(オブジェクト) — 省略可能。放送の初期レイアウトタイプを割り当てるには、これを指定します。このオブジェクトには、次の 3 つのプロパティがあります:type,stylesheetそしてscreenshareType、これらはそれぞれ文字列です。の有効な値はlayoutプロパティは以下の通りです"bestFit"(ベストフィット)、"custom"(カスタム)、"horizontalPresentation"(水平プレゼンテーション)、"pip"(ピクチャー・イン・ピクチャー)、そして"verticalPresentation"(縦向き表示)。もし"custom"レイアウト・タイプを設定します。stylesheetプロパティのlayoutスタイルシートに異議を唱える。(その他のレイアウトタイプについては、stylesheetプロパティ。)以下の設定を行います。screenshareTypeセッションに画面共有ストリームが存在する場合に使用するレイアウトタイプを指定するプロパティです。(このプロパティはオプションです。)なお、screenshareTypeプロパティについては、typeプロパティを "bestFit "に設定する。stylesheetプロパティが設定されていません。初期のレイアウトタイプを指定しない場合、ブロードキャストストリームでは「Best Fit」レイアウトタイプが使用されます。詳細については、以下を参照してください。 OpenTokのライブストリーミング機能における動画レイアウトの設定. -
multiBroadcastTag(文字列) — (オプション) 同じセッションに対して複数のブロードキャストを同時にサポートするには、これを設定します。進行中のセッションの同時ブロードキャストごとに、一意の文字列を設定してください。詳しくは 同時放送. -
maxBitrate(オプション) — ブロードキャストストリームの最大ビットレート(ビット/秒)。最小値は 100,000、最大値は 6,000,000 です。 -
maxDuration(整数) — オプション。ブロードキャストの最大継続時間(秒単位)。最大継続時間に達すると、ブロードキャストは自動的に停止します。 最大継続時間は、60(60秒)から36000(10時間)までの値に設定できます。デフォルトの最大継続時間は4時間(14,400秒)です。 -
outputs(オブジェクト) — 必須。このオブジェクトは、開始したいブロードキャストストリームの種類(HLS および RTMP の両方)を定義します。ブロードキャストストリームとして、HLS、RTMP、またはその両方を指定できます。RTMP ストリーミングを含める場合、最大 5 つのターゲット RTMP ストリーム(または 1 つだけ)を指定できます。各RTMPストリームについて、以下を指定してください。
serverUrl(RTMPサーバーのURL)、streamName(ストリーム名。YouTube Liveのストリーム名やFacebookのストリームキーなど)および(任意で)id(ストリームの一意のID)。必ずポート番号を指定してください。serverUrl、つまり"rtmps://myfooserver:443/myfooapp"(代わりに"rtmps://myfooserver/myfooapp"). IDを指定すると、そのIDはREST呼び出しのレスポンスに含まれ、 ライブストリーミング放送に関する情報を取得するためのRESTメソッド. Vonageは、指定した各RTMP URLにセッションをストリーミング配信します。なお、OpenTokのライブストリーミングでは、RTMPおよびRTMPSがサポートされています。HLSの場合は、1つの
hlsプロパティのoutputsオブジェクト。このオブジェクトには、以下のオプションのプロパティが含まれます:dvr(ブール値) — 有効にするかどうか DVR機能 — 巻き戻し、一時停止、再生再開 — これらに対応しているプレーヤーでは(true)、あるいはそうでない場合(false(デフォルト設定)。DVRを有効にすると、HLS URLには?DVRクエリ文字列が末尾に追加される。lowLatency(ブール値) — 有効にするかどうか 低遅延モード HLSstreamの場合。一部のHLSプレーヤーは低遅延モードに対応していません。この機能は、DVRモードのHLS配信とは互換性がありません。
HLSのURLは、レスポンスおよびライブストリーミング放送に関する情報を取得するためのRESTメソッドで返されます。
-
resolution(文字列) — ブロードキャストの解像度:以下のいずれか"640x480"(SD横向き、デフォルト)、"1280x720"(HD 横向き)、"1920x1080"(FHD 横向き)、"480x640"(SDポートレート)、"720x1280"(HD縦向き)、または"1080x1920"(FHD 縦向き)。モバイルデバイスからの動画ストリーム(多くの場合、縦向きアスペクト比が使用される)を含む放送では、縦向きアスペクト比を使用することをお勧めします。このプロパティはオプションです。 -
streamMode(文字列) — (オプション) 放送に含まれるストリームを自動的に選択するかどうか ("auto"(デフォルト)または手動で("manual"). ストリームが自動的に選択される場合("auto")、そのセッション内のすべての配信を放送に含めることができます。配信を手動で選択する場合は("manual")、どのストリームを含めるかは、 このRESTメソッド. 配信にストリームの音声、動画、あるいはその両方を含めるかどうかを指定できます。自動モードと手動モードのいずれにおいても、配信コンポーザーは以下に基づいてストリームを含めます。 ストリーム優先ルール.
RTMP URL を 1 つだけサポートする必要がある場合は、 rtmp RESTメソッドを呼び出す際に指定するPOSTデータ内のプロパティ値。たとえば、以下のPOSTデータは1つのRTMP出力URLを指定しています(HLS出力は含まれていません):
{
"sessionId": "",
"layout": {
"type": "custom",
"stylesheet": "the layout stylesheet (only used with type == custom)"
},
"outputs": {
"rtmp": {
"id": "my-id",
"serverUrl": "rtmp://myserver:443/myapp",
"streamName": "my-stream-name"
}
}
}
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"id": "1748b7070a81464c9759c46ad10d3734",
"sessionId": "2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4",
"projectId": 100,
"createdAt": 1437676551000,
"updatedAt": 1437676551000,
"resolution": "640x480",
"status": "started",
"streamMode": "auto",
"streams": [],
"multiBroadcastTag": "broadcast-1234b",
"broadcastUrls": {
"hls" : "http://server/fakepath/playlist.m3u8",
"hlsStatus": "connecting",
"rtmp": [{
"id": "foo",
"status": "connecting",
"serverUrl": "rtmps://myfooserver:443/myfooapp",
"streamName": "myfoostream",
}, {
"id": "bar",
"status": "connecting",
"serverUrl": "rtmp://mybarserver:443/mybarapp",
"streamName": "mybarstream",
}]
}
}
JSONオブジェクトには以下のプロパティが含まれる:
id— ブロードキャストの固有IDsessionId— OpenTokのセッションIDprojectId— お客様の OpenTok API キーcreatedAt— 放送が開始された時刻。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表したもの。updatedAt— この起動方法の場合、このタイムスタンプは createdAt のタイムスタンプと一致します。resolution— 放送の解像度(「640x480」、「1280x720」、「1920x1080」、 「480x640」、「720x1280」、または「1920x1080」)の解像度。status- に設定されている。"started".streamMode- すべてのストリームをブロードキャストに含めるかどうか ("auto")、または放送に含めるストリームを選択する("manual").streams- 現在ブロードキャストされているストリームに対応するオブジェクトの配列。これはstatusに設定する。"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId- 放送に含まれるストリームのストリームID。hasAudio- ストリームの音声を放送に含めるかどうか。hasVideo- ストリームのビデオを放送に含めるかどうか。
maxDuration— 放送の最大継続時間(設定されている場合)を秒単位で指定します。multiBroadcastTag- 同時放送用のユニークタグ(設定されている場合)。broadcastUrls— HLSおよびRTMPの配信に関する詳細情報を格納するオブジェクト。
HLSエンドポイントを指定した場合、そのオブジェクトには hls プロパティと、ある hlsStatus プロパティ。その hls このプロパティには、HLS配信のURLが設定されます。なお、このHLS配信URLは、.tsメディアセグメントファイル(MPEG-2トランスポートストリームファイル)へのURL一覧を含む、.M3U8形式のプレイリストであるインデックスファイルを指しています。 プレイリストのインデックスファイルとメディアセグメントファイルの両方のURLは、HTTPレスポンスが返されるとすぐに提供されますが、OpenTokセッションにおけるHLS配信とライブストリームの間には遅延が生じるため、HLS配信が開始されてから15~20秒経過するまでは、これらのURLにアクセスしないでください。詳しくは https://developer.apple.com/library/ios/technotes/tn2288/_index.html HLSのプレイリストインデックスファイルおよびメディアセグメントファイルに関する詳細については、以下をご覧ください。 hlsStatus プロパティを以下のいずれかに設定する:
"connecting"— OpenTokサーバーは現在、トランスコーダーの起動中です。これは初期状態です。"ready"— OpenTokサーバーは正常に初期化されましたが、CDNがメディアを処理していません。"live"— OpenTokサーバーの初期化が完了し、CDNがメディアを配信しています。"ended"- ソースストリームが終了した。DVRが有効で録画済みメディアが要求された場合、ステータスは次のように遷移します。"live"."error"— OpenTokプラットフォームでエラーが発生しています。
RTMPストリームのエンドポイントを指定した場合、そのオブジェクトには rtmp プロパティ。これは、各RTMPストリームに関する情報を含むオブジェクトの配列です。これらのオブジェクトにはそれぞれ、以下のプロパティがあります: id (RTMPストリームに割り当てたID)、 serverUrl (サーバーのURL)、 streamName (ストリーム名)、および status プロパティ(これは "connecting"). 以下の関数を呼び出すことができます。 ブロードキャストのステータス更新を確認するための OpenTok REST メソッド.
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータ内のデータが不正なJSONであることを示している可能性があります。また、無効なレイアウトオプションが指定されたことを示している場合もあります。あるいは、OpenTokセッションにおける同時RTMPストリームの制限数(5つ)を超過しているか、無効な解像度が指定されている可能性があります。
- 403 — 認証エラー。
- 409 — 当該セッションの配信はすでに開始されています。あるいは、一意な
multiBroadcastTag値である。 - 500 — OpenTok サーバーエラー。
例
curl -i \
-X POST \
-H X-OPENTOK-AUTH:JWT_TOKEN \
-H "Content-Type:application/json" \
-D "{ \
\"sessionId\": \"your-opentok-session-id\", \
\"layout\": { \
\"type\": \"custom\", \
\"stylesheet\": \"custom-stylesheet-data\" \
}, \
\"outputs\": { \
\"hls\": {}, \
\"rtmp\": [{ \
\"id\": \"foo\", \
\"serverUrl\": \"rtmps://myfooserver:443/myfooapp\", \
\"streamName\": \"myfoostream\" \
}, \
{ \
\"id\": \"bar\", \
\"serverUrl\": \"rtmp://mybarserver:443/mybarapp\", \
\"streamName\": \"mybarstream\" \
}] \
} \
}" \
https://api.opentok.com/v2/project/$apiKey/broadcast
ライブ配信の中止
この方法を使用して、OpenTok セッションのライブ配信を停止します。
なお、最後のクライアントがセッションから切断されてから60秒後に、配信は自動的に停止します。また、各HLSおよびRTMPストリームには、デフォルトで最大4時間(14,400秒)の配信時間制限が設定されています(この時間に達すると、ライブ配信は自動的に停止します)。 以下の設定を行うことで、配信の最大継続時間を変更できます。 maxDuration その際、 放送開始 RESTメソッド。
broadcast//stop への HTTP POST
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/broadcast/<broadcastId>/stop
交換 <apiKey> OpenTok API キーを指定してください。以下の部分を置き換えてください <broadcastId> 停止したい配信のIDを指定してください。配信IDは、配信を開始した際に取得できます。
POSTヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"id": "1748b707-0a81-464c-9759-c46ad10d3734",
"sessionId": "2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4",
"projectId": 100,
"createdAt": 1437676551000,
"updatedAt": 1437936607000,
"resolution": "640x480",
"broadcastUrls": null
}
JSONオブジェクトには以下のプロパティが含まれる:
id— ブロードキャストの固有IDsessionId— 配信中のOpenTokセッションのIDprojectId— お客様の OpenTok API キーcreatedAt— 放送開始時刻。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過秒数で表される。updatedAt— 放送が停止された時刻。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過秒数で表される。resolution- 放送の解像度("640x480"、"1280x720"、"1920x1080"、"480x640"、"720x1280"、"1080x1920 "のいずれか)。status- に設定されている。"stopped".streamMode- すべてのストリームをブロードキャストに含めるかどうか ("auto")、または放送に含めるストリームを選択する("manual").streams— 現在配信中のストリームに対応するオブジェクトの配列。stopメソッドが呼び出された場合は、この配列は空になります。maxDuration— 放送の最大継続時間(設定されている場合)を秒単位で指定します。multiBroadcastTag- 同時放送用のユニークタグ(設定されている場合)。broadcastUrls— stop メソッドでは、これは null に設定されます。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが不正なJSONであることを示している可能性があります。
- 403 — 認証エラー。
- 404 — 指定されたIDの放送が見つかりませんでした。または、すでに終了しています。
- 500 — OpenTok サーバーエラー。
例
curl -i \
-X POST \
-H X-OPENTOK-AUTH:JWT_TOKEN \
https://api.opentok.com/v2/project/API_KEY/broadcast/BROADCAST_ID/stop
ライブ配信の一覧
このメソッドを使用すると、現在進行中および開始済みの放送の詳細を取得できます。 終了した放送は一覧に含まれません。
ブロードキャストへのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/broadcast
交換 <apiKey> OpenTok APIキーを指定してください。
以下のクエリパラメータが使用可能です:
offset(任意) — 既存の放送リストにおける開始オフセットcount(オプション、デフォルト: 50、最大: 1000) — オフセットから 取得するブロードキャストの数sessionId(オプション):指定されたセッションIDのブロードキャストのみを取得する
GETヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです:
{
"count" : 2,
"items" : [
{
"id": "1748b707-0a81-464c-9759-c46ad10d3734",
"sessionId": "2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4",
"projectId": 100,
"createdAt": 1437676551000,
"updatedAt": 1437676551000,
"resolution": "640x480",
"broadcastUrls": {
"hls" : "http://server/fakepath/playlist.m3u8",
"hlsStatus": "live",
"rtmp": {
"foo": {
"serverUrl": "rtmps://myfooserver:443/myfooapp",
"streamName": "myfoostream",
"status": "started"
},
"bar": {
"serverUrl": "rtmp://mybarserver:443/mybarapp",
"streamName": "mybarstream",
"status": "live"
}
}
}
"status": "started",
"streamMode" : "manual",
"streams" : []
}, {
"id": "1c46ad10-0a81-464c-9759-748b707d3734",
"sessionId": "2_MX2NzY1NDgwMTJ4xMDBfjE0Mzc-Tfn4jMz",
"projectId": 100,
"createdAt": 1437676853000,
"updatedAt": 1437676853000,
"resolution": "640x480",
"broadcastUrls": {
"hls" : "http://server/fakepath2/playlist.m3u8",
"hlsStatus": "live",
"rtmp": {
"foo": {
"serverUrl": "rtmp://myfooserver:443/myfooapps",
"streamName": "myfoostreams",
"status": "live"
}
}
},
"settings": {
"hls": {
"dvr": false,
"lowLatency": false
}
},
"status": "started",
"streamMode" : "auto"
}
]
}
JSONオブジェクトには以下のプロパティが含まれる:
count— 検索結果に含まれる放送の総数。items— 取得された各放送を定義するオブジェクトの配列。 返される結果セットでは、放送は新しいものから古いものの順に一覧表示されます。
各放送オブジェクト(アイテム)には、以下のプロパティがあります:
-
id— ブロードキャストの一意のID -
sessionId— OpenTokのセッションID -
projectId— お客様の OpenTok API キー -
createdAt— 放送が開始された時刻。Unixエポック(1970年1月1日 00:00:00 UTC)からの 経過時間をミリ秒単位で表したもの -
updatedAt— このGETメソッドの場合、このタイムスタンプはcreatedAtの タイムスタンプと一致します。 -
resolution— 放送の解像度(「640x480」、「1280x720」、 「1920x1080」、「480x640」、「720x1280」、または「1080x1920」)のいずれか。 -
status— ブロードキャストのステータス。このメソッドは、ステータスが に設定されているブロードキャストのみを返します。"started". -
maxDuration— 放送の最大継続時間(設定されている場合)を秒単位で指定します。 -
multiBroadcastTag- 同時放送用のユニークタグ(設定されている場合)。 -
broadcastUrls- HLSおよびRTMP放送ストリームの詳細。HLSストリームの場合、URLは
hlsプロパティ。 詳しくは OpenTok ライブストリーミング開発者ガイド このURLの使い方に関する 詳細については、hlsStatusプロパティを以下のいずれかに設定する:"connecting"— OpenTokサーバーは現在、トランスコーダーの起動中です。 これは初期状態です。"ready"— OpenTokサーバーの初期化は正常に完了しましたが、 CDNがメディアを処理していません。"live"— OpenTokサーバーの初期化が完了し、 CDNがメディアを配信しています。"ended"— ソースストリームが終了しました。DVRが有効になっており、 事前に録画されたメディアが要求された場合、ステータスは 次の状態に移行します。live"."error"— OpenTokプラットフォームでエラーが発生しています。
各RTMPストリームについて、RTMPサーバーのURLとストリーム名に加え、RTMP ストリームのステータスが表示されます。その
statusプロパティを以下のいずれかに設定する:connecting— OpenTokプラットフォームは、 リモートRTMPサーバーへの接続処理中です。これは初期状態であり、セッション内に公開されているストリームが ない状態で開始した場合のステータスです。ストリームが存在すると、「live」に変わります(あるいは、 他のいずれかの状態に切り替わります)。live— OpenTokプラットフォームは、リモートのRTMP サーバーへの接続に成功し、メディアのストリーミングが行われています。offline— OpenTokプラットフォームがリモートのRTMP サーバーに接続できませんでした。 これは、サーバーに接続できないか、RTMPハンドシェイクでエラーが発生したことが原因です。原因としては、 RTMP接続の拒否、RTMP Applicationsが存在しない、ストリーム名の拒否、 認証エラーなどが挙げられます。サーバーがオンラインであるか、また 正しいサーバーURLとストリーム名が指定されているかを確認してください。error— OpenTokプラットフォームでエラーが発生しています。
-
settings- HLS放送ストリームの詳細このsettingsオブジェクト には、hlsプロパティを持つ: -
streamMode- すべてのストリームをブロードキャストに含めるかどうか ("auto") または、 配信に含めるストリームを選択します("manual").参照 ライブ配信に含める 配信ストリームの選択. -
streams— 放送については"manual"streamModeそしてstatusに設定する。"started", これは、現在配信中のストリームに対応するオブジェクトの配列です。配列内の各 オブジェクトには、以下のプロパティが含まれています:streamId- 放送に含まれるストリームのストリームID。hasAudio- ストリームの音声を放送に含めるかどうか。hasVideo- ストリームのビデオを放送に含めるかどうか。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功
- 403 — 認証エラー
- 500 — OpenTok サーバーエラー
例
すべての放送を一覧表示(最大50件):
curl -i \
-X GET \
-H X-OPENTOK-AUTH:JWT_TOKEN \
https://api.opentok.com/v2/project/API_KEY/broadcast
一連の放送番組の一覧:
curl -i \
-X GET \
-H X-OPENTOK-AUTH:JWT_TOKEN \
https://api.opentok.com/v2/project/API_KEY/broadcast?offset=200&count=100
指定されたセッションIDの放送一覧を表示する:
SESSION_ID="1_MX40NTMyODc3Mn5-MTU1MDg3NDIHVXBxbkp3Qzd-fg"
curl -i \
-X GET \
-H X-OPENTOK-AUTH:JWT_TOKEN \
https://api.opentok.com/v2/project/API_KEY/broadcast?sessionId=$SESSION_ID
ライブ配信に関する情報の入手
このメソッドを使用して、現在進行中の放送の詳細を取得します。
ブロードキャストへのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/broadcast/<broadcastId>
交換 <apiKey> OpenTok API キーを指定してください。以下の部分を置き換えてください <broadcastId> 放送のIDを指定します。放送IDは、放送を開始した際に取得できます。
注: 以前は、このREST URLでは /partner (現在は非推奨となっています)の代わりに /project.
GETヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージです。
{
"id": "1748b707-0a81-464c-9759-c46ad10d3734",
"sessionId": "2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4",
"projectId": 100,
"createdAt": 1437676551000,
"updatedAt": 1437676551000,
"resolution": "640x480",
"streamMode" : "auto",
"streams" : [],
"broadcastUrls": {
"hls" : "http://server/fakepath/playlist.m3u8",
"hlsStatus": "live",
"rtmp": {
"foo": {
"serverUrl": "rtmps://myfooserver:443/myfooapp",
"streamName": "myfoostream",
"status": "live"
},
"bar": {
"serverUrl": "rtmp://mybarserver:443/mybarapp",
"streamName": "mybarstream",
"status": "live"
}
}
},
"settings": {
"hls": {
"dvr": false,
"lowLatency": false
}
},
"status": "live"
}
JSONオブジェクトには以下のプロパティが含まれる:
-
id— ブロードキャストの固有ID -
sessionId— OpenTokのセッションID -
projectId— お客様の OpenTok API キー -
createdAt— 放送が開始された時刻。Unixエポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表したもの。 -
updatedAt- このGETメソッドでは、このタイムスタンプはcreatedAtタイムスタンプと一致する。 -
resolution- 放送の解像度("640x480"、"1280x720"、"1920x1080"、"480x640"、"720x1280"、"1080x1920 "のいずれか)。 -
status— 放送の状況:以下のいずれか"started"または"stopped". -
broadcastUrls- HLSおよびRTMP放送ストリームの詳細。HLSストリームの場合、URLは
hlsプロパティを参照してください。を参照のこと。 OpenTok ライブストリーミング開発者ガイド このURLの使用方法の詳細については、こちらをご覧ください。そのhlsStatusプロパティを以下のいずれかに設定する:
"connecting"— OpenTokサーバーは現在、トランスコーダーの起動中です。これは初期状態です。"ready"— OpenTokサーバーの初期化は正常に完了しましたが、CDNがメディアを処理していません。"live"— OpenTokサーバーの初期化が完了し、CDNがメディアを配信しています。"ended"- ソースストリームが終了した。DVRが有効で録画済みメディアが要求された場合、ステータスは次のように遷移します。"live"."error"— OpenTokプラットフォームでエラーが発生しています。
各RTMPストリームについて、RTMPサーバーのURLとストリーム名、およびRTMPストリームのステータスが提供される。
-
status— RTMPストリームの状態。状態の更新を確認するために、頻繁にポーリングを行ってください。このプロパティには、以下のいずれかの値が設定されます:connecting— OpenTokプラットフォームは、リモートRTMPサーバーへの接続処理中です。これは初期状態であり、セッションに配信中のストリームがない状態で開始した場合のステータスです。ストリームが存在するようになると、「ライブ」に変わります(あるいは、他のいずれかの状態に切り替わります)。live— OpenTokプラットフォームは、リモートのRTMPサーバーへの接続に成功し、メディアのストリーミングが行われています。offline— OpenTokプラットフォームがリモートのRTMPサーバーに接続できませんでした。 これは、サーバーに接続できないか、RTMPハンドシェイクでエラーが発生したためです。原因としては、RTMP接続の拒否、RTMP Applicationsが存在しない、ストリーム名の無効、認証エラーなどが考えられます。サーバーがオンライン状態であるか、正しいサーバーURLとストリーム名が指定されているかを確認してください。error— OpenTokプラットフォームでエラーが発生しています。
-
settings- HLS放送ストリームの詳細このpropertiesオブジェクトにはhlsプロパティを持つ: -
multiBroadcastTag- 同時放送用のユニークタグ(設定されている場合)。 -
streamMode- すべてのストリームをブロードキャストに含めるかどうか ("auto")、または放送に含めるストリームを選択する("manual").参照 ライブ・ストリーミング放送に含めるストリームの選択. -
streams- 現在ブロードキャストされているストリームに対応するオブジェクトの配列。これはstatusに設定する。"started"そしてstreamModeに設定する。"manual".配列の各オブジェクトは以下のプロパティを含む:streamId- 放送に含まれるストリームのストリームID。hasAudio- ストリームの音声を放送に含めるかどうか。hasVideo- ストリームのビデオを放送に含めるかどうか。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功
- 400 — 無効なリクエスト
- 403 — 認証エラー
- 404 — 指定されたIDに一致する放送が見つかりませんでした
- 500 — OpenTok サーバーエラー
例
curl -i \
-X GET \
-H X-OPENTOK-AUTH:JWT_TOKEN \
https://api.opentok.com/v2/project/API_KEY/broadcast/BROADCAST_ID
ライブ・ストリーミング放送中にレイアウトの種類を動的に変更する
ライブストリーミング放送のレイアウトタイプを動的に変更できます。
OpenTokのライブ配信に関する詳細については、以下を参照してください。 放送開発者ガイド.
ブロードキャストへのHTTP PUTリクエスト
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<apiKey>/broadcast/<broadcastId>/layout
交換 <apiKey> OpenTok APIキーを指定してください。
交換 <broadcastId> 放送IDとともに。
PUTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
PUTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"type": "custom",
"stylesheet": "the layout stylesheet (only used with type == custom)",
"screenshareType": "the layout type to use when there is a screen-sharing stream (optional)"
}
JSONオブジェクトには以下のプロパティが含まれる:
- タイプ (文字列) — ブロードキャストのレイアウトタイプ。有効な値は以下の通りです。
"bestFit"(ベストフィット)、"custom"(カスタム)、"horizontalPresentation"(水平プレゼンテーション)、"pip"(ピクチャー・イン・ピクチャー)、そして"verticalPresentation"(縦向き表示)。もし"custom"レイアウト・タイプを設定します。stylesheetスタイルシートにプロパティを追加します。(その他のレイアウトタイプの場合は、stylesheetプロパティ。) 詳細については、以下を参照してください。 OpenTokのライブストリーミング機能における動画レイアウトの設定. - スタイルシート (文字列) — 省略可能。これを指定するのは、
typeプロパティ"custom".を設定する。stylesheetスタイルシートにプロパティを追加します。(その他のレイアウトタイプの場合は、stylesheetプロパティ。) 詳細については、以下を参照してください。 カスタムレイアウトの定義. - screenshareType (文字列) — オプション。セッションに画面共有ストリームが存在する場合に使用するレイアウトの種類。なお、このプロパティを使用するには、
typeプロパティを "bestFit "に設定する。stylesheetプロパティは設定されていません。詳しくは 画面共有のためのレイアウトタイプ.
「Best Fit」以外のレイアウトタイプを指定する場合は、OpenTok セッション内のストリームに適切なレイアウトクラスを適用するようにしてください(参照: OpenTokストリームへのライブストリーミングレイアウトクラスの割り当て.
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが無効なJSONであることを示している可能性があります。また、無効なレイアウトオプションが指定されたことを示している可能性もあります。
- 403 — 認証エラー。
- 500 — OpenTok サーバーエラー。
例
curl -i \
-X PUT \
-H X-OPENTOK-AUTH:JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"type\":"verticalPresentation"} \
https://api.opentok.com/v2/project/$apiKey/broadcast/$broadcastId/layout
OpenTokストリームのライブストリーミングレイアウトクラスの変更
このメソッドを使用して、OpenTok ストリームのレイアウトクラスを変更します。レイアウトクラスは、放送ストリームのレイアウト内でそのストリームがどのように表示されるかを定義します。詳細については、以下を参照してください。 OpenTokストリームへのライブストリーミングレイアウトクラスの割り当て.
ストリームへのHTTP PUTリクエスト
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<apiKey>/session/<sessionId>/stream
交換 <apiKey> OpenTok APIキーを指定してください。
交換 <sessionId> セッションIDとともに。
PUTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
PUTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"items": [
{
"id": "8b732909-0a06-46a2-8ea8-074e64d43422",
"layoutClassList": ["full"]
}
]
}
このJSONオブジェクトには、 items オブジェクトの配列。各オブジェクトは、ストリームに割り当てるレイアウトクラスを定義しており、以下のプロパティを含んでいます:
- id (文字列) — ストリーム ID。
- layoutClassList (配列) — ストリーム用のレイアウトクラスの配列(各要素は文字列)。
複数のストリームのレイアウトクラス一覧を更新するには、 items 配列である。
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功。
- 400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが無効なJSONであることを示している可能性があります。また、無効なレイアウトオプションが指定されたことを示している可能性もあります。
- 403 — 認証エラー。
- 500 — OpenTok サーバーエラー。
例
curl -i \
-X PUT \
-H X-OPENTOK-AUTH:JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"streamId\":STREAM_ID,\"layoutClassList\":[\"CLASS_NAME\"]} \
https://api.opentok.com/v2/project/$apiKey/session/$sessionId
ライブ・ストリーミング放送に含めるストリームの選択
この方法を使用して、
で開始されたライブ配信に含まれるストリームを変更します。 streamMode に設定する。 "manual" 参照 ライブ配信を開始する).
この放送用コンポーザーには、以下に基づいて追加されたストリームが含まれています。 ストリーム優先ルール.
broadcast/streams への HTTP PATCH リクエスト
以下のURLに対してHTTP PATCHリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/broadcast/<broadcastId>/streams
交換 <apiKey> OpenTok API キーを指定してください。
以下を置き換えてください <broadcastId> 放送IDとともに。
PATCHヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
PATCHデータ
放送にストリームを追加するには、リクエスト本文として以下の形式のJSONオブジェクトを含めてください:
{
"addStream": "12312312-3811-4726-b508-e41a0f96c68f",
"hasAudio": true,
"hasVideo": false
}
この JSON オブジェクトには、以下のプロパティが含まれています:
- addStream (文字列) — ストリーム ID。
- hasAudio (ブール値、省略可) — ブロードキャストにストリームの音声を含めるかどうか
(
true(デフォルト)か、そうでないか(false). - hasVideo (ブール値、省略可) — ブロードキャストにストリームの映像を含めるかどうか
(
true(デフォルト)か、そうでないか(false).
このメソッドは、次のようにして繰り返し呼び出すことができます。 addStream 同じストリームIDに設定することで、配信中の
ストリームの音声または映像を切り替えることができます。
両方を設定すると hasAudio そして hasVideo への false, エラー応答が返されます。
ストリームが放送に含まれないようにするには、リクエスト本文として以下の形式のJSONオブジェクトを 含めてください:
{
"removeStream": "12312312-3811-4726-b508-e41a0f96c68f"
}
を設定する。 removeStream ストリームIDに対するプロパティ。
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 204 — 成功(コンテンツなし)。
- 400 — 無効なリクエスト。この応答は、リクエストで提供されたデータが
無効なJSONであるか、またはブロードキャストが
で開始されたため、リクエストを処理できなかったことを示している可能性があります。
streamModeに設定する。"auto", これはストリームの操作に対応していません。 - 403 — 認証エラー。
- 404 — 放送またはストリームが見つかりません。
- 500 — OpenTok サーバーエラー。
例
配信にストリームを追加する:
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"addStream\":$STREAM_ID} \
https://api.opentok.com/v2/project/$apiKey/broadcast/$BROADCAST_ID/streams
配信中のストリームから映像を削除する(音声は残したまま):
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"addStream\":\"$STREAM_ID\", \"hasAudio\":true, \"hasVideo\":false } \
https://api.opentok.com/v2/project/$apiKey/broadcast/$BROADCAST_ID/streams
放送からストリームを削除する:
curl -i \
-X PATCH \
-H X-OPENTOK-AUTH:$JWT_TOKEN \
-H "Content-Type:application/json" \
-D {\"removeStream\":\"$STREAM_ID\"} \
https://api.opentok.com/v2/project/$apiKey/broadcast/$BROADCAST_ID/streams
ライブ字幕の開始
この方法を使用して、OpenTokセッションでリアルタイムのライブキャプションを開始します。
許可される最大時間は4時間です。この時間が経過すると、音声字幕機能は停止しますが、進行中のOpenTokセッションには影響はありません。また、最後のクライアントが切断してから60秒後に、字幕セッションも終了します。字幕機能の開始時にコールバックURLが指定されている場合、そのURLにイベントが送信されます。
各OpenTokセッションでは、1つの音声キャプションセッションのみをサポートしています。
「ライブキャプション」機能の詳細については、以下の ライブ・キャプション開発者ガイド.
ライブキャプションを開始するためのHTTP POSTリクエスト
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/captions
交換 <apiKey> OpenTok APIキーを指定してください。
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId": "<session-id>",
"token": "A valid OpenTok token with the role set to moderator",
"languageCode": "en-US",
"maxDuration": 1800,
"partialCaptions": true,
}
JSONオブジェクトには以下のプロパティが含まれる:
sessionId(文字列) — OpenTok セッションのセッション ID。このセッションに配信を行っているパブリッシャーからの音声は、キャプションの生成に使用されます。token(文字列) — ロールが「Moderator」に設定された有効な OpenTok トークン。languageCode(文字列) — (省略可) Live Captions で使用される言語の BCP-47 コード(参照: 対応言語の一覧). デフォルト値は「en-US」です。maxDuration(整数) — (オプション) 音声キャプションの最大再生時間(秒単位)。デフォルト値は 14,400 秒(4 時間)で、これは許可される最大再生時間です。最小値はmaxDurationは 300 です(300 秒、つまり 5 分)。partialCaptions(ブール値) — (オプション) ある程度の不正確さを許容する代わりに、キャプション生成を高速化するためにこの機能を有効にするかどうか。デフォルト値はtrue.
応答
成功した場合、ステータスコード 200 の HTTP レスポンスの生データは、以下の形式の JSON エンコードされたメッセージとなります:
{
"captionsId": "7c0680fc-6274-4de5-a66f-d0648e8d3ac2"
}
このJSONオブジェクトには、以下のプロパティが含まれています:
captionsId— 音声字幕セッションの一意のID。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 202 — 受理されました。
- 400 — 不正なリクエスト。この応答は、リクエスト内のデータに許容できないエラーがあることを示している可能性があります。
- 403 — 認証エラー。指定された
X-OPENTOK-AUTH無効である可能性があります。 - 409 — このOpenTokセッションでは、すでにライブ字幕の配信が始まっています。
- 500 — Vonage Video API プラットフォームのエラー。
例
curl -X POST \
-H 'X-OPENTOK-AUTH: ' \
-H 'Content-Type: application/json' \
-d '{
"sessionId": "<valid-session-id>",
"token": "<valid-token>",
}'
https://api.opentok.com/v2/project/<apiKey>/captions
ライブキャプションを停止する
セッションのライブキャプションを停止するには、この方法を使用してください。
ライブキャプションを停止するためのHTTP POSTリクエスト
以下のURLに対してHTTP POSTリクエストを送信してください:
POST https://api.opentok.com/v2/project/<apiKey>/captions/<captionsId>/stop
交換 <apiKey> OpenTok API キーを指定してください。以下の部分を置き換えてください <captionsId> start captions APIのレスポンスで返されたIDを使用して。
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH — JSON Webトークンに設定されます。詳しくは 認証.
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 202 — 受理済み
- 403 — 認証エラー
- 404 — 一致する captionsId が見つかりませんでした
- 500 — Vonage Video API プラットフォームのエラー
例
curl
-X POST
-H "Content-Type: application/json"
-H "X-OPENTOK-AUTH:<valid-jwt-token>"
https://api.opentok.com/v2/project/<apiKey>/captions/<captionsId>/stop;
エクスペリエンス・コンポーザーの起動
この方法を使用して、OpenTok セッション用のエクスペリエンス・コンポーザーを作成します。詳細については、 以下を参照してください。 Experience Composer 開発者ガイド.
レンダリングのためのHTTP POSTリクエスト
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/render
交換 <apiKey> OpenTok APIキーを指定してください。
POSTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId": "<session-id>",
"token": "A valid OpenTok token",
"url": "https://webapp.customer.com",
"maxDuration": 1800,
"resolution": "1280x720",
"properties": {
"name": "Composed stream for Live event #1"
}
}
JSONオブジェクトには以下のプロパティが含まれる:
- sessionId (String) — Experience Composerのストリームを 含むOpenTokセッションのセッションID。
- token (String) — Publisher ロールを持つ有効な OpenTok トークン、および(オプションで) 出力ストリームに関連付ける接続データ。
- url (文字列) — 顧客が管理し、外部からアクセス可能なURLで、 ユーザーの操作を必要とせずに、レンダリング対象のコンテンツを生成できるもの。URLの最小長は15文字、最大長は2048文字です。
- maxDuration (整数) — (オプション) Experience Composer の最大実行時間(秒単位)。この 時間が経過しても実行が継続している場合、自動的に停止されます。 最大値は 36000(10 時間)、 最小値は 60(1 分)、デフォルト値は 7200(2 時間)です。 エクスペリエンス・コンポーザーが終了すると、 そのストリームの公開が解除され、Account ポータルで設定されている場合は、コールバック URL にイベントが送信されます。
- 解像度 (文字列) — (オプション) Experience Composer の解像度。 「640x480」(SD 横向き)、 「480x640」(SD 縦向き)、 「1280x720」(HD 横向き)、「720x1280」(HD 縦向き)、 「1920x1080」(FHD 横向き)、または「1080x1920」(FHD 縦向き)のいずれかです。 デフォルトでは、この解像度は「1280x720」(HD 横向き、デフォルト)に設定されています。
- properties (Object) — (オプション) 合成された 出力ストリームに対する Publisher プロパティの初期設定。このプロパティ オブジェクトには、セッションに公開される合成された出力 ストリームの名前となるキー名 (String) が含まれます。この名前の長さは、1 以上 200 以下でなければなりません。
応答
ステータスコード 200 の HTTP レスポンスの生データは、 以下の形式の JSON エンコードされたメッセージです:
{
"id": "1248e7070b81464c9789f46ad10e7764",
"sessionId": "2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4",
"projectId": "e2343f23456g34709d2443a234",
"createdAt": 1437676551000,
"updatedAt": 1437676551000,
"callbackUrl": "https://callback.customer.com/",
"name": "Composed-HD-Customer-1",
"url": "https://webapp.customer.com",
"resolution": "1280x720",
"status": "starting",
"streamId": "e32445b743678c98230f238"
}
JSONオブジェクトには以下のプロパティが含まれる:
- id — エクスペリエンス・コンポーザーの一意のID。
- sessionId — OpenTokのセッションID。
- projectId — お客様の OpenTok API キー。
- createdAt — Experience Composer が起動した時刻。Unix エポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表します。
- updatedAt — これは、Experience Composer のステータスが最後に更新された時点の UNIX タイムスタンプです。この start メソッドの場合、 このタイムスタンプは createdAt のタイムスタンプと一致します。
- callbackUrl — Experience Composer イベントのコールバック URL(設定されている場合)。詳細は コールバックの設定.
- name — エクスペリエンス・コンポーザーの名前(指定されている場合)。
- url — 顧客が管理し、一般からアクセス可能なURLであり、 ユーザーの操作を必要とせずに、レンダリングされるコンテンツを生成できるものである。
- 解像度 — Experience Composer の解像度(「640x480」、「480x640」、 「1280x720」、「720x1280」、「1920x1080」、または「1080x1920」)の解像度。
- status — このstartメソッドでは、これは「starting」に設定されています。
- streamId — 配信される合成ストリームのID。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
202 — 成功。
-
400 — 無効なリクエスト。この応答は、リクエストデータに含まれるデータが 無効なJSONであることを示している可能性があります。エラーコードが含まれている場合があり、その一部を以下に示します:
- 50001 — アプリケーションのURL構造が無効です。
- 50002 — アプリケーションのURLにアクセスできません。
- 50005 — 指定された maxDuration が無効です。
- 50006 — 指定された解像度が無効です。
- 50007 — 指定されたストリーム名が不正です。
- 50008 — 指定された sessionId が無効です。
-
403 — 認証エラー。エラーコードが含まれる場合があり、その一部を以下に示します:
- 10001 - トークンの形式または署名が不正です。
- 10002 - 無効なトークン。
- 10003 - パートナー認証の形式が不正です。
- 10004 - パートナーによる不正な認証。
- 10007 - トークンがセッション ID と一致しません。
- 10012 - トークンの有効期限が切れています。
-
429 — リクエストが多すぎます。「Experienced Composer」の利用制限を超過しました。応答には、エラーコード 50004 が含まれます。
-
500 — Vonage Video API プラットフォームのエラー。
例
curl
-X POST
-H "Content-Type: application/json"
-H "X-OPENTOK-AUTH:<valid-jwt-token>"
-d '{"url": "<valid-url-to-be-rendered>", "sessionId": "<valid-session-id>", "token": "<valid-token>", "projectId": "<valid-project-id>"}'
https://api.opentok.com/v2/project/<apiKey>/render
エクスペリエンス・コンポーザーに関する情報の入手
このメソッドを使用して、エクスペリエンス・コンポーザーの詳細を取得します。
レンダリングのためのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/render/<experienceComposerId>
交換 <apiKey> OpenTok API キーを指定してください。以下の部分を置き換えてください
<experienceComposerId> エクスペリエンス・コンポーザーのIDを指定します。エクスペリエンス・コンポーザーのIDは、
エクスペリエンス・コンポーザーを起動した際に取得できます。
GETヘッダーのプロパティ
このAPI呼び出しの認証には、JSON Webトークンが設定されたカスタムHTTPヘッダー「X-OPENTOK-AUTH」を使用してください。 詳細については、 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、 以下の形式の JSON エンコードされたメッセージです:
{
"id":"80abaf0d-25a3-4efc-968f-6268d620668d",
"sessionId":"1_MX4yNzA4NjYxMn5-MTU0NzA4MDUyMTEzNn5sOXU5ZnlWYXplRnZGblV4RUo3dXJpZk1-fg",
"projectId":"27086612",
"createdAt":1547080532099,
"updatedAt":1547080532199,
"callbackUrl": "https://callback.customer.com/",
"name": "Composed-HD-Customer-1",
"url": "https://webapp.customer.com",
"resolution": "480x640",
"status":"failed",
"reason":"Could not load URL"
}
JSONオブジェクトには以下のプロパティが含まれる:
- id — エクスペリエンス・コンポーザーの一意のID。
- sessionId — OpenTokのセッションID。
- projectId — お客様の OpenTok API キー。
- createdAt — Experience Composer が起動した時刻。Unix エポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表します。
- updatedAt — この GET メソッドの場合、このタイムスタンプは createdAt のタイムスタンプと一致します。
- callbackUrl — URL Experience Composer のイベントに対するコールバック(設定されている場合)。詳細は コールバックの設定.
- name — エクスペリエンス・コンポーザーの名前(指定されている場合)。
- url — 顧客が管理し、ユーザーの操作を必要とせずに表示されるコンテンツを生成できる、 一般に公開されているURL。
- 解像度 — Experience Composer の解像度(「640x480」、「1280x720」、 「480x640」、または「720x1280」のいずれか)。
- status — Experience Composer のステータス。ステータスの更新を確認するために、頻繁にポーリングを行ってください。
このプロパティには、以下のいずれかの値が設定されます:
- 「開始中」 — Vonage Video API プラットフォームは、指定された URL にあるリモートアプリケーションへの接続を 行っています。これは初期状態です。
- "started" — Vonage Video API プラットフォームは、リモートアプリケーションサーバーへの接続に成功し、 Web ビューを OpenTok ストリームに公開しています。
- 「停止しました」 — Experience Composer が停止しました。
- 「失敗」 — エラーが発生し、Experience Composer を続行できませんでした。これは、OpenTok サーバーがリモートアプリケーションサーバーに接続できない場合や、ストリームを再公開できない場合に、起動時に発生することがあります。また、Vonage Video API プラットフォームのエラーにより、 処理中のどの時点でも発生する可能性があります。
- 理由 — 「理由」フィールドは、ステータスが「停止」または 「失敗」の場合にのみ表示されます。ステータスが「停止」の場合、「理由」フィールドには「最大継続時間を超過」または「停止 要求」のいずれかが表示されます。ステータスが「失敗」の場合、「理由」にはより具体的なエラーメッセージが表示されます。
- streamId — 配信中の合成ストリームのID。streamIdは、 ステータスが「starting」のときは利用できず、ステータスが「failed」のときも利用できない場合があります。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功
- 400 — 無効なリクエスト
- 403 — 認証エラー
- 404 — 指定されたIDに一致する「No Experience Composer」が見つかりませんでした。
- 500 — Vonage Video API プラットフォームのエラー。
例
curl
-X GET
-H "X-OPENTOK-AUTH:<valid-jwt-token>"
https://api.opentok.com/v2/project/<apiKey>/render/<experienceComposerId>
「Experience」の作曲家のリストを取得する
このメソッドを使用して、プロジェクトに関連付けられている「Experience Composer」の一覧を取得します。
レンダリングのためのHTTP GETリクエスト
以下のURLに対してHTTP GETリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/render
交換 <apiKey> OpenTok API キーを指定してください。以下のオプションのクエリパラメータを追加することができます:
- offset — 「Experience Composers」リストの開始オフセット。デフォルトは 0 です。
- count — オフセットから開始して取得するエクスペリエンス・コンポーザーの数。デフォルト値は 50 で、 最大値は 1000 です。
GETヘッダーのプロパティ
このAPI呼び出しの認証には、JSON Webトークンが設定されたカスタムHTTPヘッダー「X-OPENTOK-AUTH」を使用してください。 詳細については、 認証.
応答
ステータスコード 200 の HTTP レスポンスの生データは、 以下の形式の JSON エンコードされたメッセージです:
{
"count":2,
"items":[
{
"id":"80abaf0d-25a3-4efc-968f-6268d620668d",
"sessionId":"1_MX4yNzA4NjYxMn5-MTU0NzA4MDUyMTEzNn5sOXU5ZnlWYXplRnZGblV4RUo3dXJpZk1-fg",
"projectId":"27086612",
"createdAt":1547080532099,
"updatedAt":1547080532099,
"callbackUrl": "callback.customer.com/",
"name": "Composed-HD-Customer-1",
"url": "https://webapp.customer.com",
"resolution": "1280x720",
"status": "started",
"streamId": "d2334b35690a92f78945"
},
{
"id":"d95f6496-df6e-4f49-86d6-832e00303602",
"sessionId":"2_MX4yNzA4NjYxMn5-MTU0NzA4MDUwMDc2MH5STWRiSE1jZjVoV3lBQU9nN2JuNElUV3V-fg",
"projectId":"27086612",
"createdAt":1547080511760,
"updatedAt":1547080518965,
"callbackUrl": "https://callback.customer.com/",
"name": "Composed-HD-Customer-2",
"url": "https://webapp2.customer.com",
"resolution": "1280x720",
"status":"stopped",
"streamId": "d2334b35690a92f78945",
"reason":"Max duration exceeded"
}
]
}
JSONオブジェクトには以下のプロパティが含まれる:
- count — エクスペリエンス・コンポーザーの総数。
- items — 取得されたエクスペリエンス・コンポーザーを含む配列。各エクスペリエンス・コンポーザーの項目には、以下のプロパティが含まれます:
- id — エクスペリエンス・コンポーザーの一意のID。
- sessionId — OpenTokのセッションID。
- projectId — お客様の OpenTok API キー。
- createdAt — Experience Composer が起動した時刻。Unix エポック(1970年1月1日 00:00:00 UTC)からの経過時間をミリ秒単位で表します。
- updatedAt — この GET メソッドの場合、このタイムスタンプは createdAt のタイムスタンプと一致します。
- callbackUrl — Experience Composer イベントのコールバック URL(設定されている場合)。詳細は コールバックの設定.
- name — エクスペリエンス・コンポーザーの名前(指定されている場合)。
- url — 顧客が管理し、ユーザーの操作を必要とせずに表示されるコンテンツを生成できる、 一般に公開されているURL。
- 解像度 — Experience Composer の解像度(「640x480」、「1280x720」、 「480x640」、または「720x1280」のいずれか)。
- status — Experience Composer のステータス。ステータスの更新を確認するために、頻繁にポーリングを行ってください。
このプロパティには、以下のいずれかの値が設定されます:
- 「開始中」 — Vonage Video API プラットフォームは、指定された URL にあるリモートアプリケーションへの接続を 行っています。これは初期状態です。
- "started" — Vonage Video API プラットフォームは、リモートアプリケーションサーバーへの接続に成功し、 Web ビューを OpenTok ストリームに公開しています。
- 「停止しました」 — Experience Composer が停止しました。
- 「失敗」 — エラーが発生し、Experience Composer を続行できませんでした。これは、起動時に OpenTok サーバーがリモートアプリケーションサーバーに接続できない場合や、ストリームを再公開できない場合に発生することがあります。また、Vonage Video API プラットフォームのエラーにより、 処理中のどの時点でも発生する可能性があります。
- 理由 — 「理由」フィールドは、ステータスが「停止」または「失敗」の場合にのみ利用可能です。ステータスが「停止」の場合、「理由」フィールドには「最大継続時間を超過」または「停止 要求」のいずれかが表示されます。 ステータスが「failed」の場合、理由欄にはより具体的なエラーメッセージが表示されます。
- streamId — 配信中の合成ストリームのID。streamIdは、 ステータスが「starting」のときは利用できず、ステータスが「failed」のときも利用できない場合があります。
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 200 — 成功
- 403 — 認証エラー
- 500 — Vonage Video API プラットフォームのエラー。
例
curl
-X GET
-H "X-OPENTOK-AUTH:<valid-jwt-token>"
https://api.opentok.com/v2/project/<apiKey>/render?count=2
エクスペリエンス・コンポーザーを停止する
このメソッドを使用して、OpenTok セッションのエクスペリエンス・コンポーザーを停止します。デフォルトでは、エクスペリエンス・コンポーザーは開始から 2 時間後に自動的に停止することに ご注意ください。また、エクスペリエンス・コンポーザーの作成時に、別の maxDuration 値を設定することも可能です。 エクスペリエンス・コンポーザーが終了すると、コールバック URL が設定されている場合、その URL にイベントが送信されます。 そのプロジェクト用に1つ設定した.
render への HTTP DELETE リクエスト
以下のURLに対してHTTP DELETEリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/render/<experienceComposerId>/
交換 <apiKey> OpenTok API キーを指定してください。以下の部分を置き換えてください
<experienceComposerId> 停止したいエクスペリエンス・コンポーザーのIDを指定します。この
エクスペリエンス・コンポーザーIDは、エクスペリエンス・コンポーザーを起動した際に受け取った応答から取得できます。
DELETEヘッダーのプロパティ
このAPI呼び出しの認証には、JSON Webトークンが設定されたカスタムHTTPヘッダー「X-OPENTOK-AUTH」を使用してください。 詳細については、 認証.
応答
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 204 — コンテンツなし。
- 400 — 無効なリクエスト。
- 403 — 認証エラー。
- 404 — 指定された ID を持つ「エクスペリエンス・コンポーザー」が見つかりませんでした。または、すでに停止しています。
- 500 — Vonage Video API プラットフォームのエラー。
例
curl
-X DELETE
-H "Content-Type: application/json"
-H "X-OPENTOK-AUTH:<valid-jwt-token>"
https://api.opentok.com/v2/project/<apiKey>/render/<experienceComposerId>/
Audio ConnectorのWebSocket接続の開始
この方法を使用して、Vonage Video API セッションからの音声を WebSocket に送信します。
WebSocketデータの詳細など、詳細については、 オーディオコネクタ開発者ガイド.
HTTP POST による接続
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<apiKey>/connect
交換 <apiKey> OpenTok APIキーを指定してください。
POSTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH —
JSON Webトークンに設定されます。詳細については、 認証.
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"sessionId": "OpenTok session ID",
"token": "A valid OpenTok token",
"websocket": {
"uri": "wss://service.com/ws-endpoint",
"streams": [
"streamId-1",
"streamId-2"
],
"headers": {
"headerKey": "headerValue"
},
"audioRate" : 8000,
"bidirectional": false,
"audioTransport": {
"transport": "binary"
}
}
}
JSONオブジェクトには以下のプロパティが含まれる:
-
sessionId(必須) — WebSocket ストリームに含めたい OpenTok ストリームを含む OpenTok セッション ID。 Audio Connector 機能は、ルーティングされたセッション( OpenTok メディアルーター). -
token(必須) — OpenTokセッションへのAudio Connector接続に使用するOpenTokトークン。トークンを追加できます。dataその接続が Audio Connector エンドポイントであることを確認するため、またはその他の識別データを確認するためです。(OpenTok クライアントライブラリには、 セッションに接続されているクライアントの接続データを検査するためのプロパティが含まれています。) Audio Connector を使用して セッションに音声を公開する, トークンの役割をpublisherまたはmoderator. 詳しくは トークン作成 開発者ガイド -
websocket必須):WebSocketに含まれる詳細:-
uri(必須):オーディオストリームの送信先として使用する、 一般にアクセス可能なWebSocket URI(例:「wss://example.com/ws-endpoint」など)。 -
streams(オプション) — WebSocketオーディオに含めたいOpenTokストリームの IDの配列。このプロパティを省略した場合、セッション内のすべての ストリームが含まれます。 -
headers(オプション) - 各メッセージで Web ソケット・サーバーに送信されるヘッダーのキーと値のペアのオブジェクト。 最大長は 512 バイトです。 -
audioRate(オプション) - オーディオ・サンプリング・レート(Hz)を表す数値。 使用可能な値は8000、16000(デフォルト)、24000です。 -
audioTransport(オプション) - 音声をどのようにシリアライズするかを設定するJSONオブジェクト。 JSON オブジェクト。デフォルトでは、音声は生のバイナリ PCM 16 ビットフレームとして送信されます。次のように設定します。 JSONでラップされたbase64オーディオを使用するには、これを設定します。 このオブジェクトには以下のプロパティがあります:transport(必須)-。"binary"(生のPCM16、デフォルト) または"json".encoding(輸送の際に必要"json") -"base64".audio_field(オプション) - 送信オーディオデータのJSONキー。デフォルトは"audio".receive_audio_field(オプション) - 受信音声データのJSONキー(双方向が有効な場合)。デフォルトはaudio_field.static_fields(オプション) - すべての送信 JSON 音声メッセージに含まれる、追加のキーと値のペアのオブジェクト。
-
bidirectional(オプション) — (ブール値) WebSocket 接続からのオーディオデータを、セッション内で公開されているストリームに送信するかどうか。デフォルトはfalse(WebSocketはストリームの配信には使用されません)。詳細は オーディオコネクタ開発者ガイド.
-
応答
呼び出しが成功すると、ステータスコード 200 の HTTP レスポンスが返され、その詳細が JSON レスポンスデータに含まれます:
{
"id": "b0a5a8c7-dc38-459f-a48d-a7f2008da853",
"connectionId": "e9f8c166-6c67-440d-994a-04fb6dfed007"
}
JSONレスポンス・データには、以下のプロパティが含まれる:
-
id- Audio Connector WebSocket 接続を識別する一意の ID。 -
connectionId— OpenTok セッション内の Audio Connector WebSocket 接続に対する OpenTok 接続 ID。
エラーが発生した場合、HTTPレスポンスには以下のステータスコードのいずれかが返されます:
- 400 — 無効なリクエスト。この応答は、リクエストデータ内のデータが 無効なJSONであるか、JSONのプロパティのいずれかが無効であることを示している可能性があります。
- 403 — 認証エラー。
- 409 — ルーティングされたセッションのみが、Audio ConnectorのWebSocket接続を開始できます。
- 500 — OpenTok サーバーエラー。
例
Audio Connector WebSocket の起動:
api_key=12345
json_web_token="jwt_string" # replace with a JSON web token (see "Authentication")
session_id=2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4
data='{\
"sessionId" : "'$session_id'", \
"token": "A valid OpenTok token", \
"websocket": { \
"uri": "wss://example.com/ws-endpoint", \
"streams": [
"opentok-stream-id-1",
"opentok-stream-id-2",
]
},
"headers": [
"X-Custom-Header-1": "header-data-1"
"X-Custom-Header-2": "header-data-2"
],
}'
curl \
-i \
-H "Content-Type: application/json" \
-H "X-OPENTOK-AUTH:$json_web_token" \
-d "$data" \
https://api.opentok.com/v2/project/$api_key/connect
新しいプロジェクトのAPIキーの作成
この方法を使用して、プロジェクト用の OpenTok API キーとシークレットを作成してください。
重要だ: プロジェクトを作成した後、そのプロジェクトが利用可能になるまで最大60秒かかる場合があります。
また、お使いの Vonage Video API アカウント ページを参照されたい。
パートナーへの投稿
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project
POSTヘッダーのプロパティ
名前を設定するためのリクエストデータを送信する場合は(次のセクション「
POSTデータ」を参照)、 Content-Type ヘッダを application/json.
それ以外の場合は、 Content-Type ヘッダーを使用する。
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証). なお、必ず アカウント単位 APIキーと アカウント単位 API トークン作成時のシークレット。AccountレベルのAPIキーおよびシークレットは、 OpenTokアカウントに登録済みの管理者のみが利用可能です。
POSTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"name": "Acme" // optional
}
プロジェクトに名前を付けない場合は、本文を 空にしてください。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは プロジェクトの詳細 オブジェクト.
-
400 — 無効なリクエスト。この応答は、リクエストデータ内のデータが 無効なJSONであることを示している可能性があります。
-
403 — 認証エラー。
-
500 — OpenTok サーバーエラー。
例
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
export data='{"name":"Acme"}'
curl -i\
-X POST \
-H $headerstr \
-H "Content-Type:application/json" \
-D $data \
$TB_url/v2/project
プロジェクトのAPIキーのステータスを変更する
アカウント管理者は、この方法を使用してプロジェクトのステータスを変更できます。 ステータスは「アクティブ」または「一時停止」のいずれかです。プロジェクトのステータスが「一時停止」の場合、 そのプロジェクトのAPIキー(およびそれを使って作成されたOpenTokセッション)は 使用できなくなります。
プロジェクトのステータスを「アクティブ」から「一時停止」へ、あるいはその逆に変更することができます。
PUTをパートナーに
以下のURLにHTTP PUTリクエストを送信する:
https://api.opentok.com/v2/project/<api_key>
どこ <api_key> プロジェクトのAPIキーです。
PUTヘッダーのプロパティ
を設定する。 Content-Type ヘッダを application/json.
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証). なお、必ず アカウント単位 APIキーと アカウント単位 API トークン作成時のシークレット。AccountレベルのAPIキーおよびシークレットは、 OpenTokアカウントに登録済みの管理者のみが利用可能です。
PUTデータ
リクエスト本文として、以下の形式のJSONオブジェクトを含めてください:
{
"status": "ACTIVE" | "SUSPENDED"
}
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは次のとおりです。 プロジェクトの詳細 オブジェクト.
-
400 — 無効なリクエスト。この応答は、リクエストデータ内のデータが 無効なJSONであることを示している可能性があります。
-
403 — 認証エラー。
-
500 — OpenTok サーバーエラー。
例
次の例では、「Acme」プロジェクトのステータスを「保留中」に設定しています。
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
apikey=1234567 # Replace with the project API key.
export data='{"status":"SUSPENDED"}'
curl -i\
-X PUT \
-H $headerstr \
-H "Content-Type:application/json" \
-D $data \
$TB_url/v2/project/$apikey
プロジェクトの削除
プロジェクトを削除するには、この方法を使用してください。これにより、プロジェクトAPIキー (およびそれを使って作成されたOpenTokセッション)の使用が防止されます。
また、一時的に プロジェクトのAPI キーを一時停止する.
注: また、ご自身の Vonage Video API アカウント ページを参照されたい。
パートナーへの削除
以下のURLに対してHTTP DELETEリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>
どこ <api_key> プロジェクトのAPIキーです。
DELETEヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証). なお、必ず アカウント単位 APIキーと アカウント単位 API トークン作成時のシークレット。AccountレベルのAPIキーおよびシークレットは、 OpenTokアカウントに登録済みの管理者のみが利用可能です。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
- 204 — 成功(コンテンツなし)。
- 403 — 認証エラー。
- 404 — 見つかりません。指定されたAPIキーに対応するプロジェクトはありません。
- 500 — OpenTok サーバーエラー。
例
次の例では、プロジェクトを削除します。
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
apikey=1234567 # Replace with the project API key.
curl -i\
-X DELETE \
-H $headerstr \
$TB_url/v2/project/$apikey
プロジェクトに関する情報の入手
このメソッドを使用して、プロジェクトを記述するプロジェクト詳細レコードを取得します(または、 すべてのプロジェクトのレコードを取得します)。詳しくは、 プロジェクトの詳細 オブジェクト.
GETと提携する
特定のプロジェクトに関する情報を取得するには、以下のURLに対してGETリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>
どこ <api_key> は、そのプロジェクトのAPIキーです。
すべてのプロジェクトに関する情報を取得するには、以下のURLに対してGETリクエストを送信してください:
https://api.opentok.com/v2/project
GETヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証). なお、必ず アカウント単位 APIキーと アカウント単位 API トークン作成時のシークレット。AccountレベルのAPIキーおよびシークレットは、 OpenTokアカウントに登録済みの管理者のみが利用可能です。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは、プロジェクト詳細オブジェクト、または プロジェクト詳細オブジェクトの配列です。詳しくは プロジェクトの詳細 オブジェクト.
-
403 — 認証エラー。
-
404 — 見つかりません。指定されたAPIキーに対応するプロジェクトはありません。
-
500 — OpenTok サーバーエラー。
### 例
次の例は、特定のプロジェクトの詳細を取得するものです:
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
apikey=1234567 # Replace with the project API key.
curl -i\
-X GET \
-H $headerstr \
$TB_url/v2/project/$apikey
応答はJSON形式です プロジェクトの詳細 オブジェクト.
次の例は、すべてのプロジェクトの詳細を取得するものです:
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
curl -i\
-X GET \
-H $headerstr \
$TB_url/v2/project
その応答は、以下の配列です。 プロジェクトの詳細 オブジェクト.
新しいプロジェクトのAPIシークレットを生成する
セキュリティ上の理由から、プロジェクト用に新しいAPIシークレットを生成することをお勧めします。
注: すべてのREST API呼び出しおよびOpenTokのサーバーサイドSDKでは、新しいAPIシークレットを使用してください。新しいAPIシークレットを生成すると、既存のすべての クライアントトークン 無効になります(そのため、OpenTokセッションへの接続には使用できません)。OpenTokサーバーSDKで新しいAPIシークレットを使用して、クライアントトークンを生成してください。
「POST」を実行して「refreshSecret」を更新する
以下のURLに対してHTTP POSTリクエストを送信してください:
https://api.opentok.com/v2/project/<api_key>/refreshSecret
どこ <api_key> プロジェクトのAPIキーです。
POSTヘッダーのプロパティ
カスタムHTTPヘッダーを使用して、このAPI呼び出しを認証する — X-OPENTOK-AUTH:
X-OPENTOK-AUTH:<token>
このヘッダーにJWTトークンを設定します(参照: 認証). なお、必ず アカウント単位 APIキーと アカウント単位 API トークン作成時のシークレット。AccountレベルのAPIキーおよびシークレットは、 OpenTokアカウントに登録済みの管理者のみが利用可能です。
HTTPレスポンス
HTTPレスポンスには、以下のステータスコードのいずれかが返されます:
-
200 — 成功。応答データは次のとおりです。 プロジェクトの詳細 オブジェクト, 新しいAPIシークレットを使用して。
-
403 — 認証エラー。
-
404 — 見つかりません。指定されたAPIキーに対応するプロジェクトはありません。
-
500 — OpenTok サーバーエラー。
例
次の例は、新しいプロジェクトの API シークレットを生成します。
export token=YOUR_TOKEN_STRING # See "Authentication."
export TB_url=https://api.opentok.com
headerstr="X-OPENTOK-AUTH:$token"
apikey=1234567 # Replace with the project API key.
curl -i\
-X POST \
-H $headerstr \
$TB_url/v2/project/$apikey/refreshSecret