概要
シンプルな REST API で、音声や動画を文字起こし・キャプション・字幕に変換します。
メディア URL を送信し、文字起こしジョブを追跡して、構造化 JSON またはそのまま使える字幕ファイルを取得できます。
初めての文字起こし
文字起こしはバックグラウンドで実行されます。ジョブ作成の応答はすぐに返るため、結果が準備できるまで状態を確認してください。
ジョブを作成
直接アクセスできる公開メディア URL を
POST /transcriptsに送信し、返されたidを保存してください。進捗を確認
statusがcompleteまたはerrorになるまで、15–30 秒ごとにGET /transcripts/{id}をポーリングしてください。文字起こしを利用
dataから JSON を読み取ります。SRT または VTT を指定した場合は、export_urlからダウンロードします。
ジョブの状態
initializingキューで開始を待っています。ポーリングを続けてください。
transcribingメディアを文字起こししています。ポーリングを続けてください。
complete準備完了です。結果を読むかファイルをダウンロードしてください。
errorジョブが失敗しました。message を確認し、ポーリングを停止してください。
それ以外の状態は処理中として扱ってください。中間状態が追加される場合があります。
認証
すべてのリクエストの Authorization ヘッダーに、作成時に表示されたとおりの API キーを指定してください。
Authorization: <your api key>Bearer プレフィックスは付けないでください。
新しいキーは tp_live_ で始まります。完全なキーが表示されるのは作成時の一度だけです。紛失した場合は、そのキーを取り消して新しいキーを作成してください。取り消したキーはすぐに使えなくなります。
有効なサブスクリプションと必要な権限を持つ API キーが必要です。
キーはサーバー側で保管してください。アカウントの文字起こしや使用量へのアクセス権を持つため、ブラウザーのコードや公開リポジトリに含めないでください。
文字起こしを作成
/transcripts公開 URL のメディアファイルに対して文字起こしジョブを開始します。キューに追加されると、status: "initializing" を含む応答が返ります。
Taption はファイルを直接ダウンロードします。Google Drive や Dropbox のプレビューなど、共有ページへのリンクは使えません。
リクエストボディ
application/jsonmedia_urlstring必須メディアファイルへの直接ダウンロードリンク。
最大 2048 文字extensionstring必須メディアファイルの形式。
mp3wavm4aaacflacwmaopusmp4languagestring必須メディアで話されている言語のタグ。言語リファレンスを参照してください。
言語タグを確認namestring文字起こしの表示名。既定値は `media_url` 内のファイル名です。長い名前は 200 文字に切り詰められます。
最大 200 文字export_typestring出力形式。既定値の json は解析済みの文字起こし内容を data に返します。srt と vtt はファイルリンクを export_url に返します。
既定値:jsonjsonsrtvttmax_charinteger字幕区間ごとの最大文字数。中国語・日本語・韓国語・広東語は既定で `16`、他の言語は `65` です。1-200 の範囲外の値は無視され、既定値が使われます。
1–200
レスポンス
200ジョブが作成され、キューに追加されました。確認のため `id` を保存してください。
400リクエストボディが無効です。再試行前に修正してください。最初に見つかった問題のみが報告されます。
401API キーがない、無効、または API アクセスが未設定です。
403有効なサブスクリプションと必要な権限を持つ API キーが必要です。
429アカウントの上限に達し、ジョブは作成されませんでした。初期値:Premium は毎分 10 件、未完了 2 件まで、Corp は毎分 30 件、未完了 10 件までです。全キーで共有され、変更される場合があります。状態確認は対象外です。
500予期しないサーバーエラーです。指数バックオフで再試行してください。
503送信制限を一時的に確認できない(`api_limits_unavailable`、文字起こしは作成されていません)か、キューへの登録に失敗したか、登録を確認できませんでした。Retry-After がある場合はその時間だけ待ってください。`id` が返された場合は再試行前に状態を確認してください。`error` の場合も、すでに処理中の場合もあります。再試行すると新しい文字起こしが作成されます。
文字起こしを取得
/transcripts/{id}文字起こしの現在の状態と結果を取得します。処理中は 15–30 秒ごとにポーリングしてください。
json または出力形式を省略した場合、完了した結果は data に含まれます。srt または vtt の場合は export_url からファイルをダウンロードしてください。
パスパラメーター
idstring必須POST /transcriptsから返された文字起こし ID。最大 256 文字
文字起こしが失敗しても HTTP 200 と status: "error" が返されます。HTTP コードと併せてジョブの状態も確認してください。
レスポンス
200文字起こしの現在の状態です。ジョブの成功を意味するものではありません。`status` を確認してください。
401API キーがない、無効、または API アクセスが未設定です。
403有効なサブスクリプションと必要な権限を持つ API キーが必要です。
404このアカウントには指定 ID の文字起こしがありません。他のアカウントに属する場合も同じ応答です。
500予期しないサーバーエラーです。指数バックオフで再試行してください。
文字起こしオブジェクト
作成と状態取得のリクエストは JSON オブジェクトを返します。各フィールドはジョブの情報と、準備ができた時点での出力を示します。
idstring- 文字起こし ID。`GET /transcripts/{id}` と組み合わせて使用します。
statusstring- ジョブの状態:`initializing`、`transcribing`、`complete`、`error`。それ以外は処理中として扱ってください。
dataJSON- json または export_type を省略した場合に、準備が整うと解析済み JSON が返されます。それまでは空文字列です。
export_urlstring- srt または vtt 出力へのダウンロードリンク。準備ができるまでは空です。json または export_type 省略時の状態応答には含まれません。
messagestring- 現在の状態の補足情報。`transcribing` 中は `ANALYZING` や `FINALIZING` などの進捗段階になることがあります。`status` が `error` のときは失敗の内容を示します。人が読むための情報なので、プログラムで解析しないでください。
error_codestring- 送信制限エラーを示す、省略可能な機械可読コード。
limitinteger- HTTP 429 に含まれる、適用されたアカウントの上限値。
エラーと再試行
HTTP ステータスコードを基に次の処理を判断してください。message は人が読むためのフィールドであり、文言は変更されることがあります。
API の応答には X-Request-Id ヘッダーが含まれます。リクエストについてサポートに問い合わせる際は、この値をお知らせください。
HTTP エラーコード9 件のコード
| HTTP | 問題の内容 | 次の操作 |
|---|---|---|
400 | リクエストボディが無効です。 | 先にリクエストを修正してください。 |
401 | API キーがないか、無効か、取り消されています。 | API キーを確認してください。 |
403 | 有効なサブスクリプションと必要な権限を持つ API キーが必要です。 | サブスクリプションと API キーの権限を確認してください。 |
404 | このアカウントに文字起こしが見つかりません。 | 文字起こし ID を確認してください。 |
405 | HTTP メソッドが違います。 | ドキュメントで指定されたメソッドを使ってください。 |
429 | 送信頻度または未完了ジョブ数の上限に達しました。 | Retry-After に従い、ジョブの空き枠を待ってください。 |
500 | 予期しないサーバーエラーです。 | 指数バックオフで再試行してください。 |
503 | 送信制限を確認できないか、キューへの登録に失敗したか、登録を確認できませんでした。 | 返されたジョブ ID を確認してから再試行し、Retry-After がある場合はその時間だけ待ってください。 |
504 | リクエストがタイムアウトしました。 | 再試行の間隔を延ばし、ジョブの重複を避けてください。 |
API 制限エラーは HTTP 429、JSON、秒単位の Retry-After を返します。ホスティング基盤は JSON 以外の 429、504、400 を返す場合もあります。本文を読む前に HTTP ステータスを確認してください。
作成リクエストは冪等ではありません。 タイムアウトした POST /transcripts の再試行は別の文字起こしを作成する場合があります。503 にジョブ ID が含まれる場合、再送信する前にそのジョブを確認してください。失敗している場合も、すでに処理中の場合もあります。
言語
language にメディアで話されている言語を指定します。地域や出力文字体系の接尾辞を含め、下記のタグをそのまま使用してください。
対応言語74 言語
| 言語 | タグ |
|---|---|
| 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 |
この一覧は Taption の言語設定に基づき、変更される場合があります。Taption の言語選択画面を最新の基準としてください。