拿到 Key
登录后在个人中心创建 API Key;运维也可用 vidgen-admin 或 POST /admin/api-keys 创建组织与 owner Key,再用 POST /v1/api-keys 按项目与角色(owner / editor / viewer)分发。原始 Key 只在创建或轮换时显示一次。
登录后在个人中心创建 API Key;运维也可用 vidgen-admin 或 POST /admin/api-keys 创建组织与 owner Key,再用 POST /v1/api-keys 按项目与角色(owner / editor / viewer)分发。原始 Key 只在创建或轮换时显示一次。
POST /v1/assets(multipart file),返回素材 ID;外部 URL 内容会变,冻结方案前先上传文件。
POST /v1/plans 带 Idempotency-Key;方案状态 ready 才能制作,needs_input 说明缺什么。
POST /v1/videos 引用 plan_id,返回 202 与任务 ID。
GET /v1/videos/{id} 直到 complete / rejected / failed / needs_input;或 POST /v1/webhooks 登记带签名的项目级回调,按事件 id 去重。
# 1. 上传素材(PDF / PPTX / TXT / MD / PNG / JPG,≤60MB)
curl -X POST "$AZIMO_URL/v1/assets" -H "Authorization: Bearer $AZIMO_KEY" -F file=@product.pdf
# 2. 创建制作方案:拿到路由结果、规格与素材,尚未开始制作
curl -X POST "$AZIMO_URL/v1/plans" -H "Authorization: Bearer $AZIMO_KEY" \
-H "Idempotency-Key: launch-plan-001" -H "Content-Type: application/json" \
-d '{"prompt":"用三十秒向仓库负责人讲清库存平台如何减少缺货",
"assets":["<asset id>"],"options":{"workflow":"auto","duration_max":30}}'
# 3. 确认方案并制作 → 202 Accepted
curl -X POST "$AZIMO_URL/v1/videos" -H "Authorization: Bearer $AZIMO_KEY" \
-H "Idempotency-Key: launch-video-001" -H "Content-Type: application/json" \
-d '{"plan_id":"<plan id>"}'
# 4. 轮询阶段、进度、QA 报告与签名下载链接(或配置项目级 Webhook)
curl "$AZIMO_URL/v1/videos/<video id>" -H "Authorization: Bearer $AZIMO_KEY"
import os
from vidgen.client import Vidgen
with Vidgen(os.environ["AZIMO_URL"], os.environ["AZIMO_KEY"]) as api:
asset = api.upload("product.pdf") # POST /v1/assets
plan = api.plan({ # POST /v1/plans
"prompt": "用三十秒向仓库负责人讲清库存平台如何减少缺货",
"assets": [asset["id"]],
"options": {"workflow": "auto", "duration_max": 30},
}, idempotency_key="launch-plan-001")
if plan["data"]["status"] != "ready":
print(plan["data"]) # needs_input / unavailable:先补材料
else:
job = api.create(plan_id=plan["id"], idempotency_key="launch-video-001") # POST /v1/videos
result = api.wait(job["id"]) # GET /v1/videos/{id} 直到终态
print(result) # needs_input 也会返回;不能把它当成 complete
import {readFile} from "node:fs/promises";
import {Vidgen} from "@vidgen/sdk"; // 仓库内 sdk/typescript/index.ts,零依赖
const api = new Vidgen(process.env.AZIMO_URL!, process.env.AZIMO_KEY!);
const asset = await api.upload(new Blob([await readFile("product.pdf")]), "product.pdf"); // POST /v1/assets
const plan = await api.plan({ // POST /v1/plans
prompt: "用三十秒向仓库负责人讲清库存平台如何减少缺货",
assets: [asset.id],
options: {workflow: "auto", duration_max: 30},
}, "launch-plan-001");
if (plan.data.status !== "ready") {
console.log(plan.data);
} else {
const job = await api.create({plan_id: plan.id}, "launch-video-001"); // POST /v1/videos → 202
const result = await api.wait(job.id); // GET /v1/videos/{id}
console.log(result.status, result.result?.files); // needs_input 也会返回
}
命令行工具 azimo:登录、创建方案、提交制作、等待并下载成片。详见指南。
azimo login
azimo plan --type product --prompt "..." --asset ASSET_ID
azimo create --plan PLAN_ID
azimo wait VIDEO_ID && azimo download VIDEO_ID
把 Azimo 接入 Claude、Cursor 等支持 MCP 的客户端:本地 stdio 或远程 HTTP。详见指南。
claude mcp add azimo -- azimo mcp
claude mcp add --transport http azimo https://azimo.ai/mcp --header "Authorization: Bearer $AZIMO_API_KEY"
SDK:Python vidgen/client.py(仅依赖 requests),TypeScript sdk/typescript/index.ts(零依赖,fetch)。