
OpenAI Video API のメタデータパラメータ
OpenAI Video API のメタデータを理解し、ジョブの追跡、プロンプト、入力アセット、レンダリング設定、非同期ステータス、カタログ化、デバッグ、ワークフローに活用しましょう。
OpenAI の Video API におけるメタデータは、動画生成リクエストを追跡・管理するためのツールとして機能します。prompt、model、seconds といったコアパラメータが視覚的な出力を決定する一方で、id、status、expires_at などのメタデータフィールドは、ジョブの進行状況の監視と整理に欠かせません。
主なポイント:
- ジョブ追跡: メタデータはジョブの状態(
queued、in_progress、completed、failed)と進捗率を追跡します。 - カスタムメタデータ: 開発者は整理を改善するために、独自のキーと値のペア(例:
user_id、project_id)を追加できます。 - タイムスタンプ:
created_atやexpires_atなどのフィールドは、ジョブのタイムラインとリソースの有効期限の管理に役立ちます。 - リレーショナルリンク: メタデータは
remixed_from_video_idなどのフィールドを通じてアセットをリンクし、プロジェクト間での継続性を確保します。
開発者にとって、メタデータを効果的に理解し構造化することは、ジョブ追跡から動画出力のカタログ化に至るまで、ワークフローの効率を向上させます。
OpenAI 互換 API におけるコアメタデータパラメータ


