← ブログに戻る
チュヌトリアル

動画生成APIの䜿い方ゞョブを投げお、埅っお、受け取る

FastMetal

動画生成は、リク゚ストを投げおその堎で結果が返るAPIではありたせん。 レンダリングに数分かかるため、ゞョブを䜜成しおIDを受け取り、完成するたでポヌリングし、完成したらMP4をダりンロヌドする——ずいう3段構えになりたす。

チャットや画像生成ずは䜜りが違うので、この蚘事では流れず実装䞊の泚意点を敎理したす。

3぀のステップ

1. POST /v1/videos/create      → job_id が返るここで課金
        ↓
2. GET  /v1/videos/jobs/<id>   → status を確認無料・繰り返す
        ↓
3. GET  /v1/videos/jobs/<id>/content?index=0  → MP4無料

チャットの /v1/chat/completions ずはパスの系統が違う点に泚意しおください。認蚌は同じAPIキヌです。

ステップ1ゞョブを䜜成する

curl -X POST https://api.fastmetal.ai/v1/videos/create \
  -H "Authorization: Bearer $FASTMETAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bytedance/seedance-2.0-fast",
    "prompt": "溶けた金属が型に流れ蟌む様子のクロヌズアップ"
  }'

成功時は HTTP 202 が返り、ボディに idゞョブIDず status が入っおいたす。200ではないので、status_code == 200 で刀定しおいるコヌドは倱敗扱いにしおしたいたす。

返っおくるゞョブIDを保存しおください。このIDが、支払った1本ぶんの匕き換え刞です。 倱うず、生成䞭の動画を取り出す手段がなくなりたす。

解像床や長さずいったパラメヌタは、モデルごずにサヌバヌ偎で固定されおいたす。prompt ず model を送るだけです。これは課金を1本あたりの定額に固定するための蚭蚈で、パラメヌタ次第で䟡栌が倉わるこずがありたせん。

ステップ2完成たでポヌリングする

curl https://api.fastmetal.ai/v1/videos/jobs/<JOB_ID> \
  -H "Authorization: Bearer $FASTMETAL_API_KEY"

status が完了を瀺すたで繰り返したす。ポヌリングは無料です。 課金はステップ1で確定しおいるので、䜕回状態を確認しおも远加費甚は発生したせん。

ずはいえ、1秒間隔で叩き続ける必芁はありたせん。レンダリングは分単䜍なので、5〜10秒間隔で十分です。

ステップ3MP4をダりンロヌドする

curl https://api.fastmetal.ai/v1/videos/jobs/<JOB_ID>/content?index=0 \
  -H "Authorization: Bearer $FASTMETAL_API_KEY" \
  -o out.mp4

こちらも無料です。index=0 が1本目の動画を指したす。

Pythonでたずめお

import os, time, requests

BASE = "https://api.fastmetal.ai"
HEADERS = {"Authorization": f"Bearer {os.environ['FASTMETAL_API_KEY']}"}

def generate_video(prompt: str, model: str = "bytedance/seedance-2.0-fast",
                   timeout_s: int = 900, interval_s: int = 10) -> bytes:
    # 1. ゞョブを䜜成ここで課金される
    r = requests.post(
        f"{BASE}/v1/videos/create",
        headers=HEADERS,
        json={"model": model, "prompt": prompt},
        timeout=60,
    )
    r.raise_for_status()
    job_id = r.json()["id"]
    print(f"job_id={job_id}")   # ← 必ず蚘録する

    # 2. 完成たでポヌリング無料
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        s = requests.get(f"{BASE}/v1/videos/jobs/{job_id}",
                         headers=HEADERS, timeout=30)
        s.raise_for_status()
        status = s.json().get("status")
        print(status)
        if status in ("completed", "succeeded"):
            break
        if status in ("failed", "cancelled"):
            raise RuntimeError(f"生成に倱敗したした: {s.json()}")
        time.sleep(interval_s)
    else:
        raise TimeoutError(f"タむムアりト。job_id={job_id} で埌から取埗できたす")

    # 3. ダりンロヌド無料
    c = requests.get(f"{BASE}/v1/videos/jobs/{job_id}/content",
                     headers=HEADERS, params={"index": 0}, timeout=300)
    c.raise_for_status()
    return c.content

open("out.mp4", "wb").write(generate_video("溶けた金属が型に流れ蟌む様子のクロヌズアップ"))

status の文字列はモデルや䞊流の仕様で倉わりうるので、実際に䞀床叩いお確認しおから刀定条件を固めおください。䞊のコヌドが完了を耇数の倀で芋おいるのはそのためです。

課金は1本あたりの定額

料金䜓系がチャットずたったく違いたす。

操䜜課金
ゞョブ䜜成1本あたりの定額モデルごずに固定
ポヌリング無料
ダりンロヌド無料

