API リファレンスへ移動

API 連携

メディアを文字に。いつものワークフローの中で。

このページの内容

概要

シンプルな REST API で、音声や動画を文字起こし・キャプション・字幕に変換します。

メディア URL を送信し、文字起こしジョブを追跡して、構造化 JSON またはそのまま使える字幕ファイルを取得できます。

HTTPS リクエストJSON レスポンス非同期ジョブ

ベース URL

https://api.taption.com/v1POST/transcriptsGET/transcripts/{id}

初めての文字起こし

文字起こしはバックグラウンドで実行されます。ジョブ作成の応答はすぐに返るため、結果が準備できるまで状態を確認してください。

  1. ジョブを作成

    直接アクセスできる公開メディア URL を POST /transcripts に送信し、返された id を保存してください。

  2. 進捗を確認

    status が complete または error になるまで、15–30 秒ごとに GET /transcripts/{id} をポーリングしてください。

  3. 文字起こしを利用

    data から JSON を読み取ります。SRT または VTT を指定した場合は、export_url からダウンロードします。

ジョブの状態

initializing

キューで開始を待っています。ポーリングを続けてください。

transcribing

メディアを文字起こししています。ポーリングを続けてください。

complete

準備完了です。結果を読むかファイルをダウンロードしてください。

error

ジョブが失敗しました。message を確認し、ポーリングを停止してください。

それ以外の状態は処理中として扱ってください。中間状態が追加される場合があります。

認証

すべてのリクエストの Authorization ヘッダーに、作成時に表示されたとおりの API キーを指定してください。

Authorization: <your api key>

Bearer プレフィックスは付けないでください。

新しいキーは tp_live_ で始まります。完全なキーが表示されるのは作成時の一度だけです。紛失した場合は、そのキーを取り消して新しいキーを作成してください。取り消したキーはすぐに使えなくなります。

有効なサブスクリプションと必要な権限を持つ API キーが必要です。

キーはサーバー側で保管してください。アカウントの文字起こしや使用量へのアクセス権を持つため、ブラウザーのコードや公開リポジトリに含めないでください。

API キーを作成

文字起こしを作成

POST/transcripts

公開 URL のメディアファイルに対して文字起こしジョブを開始します。キューに追加されると、status: "initializing" を含む応答が返ります。

Taption はファイルを直接ダウンロードします。Google Drive や Dropbox のプレビューなど、共有ページへのリンクは使えません。

media_urlstring必須

メディアファイルへの直接ダウンロードリンク。

最大 2048 文字
extensionstring必須

メディアファイルの形式。

mp3wavm4aaacflacwmaopusmp4
languagestring必須

メディアで話されている言語のタグ。言語リファレンスを参照してください。

言語タグを確認
namestring

文字起こしの表示名。既定値は `media_url` 内のファイル名です。長い名前は 200 文字に切り詰められます。

最大 200 文字
export_typestring

出力形式。既定値の json は解析済みの文字起こし内容を data に返します。srt と vtt はファイルリンクを export_url に返します。

jsonsrtvtt
既定値:json
max_charinteger

字幕区間ごとの最大文字数。中国語・日本語・韓国語・広東語は既定で `16`、他の言語は `65` です。1-200 の範囲外の値は無視され、既定値が使われます。

1–200

レスポンス

200

ジョブが作成され、キューに追加されました。確認のため `id` を保存してください。

400

リクエストボディが無効です。再試行前に修正してください。最初に見つかった問題のみが報告されます。

401

API キーがない、無効、または API アクセスが未設定です。

403

有効なサブスクリプションと必要な権限を持つ API キーが必要です。

429

アカウントの上限に達し、ジョブは作成されませんでした。初期値:Premium は毎分 10 件、未完了 2 件まで、Corp は毎分 30 件、未完了 10 件までです。全キーで共有され、変更される場合があります。状態確認は対象外です。

500

予期しないサーバーエラーです。指数バックオフで再試行してください。

503

送信制限を一時的に確認できない(`api_limits_unavailable`、文字起こしは作成されていません)か、キューへの登録に失敗したか、登録を確認できませんでした。Retry-After がある場合はその時間だけ待ってください。`id` が返された場合は再試行前に状態を確認してください。`error` の場合も、すでに処理中の場合もあります。再試行すると新しい文字起こしが作成されます。

文字起こしを取得

GET/transcripts/{id}

文字起こしの現在の状態と結果を取得します。処理中は 15–30 秒ごとにポーリングしてください。

json または出力形式を省略した場合、完了した結果は data に含まれます。srt または vtt の場合は export_url からファイルをダウンロードしてください。

idstring必須
POST /transcripts から返された文字起こし ID。最大 256 文字

文字起こしが失敗しても HTTP 200 と status: "error" が返されます。HTTP コードと併せてジョブの状態も確認してください。

レスポンス

200

文字起こしの現在の状態です。ジョブの成功を意味するものではありません。`status` を確認してください。

401

API キーがない、無効、または 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 エラーと再試行のガイド
HTTP問題の内容次の操作
400リクエストボディが無効です。先にリクエストを修正してください。
401API キーがないか、無効か、取り消されています。API キーを確認してください。
403有効なサブスクリプションと必要な権限を持つ API キーが必要です。サブスクリプションと API キーの権限を確認してください。
404このアカウントに文字起こしが見つかりません。文字起こし ID を確認してください。
405HTTP メソッドが違います。ドキュメントで指定されたメソッドを使ってください。
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 の言語選択画面を最新の基準としてください。

概要へ戻る