チュートリアル
Veo 3.1 API の使い方——5 分で最初の動画を生成する
標準版・Fast・Lite の 3 グレードの選び方、そのまま実行できる curl と Python、イメージ・トゥ・ビデオのパラメータと本番前の注意点。
TL;DR
- Veo 3.1 は Google の動画生成モデルで、HiAPI では標準版・Fast・Lite の 3 グレードを提供しています。テキスト・トゥ・ビデオとイメージ・トゥ・ビデオの両方に対応し、モデルページを開く だけでオンライン生成できます。新規ユーザー登録で 200 クレジットを進呈。
- 秒単位の課金:Lite 720p 音声なしは毎秒 $0.06、Fast 720p/1080p 音声ありは毎秒 $0.25、標準版は毎秒 $0.57。4 秒の Lite 下書きならわずか $0.24。
- API は 2 ステップ:
POST /v1/tasksで送信し、taskIdで結果を取得。以下の curl と Python はコピーするだけで実行できます。
Veo 3.1 でできること
- ネイティブ音声:映像と音声を同時に生成し、環境音・効果音・動作音がすべて映像に合わせて付きます。
generate_audioはデフォルトで有効で、オフにすると安くなります。 - 4・6・8 秒の 3 種類の長さ、16:9 の横画面または 9:16 の縦画面。
- 最大 4K:標準版と Fast は 720p・1080p・4K に対応、Lite は 720p・1080p に対応。
- イメージ・トゥ・ビデオ:1 枚の画像を最初のフレームとして渡すと、モデルが動かします。アスペクト比は元画像に合わせられます。
以下の 6 秒 1080p 縦画面動画は、スニーカーの商品画像 1 枚から 1 回のリクエストで生成したものです。着地の重い音と低音のドラムはモデルが自分で付けました:
The sneaker slowly rotates about 90 degrees as the camera pushes in from a low angle. Dust particles drift through the rim light. The shoe settles onto the wet stone pedestal with a deep, satisfying thud, sending a soft ring of mist rolling off the edges. A warm light sweep travels across the suede texture. Subtle bass-heavy electronic pulse builds in the background with a low whoosh on the landing. Cinematic product commercial, smooth stabilized motion, no text overlays.
このプロンプトで生成する →(先に 9:16 の商品画像をアップロード)
veo-3.1/image-to-video、1080p、6 秒、音声あり、$3.42、送信から完了まで約 115 秒。
3 グレードの選び方
| グレード | 720p/1080p 音声あり | 720p/1080p 音声なし | 4K 音声あり | 用途 |
|---|---|---|---|---|
Lite veo-3.1-lite |
$0.1(720p)/ $0.14(1080p) | $0.06(720p)/ $0.1(1080p) | — | プロンプト調整、一括下書き |
Fast veo-3.1-fast |
$0.25 | $0.17 | $0.6 | SNS 向けショート動画の完成品 |
標準版 veo-3.1 |
$0.57 | $0.29 | $0.86 | 広告、ブランドムービー |
単位はすべて毎秒。8 秒の音声ありだと、Lite 1080p は $1.12、Fast は $2、標準版は $4.56。さらに詳しい計算は Veo 3.1 API の料金 をご覧ください。
2 つの導入方法
オンラインで試す(コード不要)
- Veo 3.1 Lite テキスト・トゥ・ビデオ のモデルページを開き、登録またはログインします。
- プロンプトを貼り付け、長さ・解像度・アスペクト比を選び、音声の有無を決めます。
- 生成をクリックし、完成したらそのままダウンロードします。
API 呼び出し
- コンソールで API Key を作成します。
POST https://api.hiapi.ai/v1/tasksでタスクを送信し、taskIdが返ります。GET /v1/tasks/{taskId}で状態を確認し、statusがsuccessになったらoutput[0].urlから動画をダウンロードします。
curl:最初の 1 本
まずは最も安い Lite で試しましょう。4 秒 720p 音声なしで $0.24:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-lite/text-to-video",
"input": {
"prompt": "A matte-black wireless earbud case slowly rotates on a reflective black surface under a single overhead spotlight.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": false
}
}'
レスポンス:
{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}
結果の取得:
curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Python:送信・ポーリング・ダウンロード
# pip install requests;先 export HIAPI_KEY=你的 Key
import os, time, uuid, requests
KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
def generate(prompt, model="veo-3.1-lite/text-to-video", timeout_s=900, **params):
body = {"model": model, "input": {"prompt": prompt, **params}}
# 重试提交同一个任务时带同一个 Idempotency-Key,避免重复扣费
headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
r.raise_for_status()
res = r.json()
if res.get("code") != 200:
raise RuntimeError(res)
task_id = res["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d)
time.sleep(10)
raise TimeoutError(task_id)
url = generate(
"A barista pours hot water in a slow spiral over ground coffee, steam rising in morning light",
duration=4, resolution="720p", aspect_ratio="16:9", generate_audio=True,
)
with open("clip.mp4", "wb") as f:
f.write(requests.get(url).content)
プロンプトが固まったら、model を veo-3.1-fast/text-to-video または veo-3.1/text-to-video に変えて完成品を生成します。ほかのパラメータはそのままで構いません。
イメージ・トゥ・ビデオ
モデル名を …/image-to-video に変え、input に画像を 1 枚追加します(image_url は文字列で、受け付けるのは 1 枚のみ):
{
"model": "veo-3.1/image-to-video",
"input": {
"prompt": "The sneaker slowly rotates and settles onto the wet stone pedestal with a deep thud",
"image_url": "https://your-cdn.example.com/sneaker-916.jpg",
"aspect_ratio": "auto",
"resolution": "1080p",
"duration": 6
}
}
aspect_ratioにautoを指定すると元画像に合わせます。16:9や9:16も指定できますが、それ以外の比率の画像はトリミングされます。- 元画像は 720p 以上、16:9 または 9:16 を推奨します。SVG には対応していません。
- プロンプトには「次の数秒でどう動くか」を書き、画像全体を説明し直す必要はありません。
本番前の注意点
- ポーリングの代わりにコールバックを使う:リクエストのトップレベルに
"callback": {"url": "https://あなたのドメイン/hiapi/callback"}を追加すると、タスク完了時に HiAPI が通知します。taskIdで重複を排除してください。 - すぐに転送保存する:
output[0].urlは一時リンクなので、取得後すぐに自分のストレージへ保存してください。 - パラメータは省略しない:
durationのデフォルトは 8 秒で、標準版と Fast ではresolutionが必須です。長さ・解像度・generate_audioを明示的に指定すると、費用が予算と一致します。 - 音声が不要ならオフに:
generate_audio: falseにすると、Lite 720p は毎秒 $0.1 から $0.06 に、標準版は $0.57 から $0.29 に下がります。 - 失敗時は自動返金:課金は正常に生成された動画に対してのみ行われます。
よくある質問
プロンプトは中国語でも書けますか?
はい、中国語でも英語でも構いません。カメラワーク・動作・音声を文に分けて書くと最も安定します。
10 秒の動画は生成できますか?
1 回の生成は 4・6・8 秒のみ対応しています。より長い完成品は分割して生成した後に編集してください。
音声は個別に制御できますか?
プロンプトに各層の音(近くの動作音、環境の人の声、風の音)を明記すれば、モデルがそれぞれ生成します。音声が不要な場合は generate_audio を false に設定してください。
Lite で調整したプロンプトを標準版に切り替えるには何を変えますか?
モデル名だけを変えます。prompt、duration、aspect_ratio、generate_audio はすべて共通です。4K が必要なときは resolution を 4k に変更します(Lite には 4K がありません)。
すぐに使えるプロンプトをお探しなら Veo 3.1 プロンプト事例 をご覧ください。上記のスニーカーのプロンプトをコピーして モデルページで生成する こともできます。
関連記事
すべての記事を見る →-
チュートリアル
HiAPI API で hailuo-2.3-fast/image-to-video を呼び出す方法:curl と Python の実践
高速・低コストな画像から動画へのティアにおける最初の実行可能なリクエスト — モデル ID から MP4 のダウンロードまで
-
チュートリアル
HiAPI APIでhailuo-2.3/text-to-videoを呼び出す方法:curl、Python、実行可能なリクエスト例
-
チュートリアル
HiAPI で Kandinsky 6.0 Pro のテキストto動画を使用する:curl と Python チュートリアル
リクエスト優先の実践デモ:プロンプトから動画クリップへの呼び出しを構築し、リクエストを送信し、完了状態をポーリングし、結果をダウンロードする