Als Meeting-Host können Sie Zoom-Meetings Untertitel hinzufügen, indem Sie den Untertiteldienst eines Drittanbieters mit der Untertitel-URL bereitstellen. Mit dieser URL kann der Drittanbieter Text aus seiner Untertitel-Software an das Zoom Meeting streamen. In diesem Artikel wird das Format definiert, das Zoom zum Empfangen von Untertiteldaten verwendet.
Wenn Sie mit der Verwendung von Untertiteln in Zoom noch nicht vertraut sind, lesen Sie unsere Übersicht über Untertitel.
In diesem Artikel:
Um die Verbindung herzustellen, muss der Host oder Co-Host die Untertitel-URL kopieren und in eine Untertitel-Software eingeben, die die REST API für Untertitel von Zoom unterstützt. Alternativ kann der Host die URL kopieren und über den Chat im Meeting an eine andere Person senden.
Zoom erwartet, dass Untertiteldaten in einer fortlaufenden Abfolge von POSTs ankommen. Jedes Meeting und jede Breakout-Raum-Sitzung hat eine spezielle URL (Breakout-Raum-Sitzungen haben einen zusätzlichen subconfid-Parameter). Die URL des POST gibt das Ziel der Daten an (das Meeting, dem die Untertitel zugeordnet sind).
Der folgende Parameter muss der URL jedes POST hinzugefügt werden:
Name | Beschreibung | Beispielfragment |
seq |
Muss in allen POSTs enthalten sein. Die ist der Zähler für alle Untertiteldaten-POSTs. Der Zähler muss mit jedem POST neuer Untertiteldaten um eins erhöht werden (bei Wiederholungen darf er nicht erhöht werden). Die Seq-Nummer der letzten erfolgreich gesendeten Daten kann über die API abgerufen werden: /closedcaption/seq [GET] | &seq |
lang |
Dies ist der Sprachcode und der ISO-Ländercode, die durch einen Bindestrich getrennt sind. Beispiele:
| &lang=en-US |
Der Inhaltstyp (Mimetype) für alle POSTs muss im Nur-Text-Format mit UTF-8-Codierung vorliegen.
Alle HTTP-POSTs, die an den Einspeisungspunkt für Untertitel gesendet werden, dürfen nur Untertiteldaten im Inhaltstext enthalten. Daten dürfen nicht formverschlüsselt sein.
Der Textkörper des POST enthält den Text für die Untertiteldaten. Für einen Zeilenumbruch kann \n (0x0D) im Untertiteltext verwendet werden.
Beispiele:
HTTP-POSTs können die folgenden Antwortcodes zurückgeben:
Antwortcode | Beschreibung |
405 |
Method not allowed. Not a POST. |
400 |
Bad request. The meeting has not started. |
403 |
Unauthorized. Could be due to missing &seq query parameter or missing &id, &signature, &expire or &ns. |
Zoom empfiehlt eine Wiederholung bei jedem Code. Dies gilt für die oben gezeigten Antwortcodes 405, 400 und 403 sowie für weitere Codes wie 408 Request Timeout, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable und 504 Gateway Timeout.
Alle HTTP POST-Anfragen sollten mit einem Timeout ausgeführt werden. Wenn eine Anfrage abläuft, sollte sie wiederholt werden.
Verwenden Sie beim Ausführen von Wiederholungsanfragen einen randomisierten Binary Exponential Backoff:
Dieser wartet für einen zufälligen Zeitraum von [0–100] Millisekunden und versucht es erneut; schlägt dies fehl, wartet er für einen zufälligen Zeitraum von [0–200] Millisekunden und versucht es erneut; schlägt dies fehl, wartet er für einen zufälligen Zeitraum von [0–400] Millisekunden und versucht es erneut; und so weiter. Sie sollten Wiederholungen durchführen, bis es sinnvoller ist, mit dem nächsten Untertitelpaket fortzufahren (nach ca. 5 Sekunden).
Ein Zeitstempelwert ist im POST-Rückgabetext vorhanden und entspricht dem Zeitpunkt, zu dem der POST verarbeitet wurde. Er kann verwendet werden, um die lokale Uhr auf einem Client zu korrigieren, der den Server antreibt. Zoom empfiehlt dringend, diesen Wert zu verwenden, da lokale Uhren oft schlecht synchronisiert sind.
Beispiel für zurückgegebenen Zeitstempel: 2012-12-24T00:00:06.873
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