開発者向け API · v1

字幕翻訳を
ワークフローに。

Premiere Pro プラグインや独自のツールから、Web サイトと同じ Basic・Plus 翻訳サービスを利用できます。

クイックスタート

キーを作成し、Node.js サンプルをダウンロードしてください。料金の見積もり、タスクの送信、状態のポーリング、翻訳済み SRT の保存を行います。Node.js 20 以降が必要です。追加パッケージは不要です。

export AST_BASE_URL='https://your-website-origin'
export AST_API_KEY='ast_YOUR_API_KEY'
node translate-subtitle.mjs input.srt zh plus translated.srt my-job-001
# 二言語字幕を取得するには、最後の引数に true を追加します:
node translate-subtitle.mjs input.srt zh plus bilingual.srt my-job-001 true

ベース URL をこのサイトのオリジンに置き換え、ダウンロードしたスクリプトを SRT ファイルと同じ場所に置いてください。basic または plus を明示的に選択します。ネットワーク障害後に再試行する場合は、同じタスクキー、入力、オプションを使用してください。同じタスクキーで再ダウンロードすると既存の翻訳が再利用されます。出力先には、まだ存在しないファイル名を指定してください。

認証

ダッシュボード → セキュリティ → API キーを開きます。キーに名前を付けて作成してください。同じページでいつでも完全なキーを再表示してコピーしたり、キーを失効させたりできます。

Authorization: Bearer ast_YOUR_API_KEY

このサイトのオリジンをベース URL として使用します。6 つのエンドポイントすべてに有効なキーが必要です。アカウントごとに有効なキーを 5 個まで作成できます。API キーでは、そのアカウントが API 経由で作成した翻訳とクレジット残高にアクセスできます。

自分のアカウントのキーを使用してください。キーを秘密に保ち、配布するプラグインに共有キーを組み込まないでください。Cookie 認証や URL のクエリパラメータに含めたキーは受け付けません。

6 つのエンドポイント

メソッドパス用途
GET/api/v1/capabilities言語、モデルの種類、制限
GET/api/v1/creditsクレジット残高
POST/api/v1/translations/estimate料金の見積もり
POST/api/v1/translationsタスクの作成
GET/api/v1/translations/{taskId}状態と進捗
GET/api/v1/translations/{taskId}/resultSRT のダウンロード

JSON の成功レスポンスは、結果を { "data": ... } に格納します。結果のダウンロードが成功した場合は、常に SRT が返されます。

見積もりと送信

2 つの POST エンドポイントは同じ JSON リクエストボディを受け付けます。Content-Type: application/json を指定してください。

{
  "fileName": "interview.srt",
  "subtitle": "1\n00:00:01,000 --> 00:00:03,000\nHello!\n",
  "targetLanguage": "zh",
  "modelTier": "plus"
}

subtitle、targetLanguage、modelTier は必須です。basic または plus を明示的に選択してください。modelTier を省略すると 400 INVALID_REQUEST が返されます。原文の言語は自動検出されます。翻訳先の言語コードは /api/v1/capabilities で取得できます。

任意の glossary 項目には source と target を指定します。任意の characters 項目には、これらに加えて gender(male または female)と aliases(別名の一覧)を指定できます。正確な形式は OpenAPI スキーマを参照してください。未知のフィールドは拒否されます。

まず /api/v1/translations/estimate に POST リクエストを送信します。creditCost、availableCredits、sufficientCredits、字幕項目数が返されます。見積もりではタスクは作成されず、クレジットも確保されません。

タスクを作成

curl "$AST_BASE_URL/api/v1/translations" \
  -H "Authorization: Bearer $AST_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: premiere-sequence-123-zh-v1' \
  --data-binary @request.json

JSON リクエストボディを request.json として保存します。2 つの環境変数には、サイトのオリジンと API キーをそれぞれ設定してください。

新しいタスクは 202 Accepted とともに data.id、data.creditCost、data.statusUrl、data.resultUrl を返します。Location ヘッダーは状態確認用エンドポイントを示します。

{
  "data": {
    "id": "6f476119-c02f-49a9-b61f-2b3327bd318c",
    "status": "pending",
    "fileName": "interview.srt",
    "modelTier": "plus",
    "targetLanguage": "zh",
    "creditCost": "1.00",
    "statusUrl": "/api/v1/translations/6f476119-c02f-49a9-b61f-2b3327bd318c",
    "resultUrl": "/api/v1/translations/6f476119-c02f-49a9-b61f-2b3327bd318c/result"
  }
}

新しく実行する翻訳ごとに Idempotency-Key を生成し、再試行時は同じ値を使ってください。同一のリクエストは HTTP 200 とともに同じタスクを返します。同じキーで異なるボディを送信すると 409 が返されます。冪等性キーはアカウント単位で管理され、API キーを変更した後も有効です。

このヘッダーには、英数字、ピリオド、アンダースコア、コロン、ハイフンを 1–128 文字指定できます。再送したリクエストに対応するタスクが期限切れまたは削除済みの場合は 410 が返されます。別の課金対象タスクを作成したい場合にのみ、新しいキーを使ってください。

進捗と結果

状態 URL を5 秒ごとにポーリングします。状態は pending、processing、completed、failed のいずれかです。progress はパーセント値で、取得できない場合は null です。errorCode はタスクの失敗理由を示します。

curl --fail "$AST_BASE_URL/api/v1/translations/$TASK_ID" \
  -H "Authorization: Bearer $AST_API_KEY"

