> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Meta Muse 動画生成API：料金と最大60秒の生成

> /v1/videosでMetaのMuseから、音声付きの5〜60秒の動画を生成します。テキストから、先頭・末尾フレーム、参照画像、動画の延長まで、1本あたりの定額料金です。

Museは、Metaの動画生成モデルです。クリップにはBGMと効果音が付き、1回のリクエストで最長60秒の連続した動画を返せます。料金は1本あたり\$0.30〜\$1.55で、標準的なトークングループなら呼び出せます。

| 項目 | 内容 |
| - | - |
| モデルID | `muse-video`（5、8、10秒）、`muse-video-20s` から `muse-video-60s`（20〜60秒、10秒ごとに1モデル） |
| タスクの作成 | `POST /v1/videos`（JSONまたはmultipart） |
| タスクの取得 | `GET /v1/videos/{id}`。完了したら `video_url` を読み取る |
| ダウンロード | `video_url` を直接使うか、`GET /v1/videos/{id}/content` |
| トークングループ | `default`、`vip`、`svip`。課金方式は従量優先 |
| 料金 | 1本あたり\$0.30〜\$1.55。詳細は下の「料金」を参照 |
| 出力 | 24 fps、音声付き。16:9は1280×720。そのほかのサイズは下の「リクエストのフィールド」を参照 |
| 保存期間 | 動画のリンクは7日間利用できる |
| ルート | Metaの公式APIには、まだ動画生成モデルがありません。このルートは独自に統合したもので、料金も独自に設定しています |

