AI動画生成API:アクセス、料金、統合、運用ガイド
AI動画生成APIは、製品やワークフロー内でテキスト、画像、音声、または参照動画から短い動画を作成する手段です。API呼び出しは始まりにすぎません。本番実装には、モデルアクセスに関する判断、単なる試行レンダリングではなく採用された出力を反映する予算、非同期ジョブのワークフロー、そして完成したアセットを保存・監視する計画も必要です。
このガイドでは、プロダクトチームがこうした判断を持続的に行うための方法を示します。現在公開されているAPIドキュメントを例として使用しますが、モデル名、パラメータ、可用性、価格は、ローンチ直前に必ず確認すべき入力情報として扱います。
要点:実際に必要な制御を提供するアクセス経路を選び、コストをプロバイダーの実際の課金単位に対して正規化し、動画生成を非同期ジョブとしてモデル化し、本番導入を確約する前に代表的なバッチでテストしてください。ほとんどのチームにとって有用な運用指標は、1秒あたりの見出し価格ではなく、採用されたクリップ1本あたりのコストです。
AI動画生成APIが実際に行うこと
ほとんどの動画APIは、同じHTTPレスポンスでMP4を返すのではなく、長時間実行される生成タスクを作成します。基本的なライフサイクルは次のとおりです。
- アプリがプロンプトと任意の参照メディアを送信します。
- プロバイダーまたはゲートウェイがタスクまたはオペレーションを作成します。
- ワーカーがタスクをポーリングし、Webhookを受信するか、またはその両方を行います。
- ジョブが終端状態になったら、アプリが出力を取得し、アセットメタデータを永続化して、ユーザーがクリップを利用できるようにします。
GoogleのVeoドキュメントでは、動画処理は完了が報告されるまで確認しなければならない長時間実行オペレーションとして明示されています。Flatkeyの現在のSeedance 2.5モデルページも同じ運用パターンに従っています。/v1/videosに送信し、タスクIDを保持し、ステータスをポーリングして、完成したコンテンツを取得します。つまり、AI動画生成APIは、最終アセットを待機するリクエストハンドラー内ではなく、自社システム内のジョブレコードの背後に配置するべきです。
APIは複数種類のクリエイティブ入力をサポートする場合があります。
| ワークフロー | 製品が提供するもの | ローンチ前に検証すべきこと |
|---|---|---|
| テキストから動画 | シーン、アクション、スタイル、カメラ、音声に関する文章の指示 | プロンプト制約、尺、アスペクト比、解像度、安全性の挙動 |
| 画像から動画 | 最初のフレーム、製品画像、またはストーリーボード画像 | 対応画像形式、クロップ、キャラクターの一貫性、最初・最後のフレームの挙動 |
| 参照から動画 | 複数の画像、動画、または音声入力 | 入力数の制限、アセットURLへのアクセス、順序・役割のセマンティクス、追加課金 |
| 動画編集または延長 | 既存のクリップ | 選択したルートが実際に対応しているか。別のモデルファミリーから対応状況を推測しないこと |
モデルの機能は、カテゴリ全体に対する保証ではありません。たとえば、現在のFlatkey Seedance 2.5ページでは、そのルートでテキストから動画、画像から動画、参照から動画が文書化されている一方、動画編集と動画延長は利用不可と示されています。出荷する正確なモデルIDについては、最新のモデルページまたはプロバイダーAPIリファレンスを契約内容として扱ってください。
アクセス方法の選び方:直接プロバイダーかマルチモデルゲートウェイか
動画モデルにアクセスする方法には、合理的な選択肢が2つあります。どちらか一方が常に優れているわけではありません。
| アクセスパターン | 適しているケース | 計画すべきトレードオフ |
|---|---|---|
| 直接プロバイダーAPI | 特定ベンダー固有の機能が製品の中核である場合、またはチームがそのプロバイダーの最新パラメータを登場次第必要とする場合 | プロバイダーごとに別個の認証情報、課金、タスクスキーマ、監視、移行が必要になる |
| マルチモデルゲートウェイ | 複数モデルを評価している場合、より広範なAI製品に向けて単一のアクセス層を求める場合、または共有残高とカタログを利用したい場合 | 選択する各モデルについて、正確なルート、対応フィールド、ライフサイクル、価格を引き続き検証する必要がある |
Flatkeyは2番目のパターンの例です。そのドキュメントでは、共有モデルカタログ向けにOpenAI互換のベースURLを1つ提供する一方、動画モデルのページでは、選択したルートに適用される動画固有の契約を記載しています。この違いは重要です。アカウントおよびルーティング層での互換性は、すべてのメディアモデルがチャット補完のペイロードを使用することを意味しません。
具体的な現在のルートとして、FlatkeyはSeedance 2.5をcontent[]ボディ付きのPOST /v1/videosで文書化しています。このページにはテキスト、画像、動画、音声の参照が記載されており、ルート固有の出力設定とタスクベースの取得フローも記載されています。まず最新のSeedance 2.5モデル契約を読み、想定する製品ワークフローと同じ尺、解像度、アスペクト比、参照メディアのパターンを使用して、意図的に小さな呼び出しを行ってください。
シンプルなアクセス判断
ローンチが特定プロバイダー専用の機能に依存しており、その統合を自ら運用する能力がある場合は、直接APIを選択してください。最初の課題がモデル評価、ルートの移植性、またはより大きな製品全体での認証情報と課金の統合である場合は、複数モデルを公開するアクセス層を選択してください。
どちらの場合も、プロバイダー名/モデル名、リクエスト形式、返されたジョブIDを自社のデータベースに保存してください。そうすることで、後からのモデル切り替え、インシデントレビュー、コスト照合が可能になります。
AI動画生成APIの料金:レートの前に課金単位を比較する
動画プロバイダーはすべて同じ方法で課金するわけではないため、料金は誤読しやすいものです。生成された秒数ごとに価格設定されるルートもあれば、消費トークンからコストを算出するルートもあり、ゲートウェイではルート固有のリアルタイム料金が表示されることもあります。これらはスプレッドシート上で置き換え可能な列ではありません。
| 例となるサービス | 確認すべき公開課金基準 | 計画に役立つ質問 |
|---|---|---|
| Google Veo | 有料ティアの料金は生成秒数ごとに公開されており、モデルバリアントと解像度によって異なります | 実際のユースケースに合うバリアント、解像度、長さ、試行回数はどれですか? |
| Direct BytePlus ModelArk Seedance | 実際の使用量は、呼び出し後に返される completion_tokens に紐付きます。解像度、長さ、入力動画が消費量に影響する場合があります |
実際に実行した代表的なリクエストについて、プロバイダーは何を報告しましたか? |
| Flatkey Seedance 2.5 | ライブカタログには、ルート固有の秒単価と最小長が表示されます | バッチ開始前に、アカウントで有効になっている正確なモデル、出力設定、カタログ料金は何ですか? |
Google Gemini APIの料金ページには、現在のVeo有料ティア料金が生成秒数、モデルバリアント、解像度別に掲載されています。BytePlus ModelArkの料金ドキュメントでは、実際の動画消費量は呼び出し後に返される completion_tokens によって決定されると説明されています。FlatkeyのSeedance 2.5ページでは、ルートおよび出力設定ごとの現在のカタログ料金を確認できます。これらのページは、コードにコピーして固定する恒久的な料金表ではなく、リリース当日の確認に使用してください。
採用クリップあたりのコストを使用する
AI動画生成APIにおいて意思決定に用いる指標は、通常、リクエストあたりのコストではありません。意図した用途に対する品質およびポリシー基準を満たすクリップのコストです。
cost per accepted clip = total billable generation spend / accepted clips
リリース時の予測では、次のように計算します。
estimated spend = planned attempts × estimated cost per attempt
expected accepted clips = planned attempts × observed acceptance rate
estimated cost per accepted clip = estimated spend / expected accepted clips
この計算は、小規模で代表性のあるバッチを実行した後に行ってください。モデルが多数の再試行や人的な手直しを必要とする場合、秒単価が低くても採用クリップあたりのコストが高くなることがあります。逆に、採用率が高く編集サイクルが少ないワークフローでは、試行あたりの料金が高くても経済的な場合があります。
支出を拡大する前に、すべてのテストジョブについて以下のフィールドを記録してください。
- モデルID、およびプロバイダーまたはゲートウェイルート。
- リクエストした長さ、解像度、アスペクト比と、実際に提供されたもの。
- 入力タイプと参照アセット数。
- プロバイダーのタスクIDと自社のジョブID。
- 報告された使用量と請求額。
- 最終ステータスと再試行理由。
- 採用可否の判断とその理由。
- そのジョブを所有するキャンペーン、顧客、またはプロダクト機能。
テキスト、画像、動画のワークロード全体で利用できる、より詳細な予算策定ワークシートについては、マルチモデルAI API支出の予測方法を参照してください。
AI動画生成APIを非同期ジョブとして統合する
動画プロバイダーの処理をブラウザに待たせないでください。ジョブを永続化し、作業をキューに入れ、ワーカーに送信とポーリングを担当させます。クライアントには直ちに自社のジョブIDを返し、アプリケーションのステータスエンドポイントを確認できるようにします。
| 段階 | 自社アプリケーションが管理するもの | プロバイダーまたはゲートウェイが管理するもの | 次に進む前に永続化するもの |
|---|---|---|---|
| 受付 | ユーザーの意図、アセット利用の承認、予算ガードレール | — | アプリケーションのジョブIDとリクエストリビジョン |
| 送信 | 検証とリクエスト組み立て | タスク作成 | プロバイダー/モデルルートとタスクID |
| 実行中 | キュー、ポーリング/Webhook処理、タイムアウトポリシー | 推論実行 | 正規化されたステータスと再試行履歴 |
| 完了 | アセット保存、採用レビュー、ユーザーへの提供 | 出力の可用性と使用量の詳細 | 出力先、コスト、採用結果 |
現在のFlatkey Seedanceリクエスト例
以下は、現在ドキュメント化されているSeedance 2.5のリクエスト形式に基づく、小規模でルート固有のスモークテストです。キーはサーバー上に保管してください。本番環境で使用する前に、ライブのルート、アカウントでの利用可否、正確なモデルページを再度確認してください。
curl https://router.flatkey.ai/v1/videos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FLATKEY_API_KEY" \
-d '{
"model": "seedance-2.5",
"content": [
{
"type": "text",
"text": "A clean product video, natural light, slow camera move."
}
],
"ratio": "adaptive",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
レスポンスにはタスク識別子が含まれます。完全なレスポンスをアプリケーションのジョブとともに保存し、終了時刻を推測するのではなく、ドキュメントに記載されたタスクエンドポイントをポーリングしてください。
curl "https://router.flatkey.ai/v1/videos/TASK_ID" \
-H "Authorization: Bearer $FLATKEY_API_KEY"
正常に完了した場合は、ドキュメントに記載されたコンテンツルートから完成したコンテンツを取得します。すべてのプロバイダーがこの正確なエンドポイントやレスポンス形式を共有していると想定しないでください。たとえばGoogleは、結果をダウンロードする前にdoneがtrueになるまで確認する必要がある長時間実行オペレーションを返します。アプリケーション側のアダプターにより、こうした違いをプロダクトコードから切り離せます。
type VideoJob = {
id: string;
provider: string;
model: string;
providerTaskId?: string;
status: "queued" | "submitted" | "running" | "succeeded" | "failed";
};
async function submitFlatkeySeedance(job: VideoJob, prompt: string) {
const response = await fetch("https://router.flatkey.ai/v1/videos", {
method: "POST",
headers: {
"content-type": "application/json",
authorization: `Bearer ${process.env.FLATKEY_API_KEY}`,
},
body: JSON.stringify({
model: "seedance-2.5",
content: [{ type: "text", text: prompt }],
ratio: "adaptive",
resolution: "720p",
duration: 5,
generate_audio: true,
}),
});
if (!response.ok) throw new Error(`Video submission failed: ${response.status}`);
return response.json(); // Persist the returned task identifier with job.id.
}
上記のアダプターでは、レスポンスフィールドや終端状態の文字列を意図的にハードコードしていません。プロバイダーのレスポンスを保存し、それを独自の正規化された状態マシンにマッピングして、そのマッピングをプロバイダー統合の近くに保持してください。
高額な想定外を防ぐ本番環境の制御
AI動画生成APIには、他の従量課金・非同期依存関係と同じエンジニアリング規律に加え、アセット管理と人による品質レビューが必要です。
1. 重複送信を不可能にする
ジョブIDと送信したリビジョンから、アプリケーションレベルの冪等性キーを作成します。プロバイダーがタスクを受け入れた後、データベースを更新する前にワーカーがクラッシュした場合、安全な再試行ではまずプロバイダーのタスクIDがすでに存在するかを確認する必要があります。同じクリエイティブジョブを盲目的に2回送信しないでください。
2. 上限付きの再試行を使用する
統合で一時的なものと分類したエラーのみを再試行してください。最大試行回数を設定し、以前のプロバイダータスクIDを記録し、予算または再試行上限に達したら停止します。バリデーションエラー、ポリシーブロック、または無効な入力アセットには、自動再送信ではなくユーザー向けの説明が必要です。
3. アセットの耐久性とアクセス制御を維持する
参照アセットには、リクエストの期間中に安定して認可されたURLが必要です。生成後は、一時的なプロバイダーURLにいつまでも依存するのではなく、ストレージおよび保持ポリシーに従って出力をコピーまたは永続化してください。入力アセットのハッシュと出力先をジョブメタデータとともに記録します。
4. クリエイティブの受け入れをAPIの成功と分離する
succeededはAPIが出力を作成したことを意味しますが、その出力が顧客、キャンペーン、またはプロダクト画面に適していることを意味するわけではありません。自動、人手、またはその両方による軽量な受け入れ判定を追加し、クリップが却下された理由を記録してください。それが、受け入れ済みクリップあたりのコストを計算するための入力になります。
5. モデルのライフサイクルを監視する
動画モデルのパラメーターと可用性は急速に変化します。Googleの現行Veoドキュメントはモデルのライフサイクル状態を区別し、開発者をモデル固有の制限へ案内しています。Flatkeyのモデルページには、現在のルートフィールドと可用性が記載されています。モデル、解像度、音声、参照メディアの動作、またはプロバイダールートを変更するたびにスモークテストを再実行してください。
6. 誠実なメディアポリシーをワークフローに組み込む
参照アセットの権利を取得し、配信先で必要な場合はユーザーに明確な開示を行い、公開前に合成人物、ブランド、センシティブなコンテンツの取り扱いを定義してください。プロバイダーによる受け入れは、プロダクトのポリシーや法務レビューの代わりにはなりません。
キュー、Webhook、再試行、ストレージ、監視を網羅した詳細な運用チェックリストについては、テキスト動画生成チーム向けSeedance API本番環境チェックリストをお読みください。
7ステップのローンチ計画
- 検証可能なユースケースを1つ書き出す。 対象ユーザー、アスペクト比、尺、許容可能なアーティファクト、および出力を承認する担当者を定義します。
- テストするルートを2つまたは3つ選ぶ。 ブランドレベルの想定ではなく、正確なモデルIDとリクエスト形式を比較します。
- 小規模で代表的なバッチを作成する。 ユーザーが実際に送信するプロンプトと参照メディアの条件を含めます。
- 試行レベルのコストと結果を記録する。 使用量、タスク状態、所要時間、再試行、受け入れ判断を取得します。
- 予算のガードレールを決める。 ジョブあたりの最大試行回数と、受け入れ済みクリップあたりのコストしきい値を設定します。
- 非同期キューの背後でローンチする。 独自のジョブ状態、プロバイダータスクID、出力メタデータを永続化します。
- 再検証を予定する。 ボリュームを増やす、または新しいクリエイティブワークフローを開始する前に、現行のモデルページ、価格、制限、ライフサイクルを再確認します。
製品でテキスト、画像、音声、動画の各モデルをまたいでルーティングする場合は、マルチモーダルエージェントルーティングに関するこのガイドを参考に、フォールバック計画と可観測性計画も策定してください。
AI動画生成APIの本番運用チェックリスト
- [ ] 正確なモデルID、プロバイダー/ゲートウェイのルート、ライフサイクル状態が記録されている。
- [ ] リクエスト契約は、アクティブなモデル/APIドキュメントから取得されている。
- [ ] ジョブはアプリケーション内で非同期処理され、永続的なプロバイダータスクIDを持つ。
- [ ] リトライシステムにより、課金対象の重複送信が防止されている。
- [ ] 課金単位が代表的なバッチを使って検証されている。
- [ ] チームは表示上の料金だけでなく、承認済みクリップあたりのコストを追跡している。
- [ ] 参照アセットと出力アセットについて、ストレージと保持の経路が文書化されている。
- [ ] 出力レビュー、安全性対応、ユーザーへの開示がユースケースに応じて定義されている。
- [ ] トラフィックを拡大する前に、モデル/ページの再検証が予定されている。
候補にVeoが入っている場合は、Vertex AIの料金とGemini APIプレビューモデルの後継について、Veo 3の料金(2026年10月)をお読みください。
よくある質問
AI動画生成APIとは何ですか?
AI動画生成APIを使用すると、ソフトウェアからテキスト、画像、音声、その他の参照メディアに基づく生成動画をリクエストできます。本番環境では通常、非同期タスクとして機能します。リクエストを送信し、タスクIDまたはオペレーションIDを保持し、ステータスを確認して、完了した結果を取得します。
AI動画生成APIの料金はいくらですか?
正確なルートと課金単位によって異なります。現在公開されている例には、Google Veoの生成秒数ごとの料金、直接利用するBytePlus ModelArk Seedanceのトークン消費型課金、Flatkey Seedanceルートのリアルタイムな秒数ごとのカタログ料金があります。支出を予測する前に、モデル、解像度、時間、入力メディア、リトライ、承認率を一致させてください。
テキストから動画と画像から動画に1つのAPIを使えますか?
両方をサポートするモデルルートもありますが、詳細はモデルごとに異なります。Flatkeyの現在のSeedance 2.5ページでは、/v1/videosでテキストから動画と画像から動画を利用できることが記載されています。実装前に、稼働中のルートでサポートされるコンテンツロール、制限、出力設定を確認してください。
ポーリングとWebhookのどちらを使用すべきですか?
選択したプロバイダーが文書化している仕組みを使用してください。タスクステータスエンドポイントがある場合、ポーリングは安全な出発点です。Webhookはポーリングを減らし、アプリケーションの更新を高速化できますが、検証、重複排除、および保存済みジョブ状態との照合を行う必要があります。
動画モデルを安全に切り替えるにはどうすればよいですか?
モデルの切り替えは、管理された評価として扱ってください。アプリケーションのジョブスキーマを安定させ、新しいルート用のプロバイダーアダプターを追加し、同じ代表的なバッチをテストして、承認済みクリップあたりのコストを比較し、両バージョンのモデルIDとタスクメタデータを保持します。プロバイダーを変更する前には、モデル価格の比較ワークフローが有用な補助資料となります。
測定可能なパイロットから始める
最適なAI動画生成APIは、最も印象的なデモを持つものではありません。クリエイティブ要件を満たし、運用設計に適合し、継続可能な予算内で承認済みクリップを生成できるルートです。まずは1つのルート、1つの現実的なバッチ、完全なジョブ記録から始めてください。その後、結果データを用いて、プロンプトシステムを調整するか、モデルを変更するか、別のルートを追加するかを判断します。
現在のFlatkeyモデルディレクトリを確認し、稼働中のSeedance 2.5 API・料金ページを検証したうえで、本番上限を引き上げる前に小規模な非同期パイロットを実施してください。