TASK_ID には送信時のレスポンスにある data.id を設定します。進捗レスポンスには上記のタスクフィールドに加え、progress と errorCode が含まれ、どちらも null になる場合があります。failed になったらポーリングを停止し、エラーを表示してください。翻訳を新たに実行する意思がある場合にのみ、新しいタスクキーを使います。

完了したら結果 URL に GET リクエストを送り、レスポンスのテキストを SRT ファイルとして保存します。レスポンスの種類は application/x-subrip; charset=utf-8 です。includeOriginal を省略するか false にすると訳文のみが返されます。?includeOriginal=true を付けると、各字幕で原文の後に訳文が続く二言語字幕を取得できます。

curl --fail "$AST_BASE_URL/api/v1/translations/$TASK_ID/result?includeOriginal=true" \
  -H "Authorization: Bearer $AST_API_KEY" \
  --output translated-bilingual.srt

format パラメータは非対応で、指定すると 400 INVALID_REQUEST が返されます。エラーは JSON 形式です。完了前に結果を要求すると 409 TRANSLATION_NOT_READY と Retry-After: 5 が返されます。翻訳が失敗している場合は 409 TRANSLATION_FAILED が返されます。

完了した結果は早めにダウンロードしてください。サイトの削除・保存期間のルールは API タスクにも適用されます。タスクが存在しない、またはアクセスできない場合は 404 が返されます。API タスクは字幕の履歴にも表示されます。

クレジットと制限

API 翻訳では既存のクレジットを使用し、サイトのモデル別料金と最低料金が適用されます。API の追加料金はありません。ファイルごとに見積もりを取得してください。見積もりで価格は固定されません。受け付けられたタスクの creditCost が確保されるクレジット数です。

タスクの待機中または処理中はクレジットが確保され、正常完了時に一度だけ課金されます。待機中に元の有効期限を過ぎても、確保済みクレジットはそのタスクに使用できます。失敗または削除で確保が解除されると、有効期限内のクレジットは利用可能残高に戻り、期限切れのクレジットは期限切れのままになります。失敗したタスクの翻訳料金は発生しません。残高エンドポイントは十進数の文字列で availableCredits、reservedCredits、totalCredits(利用可能分と確保済み分の合計)を返します。

{ "data": { "availableCredits": "9.00", "reservedCredits": "1.00", "totalCredits": "10.00" } }
  • アカウントごとに 60 秒間のウィンドウで最大 60 リクエスト。すべてのキーで共有します。
  • 各ウィンドウで最大 10 POST リクエスト。見積もりと送信で共有します。
  • 待機中または処理中の API タスクは同時に最大 3 件。
  • タスクごとに 1 ファイル、1 つの翻訳先言語。
  • UTF-8 字幕テキストは最大 1 MiB、JSON 全体は最大 2 MiB、字幕は最大 5,000 項目。
  • 字幕 1 項目あたりの文字数はサイトの設定に従います(既定値は 500 文字)。
  • 用語集は 200 項目、登場人物は 100 件まで。登場人物ごとに最大 20 個の別名を指定できます。用語と名前は最大 200 文字です。

現在の制限は /api/v1/capabilities で取得できます。レスポンスには X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset(Unix 時刻、秒単位)が含まれます。429 レスポンスでは Retry-After に従ってください。翻訳の完了時間はキューと入力内容によって変わります。

エラーと再試行

{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Your account does not have enough available credits."
  },
  "requestId": "..."
}

400:無効な入力。401:キーが無効または失効済み。402:クレジット不足。404:タスクが存在しない、またはアクセス不可。409:キーの競合、翻訳が未完了または失敗。410:再送リクエストに対応するタスクが期限切れ。413:入力が大きすぎる。415:JSON が必要。422:字幕が拒否された。429:リクエスト数または実行中タスク数の上限。502:不完全な結果。503:サービス、モデル、またはキューが利用不可。

ネットワークエラーや一時的なサーバー障害では、同じ Idempotency-Key とボディで再試行してください。Retry-After がある場合は指定時間だけ待ちます。翻訳が最終的に失敗した後、新たな翻訳を実行するには新しいキーが必要です。サポートへの問い合わせには X-Request-Id とタスク ID を添えてください。

Premiere Pro での利用手順

  1. SRT ファイルを選択または書き出します。
  2. 料金を見積もり、翻訳先の言語を指定して送信します。
  3. タスクの進捗を表示し、翻訳済み SRT を保存します。
  4. Premiere に読み込み、字幕トラックに配置します。

UXP マニフェストのネットワーク権限にこのオリジンを宣言し、SRT の読み書きに必要なファイルアクセス権限を要求してください。公開エンドポイントは、Cookie を使わない Bearer 認証での CORS リクエストに対応しています。

番号付きの SRT 字幕項目を使用し、時刻を HH:MM:SS,mmm 形式で指定してください。テキストは空にせず、項目間には空行を入れます。既存の字幕クリーンアップも適用されます。書式タグの削除、番号の振り直しが行われ、重なった補助的なテロップが除外される場合があります。残された項目のタイムスタンプは維持されます。SRT には Premiere のスタイルは含まれません。

既存の字幕トラックへの自動アクセスは、利用する Premiere のバージョンで別途確認する必要があります。API が受け付けるのは字幕テキストです。音声は送信前に字幕へ文字起こししてください。