サードパーティの字幕サービスとの連携
最終更新日:
概要
ミーティングのホストは、字幕 URL をサードパーティの字幕サービスに提供することで、字幕を Zoom のミーティングに追加できます。 字幕 URL を使用することで、サードパーティ サービスによって字幕ソフトウェアから Zoom のミーティングに字幕がストリーミングされます。 この記事では、Zoom が字幕データを受信するために使用する形式を定義します。
Zoom で字幕を使用するのが初めての場合は、字幕の概要についてご覧ください。
この記事の内容:
- 字幕 URL(API トークン)の取得
- HTTP 経由での字幕 URL の使用
- コンテンツ タイプとデータ
- レスポンス コード
- リクエストの再試行
- HTTP POST がタイムスタンプを返す
- POST の例
前提条件
- サードパーティの字幕サービスとの連携のために字幕 API トークンの使用を許可するオプションが選択され、字幕が有効になっていること
- サードパーティの字幕サービスへのアクセス
字幕 URL(API トークン)の取得
接続を確立するためには、ホストまたは共同ホストが字幕 URL をコピーし、Zoom の字幕 REST API に対応する字幕ソフトウェアに入力する必要があります。 または、ホストが URL をコピーして、ミーティング内チャットを使用して、他のユーザーに送信することもできます。
- Zoom のミーティングまたはウェビナーで、[字幕] をクリックします。
- [API トークンをコピー] をクリックします。
HTTP 経由での字幕 URL の使用
Zoom では、字幕データが POST の連続したシーケンスとして受信されることを想定されています。 すべてのミーティング セッションとブレイクアウト ルーム セッションには特殊 URL が存在します(ブレイクアウト ルーム セッションには追加の subconfid パラメータが存在します)。 POST の URL によって、データの送り先(字幕が関連付けられているミーティング)が指定されます。
次のパラメータをすべての POST の URL に追加する必要があります。
名前 | 説明 | フラグメントの例 |
seq | すべての POST に含まれている必要があります。 すべての字幕データ POST のカウンターです。 カウンターは、新しい字幕データの POST 間に 1 つずつ増加する必要があります(再試行の場合は増加してはいけません)。 最後に送信が成功した seq 番号は、API(/closedcaption/seq [GET])を経由して取得できます。 |
&seq |
lang |
例:
|
&lang=en-US |
コンテンツ タイプとデータ
すべての POST のコンテンツ タイプ(MIME タイプ)は、UTF-8 エンコードのプレーン テキスト形式である必要があります。
字幕の取込ポイントに送信されるすべての HTTP POST には、コンテンツ本文内に字幕データのみが含まれている必要があります。 データは、フォームからエンコードされてはなりません。
POST の本文には、字幕データのテキストが含まれます。 改行については、字幕テキストで \n(0x0D)を使用できます。
例:
- 1 番目の HTTP POST データ: I'M SENDING
- 2 番目の HTTP POST データ: SEVERAL CAPTIONS.\n
レスポンス コード
HTTP POST は、次のレスポンスコードを返す場合があります。
レスポンス コード | 説明 |
405 | 許可されていないメソッドです。 POST ではありません。 |
400 | 不正なリクエストです。 ミーティングは開始されていません。 |
403 | 許可されていません。 &seq クエリ パラメータが存在しないか、&id、&signature、&expire または &ns が存在しないことに起因している可能性があります。 |
リクエストの再試行
Zoom では、すべてのコードを再試行することをおすすめします。 これには、上記のレスポンス コード 405、400、403 に加えて、408 リクエスト タイムアウト、500 内部サーバーエラー、502 不正なゲートウェイ、503 サービス利用不可、504 ゲートウェイ タイムアウトなどの追加のコードが含まれます。
すべての HTTP POST リクエストは、タイムアウトで実行する必要があります。 リクエストがタイムアウトした場合、再試行する必要があります。
リクエストを再試行する場合は、ランダム化されたバイナリ指数バックオフを使用します。
[0..100] ミリ秒の間のランダムな待ち時間と取ってから再試行します。失敗した場合は、[0..200] ミリ秒の間のランダムな待ち時間と取ってから再試行します。失敗した場合は、[0..400] ミリ秒の間のランダムな待ち時間と取ってから再試行し、その後も同様に続けます。 次の字幕パケットへの移行が実行されるまで再試行してください(約 5 秒後)。
HTTP POST から返されるタイムスタンプ
タイムスタンプ値は、POST 戻り本文に存在し、POST が処理された時刻に対応します。 サーバーを駆動するクライアントのローカル クロックを修正するために使用できます。 ローカルクロックの同期が不十分な場合が多いため、Zoom ではこの値を使用することを強くおすすめします。
返されるタイムスタンプの例: 2012-12-24T00:00:06.873
POST の例
POST /closedcaption?id=200610693&ns=GZHkEA==&expire=86400&sparams=id%2Cns%2Cexpire&signature=nYtXJqRKCW&seq=41&lang=en-US Host: wmcapi.zoom.us:80 Accept: */* Content-Type: text/plain Content-Length: 11 I'M SENDING
POST /closedcaption?id=200610693&ns=GZHkEA==&expire=86400&sparams=id%2Cns%2Cexpire&signature=nYtXJqRKCW&seq=42&lang=en-US Host: wmcapi.zoom.us:80 Accept: */* Content-Type: text/plain Content-Length: 18 SEVERAL CAPTIONS.\n
Zoom コミュニティ
Zoom コミュニティの 250,000 人のメンバーの一員になってください! Zoom アカウントの認証情報でログインして、コラボレーションを始めましょう。