Übersicht
Wandeln Sie Audio- und Videodateien mit einer einfachen REST-API in Transkripte und Untertitel um.
Senden Sie eine Medien-URL, verfolgen Sie den Transkriptionsauftrag und rufen Sie strukturierte JSON-Daten oder eine fertige Untertiteldatei ab.
Ihre erste Transkription
Die Transkription erfolgt im Hintergrund. Beim Erstellen eines Auftrags erhalten Sie sofort eine Antwort. Prüfen Sie den Status, bis das Ergebnis bereitsteht.
Auftrag erstellen
Senden Sie
POST /transcriptsmit einer direkten, öffentlichen Medien-URL. Speichern Sie die zurückgegebeneid.Fortschritt prüfen
Fragen Sie
GET /transcripts/{id}alle 15–30 Sekunden ab, bisstatusden Wertcompleteodererrorhat.Transkript verwenden
Lesen Sie JSON aus
dataoder laden Sie bei SRT- oder VTT-Anfragen die Datei überexport_urlherunter.
Auftragsstatus
initializingIn der Warteschlange, wartet auf den Start. Weiter abfragen.
transcribingIhre Medien werden transkribiert. Weiter abfragen.
completeBereit. Ergebnis lesen oder Datei herunterladen.
errorDer Auftrag ist fehlgeschlagen. Lesen Sie message und beenden Sie die Abfragen.
Behandeln Sie jeden anderen Status als noch in Bearbeitung. Weitere Zwischenzustände können hinzukommen.
Authentifizierung
Senden Sie Ihren API-Schlüssel bei jeder Anfrage im Header Authorization, genau so, wie er beim Erstellen angezeigt wurde.
Authorization: <your api key>Fügen Sie kein Bearer-Präfix hinzu.
Neue Schlüssel beginnen mit tp_live_. Der vollständige Schlüssel wird nur einmal angezeigt, beim Erstellen. Wenn Sie ihn verlieren, widerrufen Sie ihn und erstellen Sie einen neuen; ein widerrufener Schlüssel funktioniert sofort nicht mehr.
Ein aktives Abonnement und die erforderliche API-Schlüsselberechtigung sind nötig.
Bewahren Sie Ihren Schlüssel auf Ihrem Server auf. Er gewährt Zugriff auf die Transkripte und die Nutzung Ihres Kontos. Veröffentlichen Sie ihn niemals im Browsercode oder in einem öffentlichen Repository.
Transkript erstellen
/transcriptsStarten Sie einen Transkriptionsauftrag für eine Mediendatei unter einer öffentlichen URL. Sobald der Auftrag in der Warteschlange steht, erhalten Sie eine Antwort mit status: "initializing".
Taption lädt die Datei direkt herunter. Links zu Freigabeseiten, etwa einer Vorschauseite von Google Drive oder Dropbox, funktionieren nicht.
Anfragetext
application/jsonmedia_urlstringerforderlichDirekter Downloadlink zu Ihrer Mediendatei.
Maximal 2048 ZeichenextensionstringerforderlichDas Format der Mediendatei.
mp3wavm4aaacflacwmaopusmp4languagestringerforderlichDie in den Medien gesprochene Sprache als Sprach-Tag. Siehe die Referenz zu Sprachen.
Sprach-Tags ansehennamestringAnzeigename des Transkripts. Standardmäßig wird der Dateiname aus `media_url` verwendet. Längere Namen werden auf 200 Zeichen gekürzt.
Maximal 200 Zeichenexport_typestringAusgabeformat. Standard ist json, das den geparsten Transkriptinhalt in data zurückgibt. srt und vtt geben einen Dateilink in export_url zurück.
Standard: jsonjsonsrtvttmax_charintegerMaximale Zeichenanzahl pro Untertitelsegment. Standard ist `16` für Chinesisch, Japanisch, Koreanisch und Kantonesisch sowie `65` für andere Sprachen. Werte außerhalb von 1–200 werden ignoriert; stattdessen gilt der Standardwert.
1–200
Antworten
200Der Auftrag wurde erstellt und in die Warteschlange gestellt. Speichern Sie die `id`, um seinen Status zu prüfen.
400Der Anfragetext ist ungültig. Korrigieren Sie die Anfrage vor einem erneuten Versuch. Es wird nur das zuerst gefundene Problem gemeldet.
401Der API-Schlüssel fehlt, ist ungültig oder nicht für den API-Zugriff eingerichtet.
403Ein aktives Abonnement und die erforderliche API-Schlüsselberechtigung sind nötig.
429Kontolimit erreicht; kein Auftrag erstellt. Standard: Premium 10 Einreichungen/Minute und 2 unerledigte Aufträge; Corp 30/Minute und 10 unerledigte Aufträge, gemeinsam für alle Schlüssel. Limits können sich ändern. Statusabfragen zählen nicht.
500Unerwarteter Serverfehler. Wiederholen Sie die Anfrage mit exponentiell steigender Wartezeit.
503Einreichungslimits sind vorübergehend nicht verfügbar (`api_limits_unavailable`; es wurde kein Transkript erstellt), oder das Einreihen ist fehlgeschlagen oder konnte nicht bestätigt werden. Beachten Sie Retry-After, falls vorhanden. Wird eine `id` zurückgegeben, prüfen Sie vor einem erneuten Versuch den Status: Er kann `error` sein oder der Auftrag wird bereits verarbeitet. Ein erneuter Versuch erstellt ein neues Transkript.
Transkript abrufen
/transcripts/{id}Rufen Sie den aktuellen Status und das Ergebnis eines Transkripts ab. Fragen Sie alle 15–30 Sekunden ab, solange der Auftrag bearbeitet wird.
Bei json oder ohne angegebenen Exporttyp erscheint das fertige Ergebnis in data. Bei srt oder vtt laden Sie die Datei über export_url herunter.
Pfadparameter
idstringerforderlich- Die von
POST /transcriptszurückgegebene Transkript-ID.Maximal 256 Zeichen
Auch eine fehlgeschlagene Transkription gibt HTTP 200 mit status: "error" zurück. Prüfen Sie neben dem HTTP-Code auch den Auftragsstatus.
Antworten
200Der aktuelle Status des Transkripts. Dies bedeutet nicht, dass der Auftrag erfolgreich war; lesen Sie `status`.
401Der API-Schlüssel fehlt, ist ungültig oder nicht für den API-Zugriff eingerichtet.
403Ein aktives Abonnement und die erforderliche API-Schlüsselberechtigung sind nötig.
404In Ihrem Konto existiert kein Transkript mit dieser ID. Ein Transkript eines anderen Kontos liefert dieselbe Antwort.
500Unerwarteter Serverfehler. Wiederholen Sie die Anfrage mit exponentiell steigender Wartezeit.
Das Transkriptobjekt
Anfragen zum Erstellen und zum Status geben ein JSON-Objekt zurück. Seine Felder beschreiben den Auftrag und, sobald verfügbar, dessen Ergebnis.
idstring- Die Transkript-ID. Verwenden Sie sie mit `GET /transcripts/{id}`.
statusstring- Aktueller Auftragsstatus: `initializing`, `transcribing`, `complete` oder `error`. Behandeln Sie jeden anderen Wert als noch in Bearbeitung.
dataJSON- Geparster JSON-Export, sobald bereit, für json oder ohne export_type; andernfalls eine leere Zeichenfolge.
export_urlstring- Downloadlink für einen srt- oder vtt-Export. Leer, bis das Ergebnis bereitsteht. Bei json oder ohne export_type ist dieses Feld in Statusantworten nicht enthalten.
messagestring- Zusätzliche Angaben zum aktuellen Status. Bei `transcribing` kann dies eine Fortschrittsphase wie `ANALYZING` oder `FINALIZING` sein. Wenn `status` den Wert `error` hat, beschreibt es den Fehler. Für Menschen bestimmt; nicht maschinell auswerten.
error_codestring- Optionaler maschinenlesbarer Code für ein Einreichungslimit.
limitinteger- Das geltende Kontolimit, enthalten in HTTP-429-Antworten.
Fehler und Wiederholungen
Entscheiden Sie anhand des HTTP-Statuscodes über den nächsten Schritt. Das Feld message ist für Menschen bestimmt; sein Wortlaut kann sich ändern.
API-Antworten enthalten einen X-Request-Id-Header. Geben Sie ihn an, wenn Sie sich wegen einer Anfrage an den Support wenden.
HTTP-Fehlercodes9 Codes
| HTTP | Ursache | Nächster Schritt |
|---|---|---|
400 | Ungültiger Anfragetext. | Korrigieren Sie zuerst die Anfrage. |
401 | Fehlender, ungültiger oder widerrufener API-Schlüssel. | Prüfen Sie Ihren API-Schlüssel. |
403 | Ein aktives Abonnement und die erforderliche API-Schlüsselberechtigung sind nötig. | Prüfen Sie Ihr Abonnement und die Berechtigungen des API-Schlüssels. |
404 | Transkript in Ihrem Konto nicht gefunden. | Prüfen Sie die Transkript-ID. |
405 | Falsche HTTP-Methode. | Verwenden Sie die dokumentierte Methode. |
429 | Einreichungsrate oder Höchstzahl unerledigter Aufträge erreicht. | Retry-After beachten und auf einen freien Auftragsplatz warten. |
500 | Unerwarteter Serverfehler. | Wartezeit exponentiell erhöhen. |
503 | Einreichungslimits nicht verfügbar, oder das Einreihen ist fehlgeschlagen oder konnte nicht bestätigt werden. | Vor einem erneuten Versuch die zurückgegebene Auftrags-ID prüfen; Retry-After beachten. |
504 | Zeitüberschreitung der Anfrage. | Wartezeit erhöhen; doppelte Aufträge vermeiden. |
API-Limitfehler liefern HTTP 429 mit JSON und Retry-After in Sekunden. Die Hosting-Plattform kann auch 429, 504 oder 400 ohne JSON liefern. Vor dem Lesen des Inhalts den HTTP-Status prüfen.
Erstellungsanfragen sind nicht idempotent. Ein erneutes POST /transcripts nach einem Timeout kann ein weiteres Transkript erstellen. Enthält eine 503-Antwort eine Auftrags-ID, prüfen Sie diesen Auftrag vor einer erneuten Einreichung: Er kann fehlgeschlagen sein oder bereits verarbeitet werden.
Sprachen
Setzen Sie language auf die in Ihren Medien gesprochene Sprache. Verwenden Sie das genaue Tag aus der folgenden Liste, einschließlich eines möglichen Suffixes für Region oder Ausgabeschrift.
Unterstützte Sprachen74 Sprachen
| Sprache | Tag |
|---|---|
| Afrikaans (South Africa) | af-ZA |
| Arabic (Egypt) | ar-EG |
| Armenian (Armenia) | hy-AM |
| Assamese (India) | as-IN |
| Azerbaijani (Azerbaijan) | az-AZ |
| Bengali (India) | bn-IN |
| Bosnian (Bosnia and Herzegovina) | bs-BA |
| Bulgarian (Bulgaria) | bg-BG |
| Burmese (Myanmar) | my-MM |
| Cantonese, Simplified Chinese output (Hong Kong) | yue-Hant-HK-zh |
| Cantonese, Traditional Chinese output (Hong Kong) | yue-Hant-HK-TW-zh |
| Cantonese, Simplified Cantonese output (Hong Kong) | yue-Hant-HK |
| Cantonese, Traditional Cantonese output (Hong Kong) | yue-Hant-HK-TW |
| Catalan (Spain) | ca-ES |
| Chinese (China) | zh |
| Chinese (Taiwan) | zh-TW |
| Chinese & English (Simplified) | zh-EN |
| Chinese & English (Traditional) | zh-EN-TW |
| Croatian (Croatia) | hr-HR |
| Czech (Czech Republic) | cs-CZ |
| Danish (Denmark) | da-DK |
| Dutch (Belgium) | nl-BE |
| English (Australia) | en-AU |
| English (United Kingdom) | en-GB |
| English (United States) | en-US |
| Estonian (Estonia) | et-EE |
| Filipino (Philippines) | tl-PH |
| Finnish (Finland) | fi-FI |
| French (France) | fr-FR |
| Galician (Spain) | gl-ES |
| German (Germany) | de-DE |
| Greek (Greece) | el-GR |
| Gujarati (India) | gu-IN |
| Hebrew (Israel) | iw-IL |
| Hindi (India) | hi-IN |
| Hungarian (Hungary) | hu-HU |
| Icelandic (Iceland) | is-IS |
| Indonesian (Indonesia) | id-ID |
| Italian (Italy) | it-IT |
| Japanese (Japan) | ja-JP |
| Kannada (India) | kn-IN |
| Kazakh (Kazakhstan) | kk-KZ |
| Khmer (Cambodia) | km-KH |
| Korean (South Korea) | ko-KR |
| Latvian (Latvia) | lv-LV |
| Lithuanian (Lithuania) | lt-LT |
| Macedonian (North Macedonia) | mk-MK |
| Malay (Malaysia) | ms-MY |
| Malayalam (India) | ml-IN |
| Marathi (India) | mr-IN |
| Nepali (Nepal) | ne-NP |
| Norwegian (Norway) | no-NO |
| Odia (India) | or-IN |
| Persian (Iran) | fa-IR |
| Polish (Poland) | pl-PL |
| Portuguese (Portugal, Brazil) | pt-PT_pt-BR |
| Punjabi, Gurmukhi (India) | pa-IN |
| Romanian (Romania) | ro-RO |
| Russian (Russia) | ru-RU |
| Serbian (Serbia) | sr-SR |
| Slovak (Slovakia) | sk-SK |
| Slovenian (Slovenia) | sl-SI |
| Spanish (Spain) | es-ES |
| Swahili (Kenya) | sw-KE |
| Swedish (Sweden) | sv-SE |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thai (Thailand) | th-TH |
| Turkish (Turkey) | tr-TR |
| Ukrainian (Ukraine) | uk-UA |
| Urdu (Pakistan) | ur-PK |
| Uzbek (Uzbekistan) | uz-UZ |
| Vietnamese (Vietnam) | vi-VN |
| Zulu (South Africa) | zu-ZA |
Diese Liste entspricht den Spracheinstellungen von Taption und kann sich ändern. Maßgeblich ist die Sprachauswahl in Taption.