cURL
curl https://api.apipod.ai/v1/videos/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}'import os
import requests
payload = {
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": True
}
response = requests.post(
"https://api.apipod.ai/v1/videos/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
});
let response = Client::new()
.post("https://api.apipod.ai/v1/videos/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}MU Video
Muse Video 文生视频
Muse Video 文生视频仅需提示词即可生成 5-60 秒的 720P 视频,支持五种画幅、七档风格预设,并原生生成人声与音效。
POST
https://api.apipod.ai
/
v1
/
videos
/
generations
cURL
curl https://api.apipod.ai/v1/videos/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}'import os
import requests
payload = {
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": True
}
response = requests.post(
"https://api.apipod.ai/v1/videos/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
});
let response = Client::new()
.post("https://api.apipod.ai/v1/videos/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "muse-video-t2v",
"prompt": "A corgi surfing at sunset, cinematic, slow motion",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic",
"generate_audio": true
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}muse-video-t2v 把一段文字变成完整成片。不需要准备任何素材——你描述镜头,Muse Video 负责运动、光线与风格,同时生成与画面同步的人声和音效。
模型速览
| 公开模型 ID | muse-video-t2v |
| 输入 | 文本 |
| 输出 | 带音频的视频 |
| 时长 | 5 / 10 / 20 / 30 / 40 / 50 / 60 秒(默认 5) |
| 清晰度 | 720p |
| 画幅 | 16:9、9:16、1:1、4:3、3:4(默认 16:9) |
| 计费 | 按输出秒数 |
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
prompt | string | — | 必填,最多 4000 个字符。 |
duration | integer | 5 | 只能是 5、10、20、30、40、50、60。 |
aspect_ratio | string | 16:9 | 可选 16:9、9:16、1:1、4:3、3:4。 |
resolution | string | 720p | 目前仅支持 720p。 |
style_preset | string | none | 见下方风格预设。 |
generate_audio | boolean | true | 设为 false 可静音人声。 |
negative_prompt、seed 与参考素材——需要用图片引导画面时请用 muse-video-i2v 或 muse-video-r2v。
风格预设
| 取值 | 画面风格 |
|---|---|
none | 交给提示词决定。 |
cinematic_realistic | 真人电影感,自然光与浅景深。 |
2d_anime | 手绘动画,平涂上色与硬朗线条。 |
3d_xianxia | 3D 国漫仙侠,飘动衣袂、云雾山峰、流光灵气。 |
american_comic | 美漫风格,重墨线与网点质感。 |
cyberpunk_neon | 雨夜街道、霓虹招牌、高反差。 |
ecommerce_ugc | 明亮干净、手机实拍感的产品演示构图。 |
提示词写法
Muse Video 对镜头语言的理解很直接。写清镜头、光线和一两个材质,比堆砌形容词可控得多。海边日落,一只柯基冲浪,低角度跟拍,逆光水花,
浅景深,暖色高光,电影感慢镜头
调用流程
- 带上述参数调用
POST /v1/videos/generations。 - 从响应里取
data.task_id。 - 每隔几秒轮询
GET /v1/videos/status/{task_id},直到status为completed。 - 从
data.result下载成片。
curl https://api.apipod.ai/v1/videos/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "muse-video-t2v",
"prompt": "海边日落,一只柯基冲浪,低角度跟拍,逆光水花,电影感慢镜头",
"duration": 10,
"aspect_ratio": "16:9",
"style_preset": "cinematic_realistic"
}'
费用
按输出秒计费:时长 × 每秒单价。文生视频没有参考素材,费用完全由你传入的 duration 决定,批量提交前可以用 POST /v1/pricing/estimate 先估价。授权
使用 APIPod API Key 作为 Bearer token 放在 Authorization 请求头。
请求体
application/json
APIPod 公开模型 ID。
Allowed value:
"muse-video-t2v"视频内容描述,必填,最多 4000 个字符。
Required string length:
1 - 4000视频时长(秒)。
可用选项:
5, 10, 20, 30, 40, 50, 60 生成视频的画幅比例。
可用选项:
16:9, 9:16, 1:1, 4:3, 3:4 输出清晰度。MU Video 目前仅支持 720p。
可用选项:
720p 视频风格预设。
可用选项:
none, cinematic_realistic, 2d_anime, 3d_xianxia, american_comic, cyberpunk_neon, ecommerce_ugc 是否生成人声与音效。设为 false 即静音人声。
此页面对您有帮助吗?