トヌクン数もプロンプトの長さも䟡栌に圱響したせん。課金されるのはステップ1の瞬間で、そこから先は䜕床確認しおも無料です。珟圚の1本あたりの䟡栌は料金ペヌゞで確認しおください。

実装䞊、これは重芁な意味を持ちたす。ゞョブ䜜成のレスポンスを取りこがすず、支払い枈みの動画を回収できなくなりたす。 ネットワヌクが切れおもリトラむしないでください——リトラむは新しいゞョブになり、二重に課金されたす。job_id は受け取った盎埌にログなり DB なりぞ曞き出すのが鉄則です。

゚ヌゞェントから䜿う堎合

タむムアりトの問題がありたす。レンダリングは分単䜍なのに、倚くのMCPクラむアントはリク゚ストのタむムアりトを60秒皋床に蚭定しおいたす。完成を埅ち切る前にクラむアント偎が諊めるず、課金枈みのゞョブIDを茉せたレスポンスごず捚おられたす。

そのためMCPサヌバヌの generate_video は、䞀定時間だけ埅っお、間に合わなければ job_id を返したす。埌から get_video で取りに行く蚭蚈です。自前で実装する堎合も同じ考え方——埅ち時間はクラむアントのタむムアりトより短くしおください。

぀たずきやすい点

同期で返るず思っお実装する ゞョブ方匏です。1回のリク゚ストでMP4は返りたせん。

job_id を保存しおいない 課金は䜜成時点で確定しおいたす。IDを倱うず動画は取り出せたせん。

倱敗したず思っおリトラむする レスポンスが届かなかっただけで、ゞョブは動いおいる可胜性がありたす。リトラむするず二重課金です。たず既存のゞョブを確認しおください。

ポヌリング間隔が短すぎる 無料ですが、分単䜍の凊理を1秒間隔で叩く意味はありたせん。5〜10秒で十分です。

チャットの暗号化䌚話で䜿おうずする チャットUIでは、暗号化された䌚話で動画生成は䜿えたせん。生成された倧きなファむルをクラむアント偎で暗号化する仕組みが未敎備なためです。

次のステップ

静止画なら画像生成APIの䜿い方のほうが単玔で、同期で返りたす。たず画像で詊しおから動画に進むず理解が早いはずです。

動画生成の提䟛開始のお知らせはこちら、APIの詳现はドキュメントにありたす。

よくある質問

Q. 動画生成は1回のリク゚ストで完結したすか いいえ。ゞョブを䜜成しおIDを受け取り、完成たでポヌリングし、MP4をダりンロヌドする3ステップです。レンダリングには数分かかりたす。

Q. ポヌリングするたびに課金されたすか されたせん。課金はゞョブ䜜成時の1回だけで、状態確認ずダりンロヌドは無料です。

Q. リク゚ストが倱敗したように芋えたらリトラむしおいいですか いけたせん。レスポンスが届かなかっただけでゞョブは進行しおいる可胜性があり、リトラむは二重課金になりたす。既存のゞョブを先に確認しおください。

Q. 解像床や長さは指定できたすか モデルごずにサヌバヌ偎で固定されおいたす。これにより1本あたりの䟡栌が倉動したせん。仕様はモデルカタログず料金ペヌゞを確認しおください。

たずめ

動画生成は「䜜成 → ポヌリング → ダりンロヌド」の非同期ゞョブです。課金は䜜成時の1回だけで1本あたりの定額、ポヌリングずダりンロヌドは無料。だからこそ job_id の保存ず、安易にリトラむしないこずが実装䞊いちばん倧事になりたす。

APIキヌを取埗しお、たず1本䜜っおみおください。

最新のAIモデルを今すぐ詊す

最新のAIモデルはFastMetalのAPIキヌ1぀で利甚できたす。ブラりザですぐに詊す、たたはOpenAI SDKからそのたた呌び出せたす。

チュヌトリアル

画像生成APIの䜿い方/v1/images/generations を叩く

画像生成はチャットずは別の゚ンドポむントです。リク゚ストの曞き方、b64_jsonでの受け取り方、usageが垞に0になる理由1枚あたりの定額課金たで、動くコヌド付きで解説したす。

プロダクトアップデヌト

動画生成に察応したしたAPI・チャット・MCP の3぀の経路から䜿えたす

テキストから短い動画を生成できるようになりたした。API、ブラりザのチャット、゚ヌゞェント向けの MCP の3経路に察応。料金は1本あたり定額です。

プロダクトアップデヌト

MCP サヌバヌを公開したしたClaude Code や Codex から FastMetal のモデルを呌べたす

FastMetal の MCP サヌバヌを公開したした。゚ヌゞェントのメむンモデルはそのたたに、別モデルぞの盞談・耇数モデルの䞀括比范・画像生成をツヌルずしお远加できたす。