![Museのテキストからの動画生成の例：夜明けの岩場の海岸に立つ灯台と、岩に砕ける波](https://mintcdn.com/laozhangai-edd05f2c/HNpi8TQdPfniogkz/images/samples/muse-video-en-t2v.jpg?fit=max\&auto=format\&n=HNpi8TQdPfniogkz\&q=85\&s=cbb313bc8cdeb5db903cd14e366f2d43)

下のテキストから動画を生成する例の出力：muse-video、10秒、16:9（プロンプトは出力例に対応するため英語のままです）

## トークンの作成

[トークン管理](https://api.laozhang.ai/token)で、次の設定でトークンを追加します。

| 設定 | 選択 |
| - | - |
| グループ | `default`、`vip`、`svip`。3つとも料金は同じ |
| 課金方式 | 従量優先（推奨。コンソールの表示は「按量优先」）または回数課金（「按次计费」）。従量課金のみ（「按量计费」）のトークンでは呼び出せない |
| ヒント | 動画専用のトークンを作ると、使用ログで課金とタスクを照合しやすい |

Metaのアカウントも、動画専用のグループも必要ありません。

## 料金

Museの動画は、1本ごとの課金です。モデル内で選ぶ長さ、アスペクト比、画像を送るかどうかで料金は変わりません。

| モデル | クリップの長さ | 1本あたり |
| - | - | -: |
| `muse-video` | 5、8、10秒 | \$0.30 |
| `muse-video-20s` | 20秒。延長した動画は元の動画を含めて合計20秒 | \$0.55 |
| `muse-video-30s` | 30秒。延長した動画は元の動画を含めて合計30秒 | \$0.80 |
| `muse-video-40s` | 40秒。延長した動画は元の動画を含めて合計40秒 | \$1.05 |
| `muse-video-50s` | 50秒。延長した動画は元の動画を含めて合計50秒 | \$1.30 |
| `muse-video-60s` | 60秒。延長した動画は元の動画を含めて合計60秒 | \$1.55 |

課金のルールです。

* タスクの作成時に課金され、失敗したタスクは全額返金されます。
* パラメーターエラーで送信時に拒否されたリクエストは、課金されません。
* 再送するたびに新しいタスクが作成され、再び課金されます。自社のジョブIDとタスクの `id` の対応を保存してください。

実際の課金額は、タスクごとに[使用ログ](https://api.laozhang.ai/log)で確認できます。

## 動画モデルの選び方

2026年10月31日時点で、720p以上の10秒クリップでは、MuseがLaoZhang APIで最も低価格です。動画1本あたりの定額料金、20〜60秒の連続した1本のクリップ、既存動画の延長が必要なときに使ってください。

2K、参照動画、参照音声が必要なときは、[MiniMax H3](https://docs.laozhang.ai/ja/api-capabilities/minimax-h3-video-generation.md)を使います。1080pにはSeedanceかWanを使ってください。各モデルで5秒・10秒のクリップがいくらか、どのエンドポイントを使うかは、[動画APIの比較](https://docs.laozhang.ai/ja/api-capabilities/video-generation-guide.md)にまとめています。

## 出力例

次のクリップは、編集していないMuseの出力で、モデルが生成した音声がそのまま付いています。クリックすると再生されます。キャプションには、モデル、長さ、アスペクト比、プロンプトを載せています。

[MiniMax H3の出力例](https://docs.laozhang.ai/ja/api-capabilities/minimax-h3-video-generation.md)は同じプロンプトを使っているため、2つのモデルをシーンごとに比較できます。プロンプトは出力と対応させるため、英語のままです。

<video controls preload="none" poster="/images/samples/muse-video-sample-fox-5s.jpg" src="https://media.laozhang.ai/samples/video/muse-fox-5s.mp4" />

muse-video、5秒、16:9。プロンプト：A red fox walking through snowy forest at sunrise, cinematic

<video controls preload="none" poster="/images/samples/muse-video-sample-fox-extend-20s.jpg" src="https://media.laozhang.ai/samples/video/muse-fox-extend-20s.mp4" />

muse-video-20sで、前の5秒のクリップを20秒に延長。プロンプト：The fox reaches a frozen river and looks across it as the sun rises higher

<video controls preload="none" poster="/images/samples/muse-video-sample-paper-boat-20s.jpg" src="https://media.laozhang.ai/samples/video/muse-paper-boat-20s.mp4" />

muse-video-20s、20秒、16:9。プロンプト：A paper boat drifts down a rainy city gutter, then sails into a small sunny pond

<video controls preload="none" poster="/images/samples/muse-video-sample-paper-boat-extend-40s.jpg" src="https://media.laozhang.ai/samples/video/muse-paper-boat-extend-40s.mp4" />

muse-video-40sで、前の20秒のクリップを40秒に延長。プロンプト：The paper boat sails across the pond, passes under a wooden bridge and reaches a garden fountain

<video controls preload="none" poster="/images/samples/muse-video-sample-hot-air-balloon-40s.jpg" src="https://media.laozhang.ai/samples/video/muse-hot-air-balloon-40s.mp4" />

muse-video-40s、40秒、16:9。プロンプト：A hot air balloon rises over a valley at dawn, drifts over a river and a village, then lands in a meadow

<video controls preload="none" poster="/images/samples/muse-video-sample-cyclist-50s-9x16.jpg" src="https://media.laozhang.ai/samples/video/muse-cyclist-50s-9x16.mp4" />

muse-video-50s、50秒、9:16の縦向き。プロンプト：A cyclist rides through a coastal town from morning to sunset: market, harbor, cliff road, lighthouse

## 仕組み

**1. タスクを作成する**

`model` と `prompt` を指定して、`POST /v1/videos` を呼びます。このエンドポイントは非同期で、動画の完成を待たずに、数秒でタスクの ID を返します。この ID を保存してください。

**2. 状態をポーリングする**

15秒おきに `GET /v1/videos/{id}` を呼び、`status` を読み取ります。どの呼び出しもすぐに返ります。10秒までのクリップは通常2〜3分で完了し、混雑時は5分以上かかることがあります。20〜30秒のクリップは約4〜10分、40〜60秒のクリップは約5〜10分かかります。

**3. 結果をダウンロードする**

`status` が `completed` になったら、`video_url` からMP4をダウンロードします。ダウンロードに `Authorization` ヘッダーは不要で、リンクは7日間有効です。

> [!WARNING]
>
> **最大30分間ポーリングを続け、タスクの実行中は再送しないでください。**
>
> * 送信とポーリングのどちらもすぐに返るため、HTTPのタイムアウトを長くする必要はありません。
> * ポーリングの上限は30分です。`status` が `queued` か `in_progress` の間は確認を続けます。
> * ポーリングをやめた場合は、あとで同じ `id` を確認してください。再送すると新しいタスクが作成され、再び課金されます。
> * 40分たっても完了していないタスクは、失敗として扱われ、全額返金されます。

## 準備

cURLの例では、レスポンスのフィールドを読み取るために `jq` を使います（macOSでは `brew install jq`）。先にキーとベースURLを設定します。

```bash theme={null}
export LAOZHANG_API_KEY="LaoZhang APIのキー"
export BASE_URL="https://api.laozhang.ai"
```

## テキストから動画を生成する

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "muse-video",
    "prompt": "A lighthouse on a rocky coast at dawn, waves crashing on the rocks, a few seagulls flying past, slow push-in, cinematic lighting",
    "seconds": "10",
    "aspect_ratio": "16:9"
  }' | tee muse-create.json

export VIDEO_ID=$(jq -r '.id' muse-create.json)
```

リクエストが成功すると、待機中のタスクが返ります。

```json theme={null}
{
  "id": "task_qyP7fa67hjtpArfMjnAnOwpVe1UEgyHh",
  "object": "video",
  "model": "muse-video",
  "status": "queued",
  "progress": 0,
  "seconds": "10",
  "created_at": 1793328222
}
```

よく使う任意フィールドは2つです。

* `seconds`：省略すると、`muse-video` は10秒のクリップを作ります。
* `aspect_ratio`：クリップの形。代わりに、`720x1280` のようなピクセル指定の `size` も送れます。先頭フレームや参照画像を送るときにも適用されます。詳しくは下の「画像を使うときのアスペクト比」を参照してください。

## 先頭フレーム、または先頭と末尾のフレームから動かす

`image` で最初のショットを指定し、`last_frame` を加えると最後のショットも指定できます。画像は、公開URLまたは `data:image/...;base64,` のデータURLで渡します。

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "muse-video",
    "prompt": "雪が解け、木の葉が金色に変わって、冬が秋へと移り変わる",
    "seconds": "8",
    "image": "https://example.com/winter.jpg",
    "last_frame": "https://example.com/autumn.jpg"
  }'
```

モデルは2枚の画像を視覚的な参照として使います。クリップは同じ構図で始まり、同じ構図で終わりますが、細部がピクセル単位で再現されるわけではありません。

ローカルのファイルをアップロードするには、multipartフォームデータで送ります。先頭フレームは `input_reference`、末尾フレームは `last_frame` に入れます。

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -F model=muse-video \
  -F prompt="子猫がまばたきをして、あくびをする" \
  -F seconds=5 \
  -F aspect_ratio=9:16 \
  -F input_reference=@./cat.jpg
```

`-F` でアップロードするときは、`Content-Type: application/json` を設定しないでください。画像は1枚あたり10 MBまでです。

## 参照画像から生成する

`reference_images` に、1〜4枚の画像を指定します。モデルは、画像の被写体とスタイルを動画に反映しますが、どの画像も先頭フレームとしては使いません。

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "muse-video",
    "prompt": "このキツネは、冬から秋へと移り変わる森の中を歩いていく",
    "seconds": "10",
    "aspect_ratio": "16:9",
    "reference_images": [
      "https://example.com/fox-winter.jpg",
      "https://example.com/fox-autumn.jpg"
    ]
  }'
```

### 画像を使うときのアスペクト比

先頭フレーム、末尾フレーム、参照画像を送るときは、クリップの形が次のように決まります。

* **`aspect_ratio`（または `size`）を指定した場合：** 生成の前に、各画像がその比率で中央トリミングされ、クリップもその形で出力されます。サイズは「リクエストのフィールド」にまとめています。
* **指定しない場合：** クリップは画像そのままの形になります。たとえば3:2の横向き写真なら、1152×768です。

中央トリミングでは、画像の左右または上下が切り取られます。被写体が端に寄っている場合は、アップロードの前に目的の比率へ自分でトリミングして、構図を管理してください。

## 20秒・30秒から最大60秒のクリップを作る、または動画を延長する

長いモデルは、いずれもモデル名のとおりの長さで、1本の連続したクリップを生成します（20〜60秒。料金は「料金」を参照）。呼び出し方は `muse-video` と同じで、`seconds` は省略できます。

既存のクリップから続きを作るには、`video_url` を渡します。

```bash theme={null}
curl -s -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "model": "muse-video-20s",
    "prompt": "ボートは朝霧の中へ流れていき、海の上に太陽が昇る",
    "video_url": "https://example.com/boat-5s.mp4"
  }'
```

延長のルールです。

* `muse-video` 以外のモデルは、すべて `video_url` を受け付けます。完成した動画の長さは、元のクリップを含めてモデル名のとおりです。
* 元の動画は、公開されていてダウンロードできるhttpsのMP4リンクで、完成する動画より2秒以上短くする必要があります。上限は、`muse-video-20s` が18秒、`muse-video-30s` が28秒で、以降同様に `muse-video-60s` の58秒までです。
* 元のファイルが約19 MBを超える場合、LaoZhang APIはまず720pに圧縮します。そのため、結果のうち元の動画の部分はやや鮮明さが落ちます。
* たとえば、5秒の元動画を `muse-video-20s` で延長すると、約15秒が追加されて、20秒の動画になります。
* LaoZhang APIが返した `video_url` も、元の動画として使えます。

## ポーリングとダウンロード

### タスクを取得する

```bash theme={null}
curl -s "$BASE_URL/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY"
```

動画のレンダリング中は、`status` が `in_progress` になり、`progress` におおよその進捗が百分率で入ります。

```json theme={null}
{
  "id": "task_1OuWjS9JUWpjiin8zr3S3vzhQNjTILIF",
  "object": "video",
  "model": "muse-video",
  "status": "in_progress",
  "progress": 30,
  "seconds": "10",
  "size": "1280x720",
  "created_at": 1793328220
}
```

完了すると、タスクに `video_url` が入ります。

```json theme={null}
{
  "id": "task_Qb8zDoLJMSDsOKdRWLMCwzRgkg2EanF0",
  "object": "video",
  "model": "muse-video",
  "status": "completed",
  "progress": 100,
  "seconds": "5",
  "size": "1280x720",
  "created_at": 1793325393,
  "completed_at": 1793325521,
  "video_url": "https://media.laozhang.ai/videos/video_6efb7e6d2b37665752192eb1-a95d03b30c0f.mp4"
}
```

失敗したタスクは `status: "failed"` になり、理由が `error.message` に入ります。課金はすでに返金されています。

```json theme={null}
{
  "id": "task_GcyZA3g7We2nQOl3QaSQX1nroSKli3O7",
  "object": "video",
  "model": "muse-video",
  "status": "failed",
  "progress": 100,
  "seconds": "8",
  "size": "1280x720",
  "created_at": 1793326360,
  "error": {
    "code": "video_generation_failed",
    "message": "Could not download last_frame (HTTP 429). Use a public image link or a data URL."
  }
}
```

### 動画をダウンロードする

```bash theme={null}
curl -L -o muse-video.mp4 "$(curl -s "$BASE_URL/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" | jq -r '.video_url')"
```

`Authorization` ヘッダーを付けて `GET /v1/videos/{id}/content` を呼ぶと、MP4ファイルが返ります。

## 最小のPythonクライアント

`requests` が必要です（`pip install requests`）。

```python theme={null}
import os
import time

import requests

BASE_URL = "https://api.laozhang.ai"
HEADERS = {"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"}

task = requests.post(
    f"{BASE_URL}/v1/videos",
    headers=HEADERS,
    json={
        "model": "muse-video",
        "prompt": "A lighthouse on a rocky coast at dawn, waves crashing on the rocks, a few seagulls flying past, slow push-in, cinematic lighting",
        "seconds": "10",
        "aspect_ratio": "16:9",
    },
    timeout=120,
)
task.raise_for_status()
video_id = task.json()["id"]

deadline = time.time() + 30 * 60
while True:
    video = requests.get(f"{BASE_URL}/v1/videos/{video_id}", headers=HEADERS, timeout=60).json()
    if video["status"] == "completed":
        break
    if video["status"] == "failed":
        raise RuntimeError(video["error"]["message"])
    if time.time() > deadline:
        raise TimeoutError(f"{video_id} はまだ実行中です。あとで同じidのポーリングを続けてください")
    time.sleep(15)

with open("muse-video.mp4", "wb") as f:
    f.write(requests.get(video["video_url"], timeout=300).content)
print("保存しました: muse-video.mp4、", video["seconds"], "秒")
```

## APIリファレンス

### リクエストのフィールド

| フィールド | 必須 | 説明 |
| - | - | - |
| `model` | 必須 | `muse-video`、`muse-video-20s`、`muse-video-30s`、`muse-video-40s`、`muse-video-50s`、`muse-video-60s` のいずれか |
| `prompt` | 必須 | 画面で何が起きるか、どんな音が聞こえるか。最大20,000文字で、全文が使われる |
| `seconds` | 任意 | `muse-video` は `5`、`8`、`10`（既定値は10）。長いモデルは、モデル名の長さか、省略 |
| `aspect_ratio` | 任意 | `16:9`、`9:16`、`1:1`、`4:3`、`3:4`。画像がある場合は、先にこの比率で中央トリミングされる。指定しないと、クリップは画像の形のままになる |
| `size` | 任意 | ピクセルで指定する形。`1280x720` や下の表にある出力サイズなど。`aspect_ratio` の代わりに使う |
| `image` | 任意 | 先頭フレーム。multipartのフィールド名は `input_reference` |
| `last_frame` | 任意 | 末尾フレーム |
| `reference_images` | 任意 | 最大4枚の参照画像の配列 |
| `video_url` | 任意 | 延長する元のクリップ。20〜60秒のモデルのみ |
| `negative_prompt` | 任意 | 動画に入れたくないもの |
| `style`、`camera_motion` | 任意 | `cinematic` や `zoom_in` などのスタイル・カメラのヒント。指針として使われる |

アスペクト比ごとの出力サイズです。

| `aspect_ratio` | 出力サイズ |
| - | - |
| `16:9` | 1280×720 |
| `9:16` | 720×1280 |
| `1:1` | 960×960 |
| `4:3` | 1088×816 |
| `3:4` | 816×1088 |

画像を使う場合は、同じ比率でも、この表より数十ピクセルほど異なるサイズになることがあります。たとえば16:9で1248×704、4:3で1056×800などです。フレームレートは常に24 fpsで、`resolution` や `fps` を指定しても出力は変わりません。

### タスクの状態

| `status` | 意味 | 次の対応 |
| - | - | - |
| `queued` | 作成済みで、レンダリング待ち | ポーリングを続ける |
| `in_progress` | レンダリング中 | ポーリングを続ける |
| `completed` | 完了 | `video_url` からダウンロードする |
| `failed` | 失敗し、返金済み | `error.message` に従ってリクエストを修正し、新しいタスクを作成する |

## エラー

| エラー | 原因 | 対処 |
| - | - | - |
| `seconds must be 5, 8, 10 for muse-video.` | このモデルにない長さを指定した | 5、8、10のいずれかにするか、20s〜60sのモデルに切り替える |
| `video_url (continue a video) needs muse-video-20s, -30s, -40s, -50s or -60s.` | 延長のリクエストを `muse-video` に送った | `muse-video-20s` から `muse-video-60s` のいずれかを使う |
| `Send at most 4 reference_images.` | 参照画像が5枚以上ある | 4枚以下にする |
| `Could not download image (HTTP 403)…` | 画像のリンクにログインが必要、ダウンロードがブロックされている、またはレート制限されている | 誰でもダウンロードできるリンクを使うか、データURLで送る |
| `image must be a public internet link.` | 画像のリンクがプライベート、ローカル、または名前解決できないアドレスを指している | 誰でもダウンロードできるリンクを使うか、データURLで送る |
| `video_url can be at most 18 seconds long…` | 元の動画がモデルの許容より長い（結果より2秒短い長さまで。20sなら18秒） | 元の動画を短くするか、より長いモデルを使う |
| `The model returned no video for this input…` | この入力ではモデルが動画を生成しなかった | プロンプトを調整するか、別の画像を使って、新しいタスクを作成する |
| `prompt must be at most 20000 characters.…` | プロンプトが20,000文字を超えている | 20,000文字以下に短縮する |

最初の3つは、送信時にHTTP 400として返り、タスクは作成されず課金もされません。残りは失敗したタスクとして届き、返金済みです。

## よくある質問

### 5秒と10秒の料金は同じですか？

はい。`muse-video` は、5、8、10秒のいずれも\$0.30です。さらに長い連続ショットには、`muse-video-20s`（\$0.55）、`muse-video-30s`（\$0.80）から、`muse-video-60s`（\$1.55）までを使います。

### 1080pの動画は作れますか？

いいえ。Museの出力は、横向きが1280×720、縦向きが720×1280です。そのほかの形は「リクエストのフィールド」にあります。`resolution: "1080p"` を送ってもエラーにはなりませんが、出力サイズは変わりません。

### クリップが画像と同じ形になるのはなぜ？

`aspect_ratio` も `size` も指定しないと、Museは送った画像の形を維持します。`aspect_ratio` を加えると、画像が先にその比率で中央トリミングされ、希望の形のクリップが出力されます。被写体が画像の端に寄っているときは、アップロードの前に自分でトリミングしてください。詳しくは「画像を使うときのアスペクト比」を参照してください。

### 動画に音声は付きますか？ オフにできますか？

どのクリップにも音声が付き、BGMと効果音はプロンプトに沿って作られます。オフにするオプションはありません。音声が不要なときは、ダウンロードしたあとで音声トラックを取り除いてください。

### タイムアウト後に再送してよいですか？

先にタスクを確認してください。クライアント側のタイムアウトは、タスクの失敗を意味しません。同じ `id` のポーリングを続けてください。再送すると新しいタスクが作成され、再び課金されます。

`status` が `failed` のときだけ、リクエストを修正して新しいタスクを作成します。失敗したタスクはすでに返金されており、40分たっても完了していないタスクは、自動的に失敗として扱われて返金されます。

### 動画のリンクはいつまで保存されますか？

7日間です。その後はリンクの有効期限が切れ、タスクを再ダウンロードできなくなります。タスクが完了したらすぐにファイルを保存してください。

## 関連ドキュメント

* [動画APIの比較と料金](https://docs.laozhang.ai/ja/api-capabilities/video-generation-guide.md)
* [MiniMax H3動画API](https://docs.laozhang.ai/ja/api-capabilities/minimax-h3-video-generation.md)
* [Seedance 2.0動画API](https://docs.laozhang.ai/ja/api-capabilities/seedance2-video-generation.md)
* [Wan 2.7・Wan 3.0動画API](https://docs.laozhang.ai/ja/api-capabilities/wan-video-generation.md)
* [モデルと料金](https://docs.laozhang.ai/ja/models.md)
* [使用ログ](https://docs.laozhang.ai/en/faq/call-logs.md)
* [Meta Model APIのモデル](https://dev.meta.ai/resources/blog/build-with-muse-spark)：Muse Spark、Muse Imageなど。動画生成モデルはありません（2026年10月30日確認）


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.