Video REST API
Video APIは、RESTfulエンドポイントでURLを生成することをサポートしており、長時間実行される処理プロセスの処理を改善し、プロンプトベースの入力に対してより高い文字数制限を提供します。
認証
Imgix REST APIへのすべての呼び出しには、任意の権限(請求、アセットマネージャー読み取りなど)を持つAPIキーが必要です。キーを作成するには、ダッシュボードのAPIキービューに移動してください。
動画生成操作
| エンドポイント | メソッド | 説明 |
|---|---|---|
/v1/generations/video | POST | 画像URLとプロンプトから新しい動画生成ジョブを作成します。 |
/v1/generations/video/:job_id | GET | 動画生成ジョブのステータスと詳細を取得します。 |
動画生成ジョブの作成
動画生成ジョブを作成するには、以下のパラメータを使用して/v1/generations/videoにPOSTリクエストを行います:
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
url | String | Yes | 動画生成に使用するソース画像のURL。 |
prompt | String | Yes | 動画生成をガイドするテキスト説明。 |
model | String | Yes | 使用するAIモデル。使用可能な値: klingai, veo2, veo3。 |
duration | Integer | Yes | 生成される動画の長さ(秒単位)。 |
POST /v1/generations/video
{
"url": "https://assets-secured.imgix.net/docs/examples/building-01.jpg",
"prompt": "walking towards building POV",
"model": "veo3",
"duration": 8
}動画生成ジョブのステータス取得
動画生成ジョブのステータスを確認するには、/v1/generations/video/:job_idにGETリクエストを行います。
レスポンス属性
| 属性 | 型 | 説明 |
|---|---|---|
status | String | ジョブの現在のステータス。可能な値:preparing、ready、errored。 |
created_at | Integer | ジョブが作成された時刻のUnixタイムスタンプ。 |
updated_at | Integer | ジョブが最後に更新された時刻のUnixタイムスタンプ。ステータスが ready または errored の場合に存在します。 |
result.url | Object | ステータスが ready の場合に存在します。生成されたビデオの url を含みます。 |
error.code | Integer | ステータスが errored の場合に存在します。エラーコードを含みます。 |
error.message | String | ステータスが errored の場合に存在します。説明的なエラーメッセージを含みます。 |
# Request
GET /v1/generations/video/3f98a9b2c4d5e6f7a8b9c0d1{
"data": {
"type": "job",
"id": "3f98a9b2c4d5e6f7a8b9c0d1",
"attributes": {
"status": "preparing",
"created_at": 1760074634
}
}
}ステータスコード
| ステータスコード | 説明 |
|---|---|
200 | OK - ジョブが正常に作成されたか、ジョブのステータスが正常に取得されました。 |
400 | 不正なリクエスト - 無効なリクエストパラメータまたはソースURL(例: プロンプトの欠落)。 |
401 | 未認証 - 無効なAPIキーまたはアカウントの不一致。 |
403 | 禁止 - このソースに対して画像から動画への機能が有効になっていません。 |
500 | 内部サーバーエラー - ジョブ作成中のサーバーエラー。 |
ジョブのステータス値
動画生成ジョブはいくつかの状態を経過します:
| ステータス | 説明 |
|---|---|
pending | ジョブが作成され、処理待ちキューに入っています。 |
processing | 動画生成が進行中です。 |
completed | 動画生成が正常に完了しました。result_urlが利用可能になります。 |
failed | 動画生成が失敗しました。レスポンスのエラーメッセージを確認してください。 |
結果のポーリング
動画生成は非同期であるため、GETエンドポイントをポーリングしてジョブのステータスを確認することをお勧めします。
async function pollJobStatus(jobId) {
const maxAttempts = 60;
const pollInterval = 5000; // 5 seconds
for (let i = 0; i < maxAttempts; i++) {
const response = await fetch(
`https://api.imgix.com/v1/generations/video/${jobId}`,
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
},
);
const data = await response.json();
const status = data.data.attributes.status;
if (status === "ready") {
return data.data.attributes.result.url;
} else if (status === "errored") {
throw new Error(data.data.attributes.error.message);
}
// Wait before next poll
await new Promise((resolve) => setTimeout(resolve, pollInterval));
}
throw new Error("Job timed out");
}