ミーティングのホストは、字幕URLをサードパーティの字幕サービスに提供することで、字幕をZoomのミーティングに追加できます。字幕URLを使用することで、サードパーティサービスによって字幕ソフトウェアからZoomのミーティングに字幕がストリーミングされます。この記事では、Zoomが字幕データを受信するために使用する形式を定義します。
Zoomで字幕を使用するのが初めての場合は、字幕の概要を参照してください。
接続を確立するためには、ホストまたは共同ホストが字幕URLをコピーし、Zoomの字幕REST APIに対応する字幕ソフトウェアに入力する必要があります。または、ホストがURLをコピーして、ミーティング内チャットを使用して、他のユーザーに送信することもできます。
Zoomでは、字幕データがPOSTの連続したシーケンスとして受信されることを想定されています。すべてのミーティングセッションとブレイクアウトルームセッションには特殊URLが存在します(ブレイクアウトルームセッションには追加のsubconfidパラメータが存在します)。POSTのURLによって、データの送り先(字幕が関連付けられているミーティング)が指定されます。
次のパラメータをすべてのPOSTのURLに追加する必要があります。
名前 | 説明 | フラグメントの例 |
seq |
すべてのPOSTに含まれている必要があります。すべての字幕データPOSTのカウンターです。カウンターは、新しい字幕データのPOST間に1つずつ増加する必要があります(再試行の場合は増加してはいけません)。 最後に送信が成功した seq番号は、API(/closedcaption/seq [GET])を経由して取得できます。 | &seq |
すべてのPOSTのコンテンツタイプ(MIMEタイプ)は、UTF-8エンコードのプレーンテキスト形式である必要があります。
字幕の取込ポイントに送信されるすべてのHTTP POSTには、コンテンツ本文内に字幕データのみが含まれている必要があります。データは、フォーム形式にエンコードされてはなりません。
POSTの本文には、字幕データのテキストが含まれます。改行については、字幕テキストで\n(0x0D)を使用できます。
例:
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秒後)。
タイムスタンプ値は、POST 戻り本文に存在し、POSTが処理された時間に対応します。サーバーを駆動するクライアントのローカルクロックを修正するために使用できます。ローカルクロックの同期が不十分な場合が多いため、Zoomではこの値を使用することを強くおすすめします。
返されるタイムスタンプの例: 2012-12-24T00:00:06.873
POST /closedcaption?id=200610693&ns=GZHkEA==&expire=86400&sparams=id%2Cns%2Cexpire&signature=nYtXJqRKCW&seq=41 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 Host: wmcapi.zoom.us:80 Accept: */* Content-Type: text/plain Content-Length: 18 SEVERAL CAPTIONS.\n