プロンプト関連のメタデータ
プロンプトは単なる説明文ではなく、モデルが行うあらゆる視覚的判断に影響を与える一連の指示です。あなたのストーリーボードについて事前情報を一切持たない撮影監督に説明する場面を想像してみてください。OpenAI の Robin Koenig はこれを的確に説明しています:
「プロンプトの作成は、あなたのストーリーボードを見たことのない撮影監督に説明するようなものだと考えてください。詳細を省けば、彼らは即興で対応するでしょう。」 [6]
最良のプロンプトは、層をなしていて具体的です。それには 視覚的構図、動きのビート、ライティング、カラーパレット に関する詳細が含まれます。例えば「人が通りを歩く」と言うのではなく、より効果的なプロンプトは次のようになります: 「女性が4歩進み、横断歩道で立ち止まり、左を見る — 濡れたアスファルト、ネオンの反射、柔らかな頭上の光とともに。」このレベルの詳細さが、正確なタイミングと雰囲気を保証します。
リップシンクの場合は、別の Dialogue: ブロックにセリフを含めます。同様に、特定の映画的スタイルを再現したい場合は、「32mm spherical primes」や「anamorphic 2.0x lens, shallow depth of field」のような正確な用語を使用します。シーン間で一貫したカラーリングを維持するには、3〜5個の具体的な色を指定します(例: 「amber, cream, walnut brown」)。「暖色系」のような曖昧な表現は、一貫性のない結果を招く可能性があるため避けてください。
次に、入力アセットが動画生成をさらに洗練させる方法を見ていきましょう。
入力アセットのメタデータ
入力アセットは 2 つの主要フィールドで定義されます: input_reference と characters。
input_reference: このフィールドは画像 URL またはファイル ID のいずれかを受け付けます。提供されたアセットが最初のフレームの構図とスタイルを設定し、テキストプロンプトがその後の動作を指示します。引き伸ばしや歪みといった問題を避けるため、ソース画像がターゲットのsizeパラメータと一致していることを確認してください [8]。characters: このフィールドは Characters API を通じて生成されたキャラクター ID の配列を受け取ります。各 ID は、解像度 720p から 1080p の短い参照クリップ(2〜4秒の長さ)をアップロードすることで作成されます。1 回の動画生成には最大 2 つのキャラクター参照を含めることができます。これらの ID はプロジェクト間で再利用でき、視覚的な一貫性を確保します [6]。
プロンプトと入力アセットが定義されると、レンダリング設定がそれらすべてをまとめて最終出力を作り上げます。
レンダリングと出力動作のメタデータ
レンダリングパラメータは、動画の寸法、長さ、品質を決定します。これらの設定は API 呼び出しで定義され、プロンプト内の自然言語では調整できません。
model フィールドが主要なレンダリングの選択肢です。sora-2 モデルは速度と迅速な反復処理向けに設計されており、sora-2-pro は 1080p 解像度を含むより高品質な出力を提供します。size パラメータは出力の寸法を決定し、{width}x{height} の文字列として指定されます。サポートされる解像度は選択した AI モデル に依存します。seconds パラメータは動画の長さを制御し、「4」、「8」、「12」、「16」、「20」の値を受け付けます。デフォルトは「4」です [6]。
| パラメータ | サポートされる値 | 備考 |
|---|---|---|
model | sora-2, sora-2-pro | 1080p 出力には sora-2-pro が必要 |
size | 1280x720, 720x1280, 1920x1080, 1080x1920, 1024x1792, 1792x1024 | オプションはモデルによって異なる [6] |
seconds | "4", "8", "12", "16", "20" | 短いクリップの方が精度が高くなることが多い [6] |
variant | video, thumbnail, spritesheet | 出力アセットの形式を決定する |
完了したジョブを取得する際、variant クエリパラメータを使うと出力形式を指定できます: フル動画、サムネイル(.webp)、またはスプライトシート(.jpg)です [8]。フレームレートは独立したパラメータではなく、「180° shutter」や「filmic motion blur」のような映画的効果はプロンプトレベルの指示によって実現されます。大規模なワークフローでは、Batch API を使用すると、標準の POST /videos エンドポイントと同じメタデータパラメータを使って複数の動画レンダリングをキューに入れることができます [8]。
これらのレンダリング設定がメタデータのフレームワークを完成させ、一貫性のあるコンテキスト対応の動画生成プロセスを保証します。
Video API におけるメタデータの実践的なユースケース
マルチモデル統合のためのメタデータ
メタデータは、特定のジョブ要件に基づいてリクエストを適切なモデルへ振り分けるプロセスを簡素化します。例えば、model パラメータを使用して、迅速な反復処理や初期段階の下書きには 1 秒あたり $0.10 の sora-2 を選択できます。プロンプトが固まったら、洗練された本番品質の 1080p 出力には 1 秒あたり $0.70 の sora-2-pro に切り替えられます [9]。Sora、Kling V3 など、さまざまな動画モデルへのアクセスを必要とするプラットフォームは、APIMart のような統一 API を活用できます。これにより、単一の統合ポイントを通じてシームレスなマルチモデルルーティングが可能になります。さらに、メタデータパラメータはモデル間で一貫しているため、モデルを切り替える際にリクエストロジックを全面的に見直す必要はありません。
もう 1 つのコスト削減策は、解像度のゲーティングです。例えば、デフォルトで 720p レンダリングを使用し、1080p をプレミアムオプションとして提供することで、1 秒あたりのレンダリング費用を管理できます [7]。
この種の柔軟な統合は、効率的なジョブ追跡と非同期処理もサポートします。これについては次に説明します。
ジョブ追跡と非同期リクエスト
レンダリング時間は、選択したモデルと解像度に応じて、わずか 30 秒から数分まで幅広く変動します [9]。各動画リクエストは、id、status、progress、expires_at といった主要な識別子を含むジョブオブジェクトを生成します。これらのフィールドにより、生成プロセスを非同期で監視することが可能になります。expires_at フィールドは特に有用で、一時的なダウンロード URL がいつ期限切れになるかを示します — 通常、標準リクエストでは 1 時間以内です。これにより、完了したファイルを S3 や R2 のような永続的なストレージソリューションへ自動転送するための十分な時間が得られます [7]。
本番ワークフローでは、API 呼び出しとサーバー負荷を削減するために webhook が賢明な選択肢です。video.completed や video.failed のようなイベントをリッスンすることで、運用を効率化できます。Batch API を使用する場合、JSONL ファイル内の custom_id フィールドは、バッチ完了後に結果を特定の内部レコードへマッピングできます [10]。これを、返された video_id を内部のプロジェクトタグ、ユーザー ID、コスト見積もりにリンクするローカルデータベースと組み合わせることで、明確な監査証跡が作成されます。このセットアップはデバッグを助けるだけでなく、財務追跡も簡素化します [11]。これらの実践を組み合わせることで、すべてのジョブが確実に記録・復元可能になり、動画生成プロセスがより効率的になります。
追跡を超えて、メタデータは動画アセットの整理と検索においても重要な役割を果たします。
カタログ化と検索の最適化
メタデータは、検索可能で整理された動画ライブラリを作成するために不可欠です。被写体、設定、カメラアングル、ライティングといった構造化されたプロンプトの詳細を video_id とともにローカルデータベースに保存することで、基本的なキーワード検索をはるかに超える高度なフィルタリングと検索が可能になります [11]。lesson_number や difficulty_level のようなフィールドを使う e ラーニングツールや、キャンペーンごとにアセットをタグ付けするマーケティングチームなど、特定の組織的ニーズを持つプラットフォームにとって、カスタムのキーと値のペアは、アプリケーションロジックとシームレスに統合される柔軟なスキーマを提供します [12]。
remixed_from_video_id フィールドは、アセットの創作的な系譜を追跡することで、さらにもう 1 つの整理の層を加えます。これにより、最終的な動画を常にその元の素材まで遡ることができます [1]。さらに、すべての Sora 2 出力に自動的に含まれる C2PA の来歴メタデータは、最初の下書きから最終成果物まで、追跡可能で監査可能な記録を提供します。これらの機能は、生成プロセス全体を通じて動画出力を管理、整理、カスタマイズする上で、メタデータがいかに中心的な役割を果たすかを浮き彫りにします [7]。
メタデータの構造化と検証のベストプラクティス
メタデータスキーマの設計
メタデータスキーマに関して、構造を正しく設計することは、効果的な動画生成に不可欠です。良いアプローチは、二層構造 を使用することです: 標準的で普遍的に互換性のあるキーには、フラットな metadata マップ(例: Rust の BTreeMap を使用)を、プロバイダー固有またはネストされた JSON データには extra(または additional_properties)マップを使用します [3][14][4]。このセットアップにより、コアスキーマがクリーンで適応性のある状態を保ちつつ、個々のモデルに合わせた特定の構成が可能になります。この設計は、前述のカスタマイズとジョブ追跡を直接サポートします。
異なるモデル間での互換性のためには、シンプルでフラットかつ説明的なキー名にこだわってください。remixed_from_video_id、user_id、project_id のような例は、インデックス化、検索、データベースへの保存が容易です [1][13]。ネストされた構造は extra マップ用に取っておき、コアスキーマを複雑にすることなくプロバイダー固有のニーズに対応します。
size や seconds のような動画関連パラメータについては、オープンエンドにするのではなく、文字列の列挙(string enumerations) として定義してください [1][13]。これにより、スキーマレベルで制約を強制することで一貫性が確保され、リクエスト中のエラーを回避できます。
メタデータ入力の検証
リクエストを送信する前に、メタデータ入力を適切に検証することは必須です。これによりジョブの失敗の可能性が減り、前述の追跡およびデバッグ戦略とも整合します:
- すべての動画生成ジョブに対して 常にプロンプトを含める こと [14]。
secondsとsizeの値が、サポートされている列挙値と一致していることを確認すること [1][5]。progressの値が 0 から 100 の整数範囲内に収まっていることを確認すること [13]。
強く型付けされた言語では、組み込みの SDK ツールを活用してください。例えば、Java の VideoCreateParams.Builder は、コンパイル時に必須フィールドと正しい型を保証します [14]。同様に、TypeScript は VideoSeconds リテラルを使用して制約を強制します [2][4]。これらのコンパイル時チェックは、ランタイム検証だけに頼るよりも信頼性が高くなります。
リクエストが失敗した場合は、すぐに VideoCreateError オブジェクトを解析してください。code フィールドは自動処理のための機械可読な識別子を提供し、message フィールドはログ用の明確な説明を提供します [1][13]。これにより、問題が不正なパラメータ、サポートされていないモデル、ネットワークの問題のいずれに起因するのかを判断しやすくなります。
検証を超えて、メタデータはデバッグとパフォーマンス監視においても重要な役割を果たします。
デバッグと監視のためのメタデータの活用
メタデータは、問題の特定とパフォーマンスの追跡において非常に有用です。created_at と completed_at のタイムスタンプを含めることで、レイテンシを計算し、パフォーマンスの回帰を発見できます [1][13]。例えば、特定のモデルや解像度が一貫して予想より時間がかかる場合、これらのタイムスタンプがボトルネックの特定に役立ちます。
反復的なワークフローでは、remixed_from_video_id フィールドが命綱になり得ます。予期しない編集が発生した際に、エラーをその元の素材まで遡って追跡するのに役立ちます [1][13]。これを status フィールドのサーバーサイドポーリング("queued"、"in_progress"、"completed"、"failed" といった状態の追跡)と組み合わせることで、停止したジョブを素早く検出して対処できます [13]。
「あなたのプロンプトを契約書ではなく、創作的な願望リストとして扱ってください。」 — Robin Koenig、Joanne Shin、Annika Brundyn [6]
このアドバイスはメタデータにも当てはまります。生成が失敗した場合は、リクエストを最も基本的な形にまで簡素化し — カメラを固定したり背景を簡略化したり — それから一度に 1 つのパラメータずつ、徐々に複雑さを再導入してください [6]。よく整理されたスキーマは、この反復的なデバッグプロセスをはるかに容易にします。
まとめと重要なポイント
メタデータの利点の振り返り
メタデータは、API 呼び出しを、キューに入った瞬間から最終的なダウンロード段階に至るまで、よく整理され、追跡可能で、再現可能なプロセスへと変える上で、極めて重要な役割を果たします [1][13]。アセットの有効期限追跡のような機能は、ダウンロード URL が期限切れになる前に通知を受け取れることを保証します。一方、機械可読な code フィールドを持つエラーオブジェクトは、問題を即座に特定することでデバッグを高速化します。さらに、カスタムメタデータマップを使えば、内部識別子でジョブにタグ付けでき、カタログ化と整理を簡素化できます [1][3]。
複数のモデルが関わるワークフローでは、メタデータがすべてをまとめる接着剤として機能します。id 参照を通じて生成物をリンクし、キャラクターの一貫性を維持し、custom_id を使ってバッチ出力をマッピングします。これらの機能は、堅牢なメタデータ構造が整っていることに依存します [1][8]。これらの利点を念頭に置いて、あなたのアプローチを洗練させるための実行可能なステップをいくつか紹介します。
開発者のための次のステップ
メタデータフレームワークを最大限に活用するには、まず本記事で説明した重要な原則と照らし合わせて、現在の実装を監査することから始めましょう。ダウンロード URL は生成後 1 時間 のみ有効であるため、すべてのジョブに対して expires_at が追跡されていることを確認してください [8]。status と progress を使ったポーリングロジックを組み込むか、不要な API 呼び出しを減らすために video.completed webhook に切り替えてください [8]。
複数のモデルにまたがるワークフローを管理しているなら、APIMart が実用的なソリューションを提供します。ここで概説したメタデータパターンと一貫した構造で、単一の API を通じて 500 以上の AI モデルへのアクセスを提供します。これにより、各モデルごとに個別の統合を管理する手間がなくなり、開発プロセスを効率化できます [13]。
よくある質問
各動画ジョブについて、データベースにどのメタデータフィールドを保存すべきですか?
動画生成ジョブを把握しておくには、一意の ID、ステータス、プロンプト、モデル、サイズ、長さ といった重要な詳細を必ず保存してください。正確な追跡のために、created_at、completed_at、expires_at などのタイムスタンプを追加します。トラブルシューティングに役立つよう、エラー情報も含めてください。リミックスされた動画については、remixed_from_video_id フィールドを使ってアセットの出所を追跡します。APIMart のようなツールは、簡単な統合と管理のための一元化されたプラットフォームを提供することで、このプロセスを効率化します。
複数の動画生成にわたってキャラクターとスタイルの一貫性を維持するにはどうすればよいですか?
キャラクターの一貫性 を維持するには、アップロードした動画から参照を作成して Characters API を活用します。生成されたキャラクター ID を、生成リクエストの character_ids 配列に含めます。この目的のために、1 回の生成につき最大 2 つのキャラクターを含めることができます。
スタイルの一貫性 については、video extension エンドポイント を使用して、ライティングや被写界深度といった要素を維持したまま、クリップをシームレスに継続させます。スムーズな遷移を実現するには、カメラのフレーミング、レンズの種類、カラーグレーディングといった詳細を必ず指定してください。これらの要素は、最終出力が元の動画と完璧に一致することを保証するのに役立ちます。
ダウンロード URL が期限切れになる前に何をすべきですか?
動画アセットを生成する際は、ダウンロード URL が通常 1 時間以内に期限切れになることを念頭に置いてください。アクセスを失わないために、有効期限が切れる前に、ファイルを安全な場所にダウンロードして保存しておきましょう。有効期限は、動画オブジェクトの expires_at フィールドで追跡できます。ワークフロー全体での動画アセット管理をより容易にするため、APIMart は高度な AI モデルとの統合を提供し、動画の作成や制作といったタスクをより効率的にします。
モデルマーケットで使いたいモデルを選ぶ
APIMart のモデルマーケットでチャット、画像、動画モデルを試し、統一 API でモデルの能力をすばやく体験できます。