Azimo
  1. 首页
  2. 开发者

开发者

开发者文档

所有 /v1 请求带 Authorization: Bearer <key>,用 X-Project-ID 选择项目。机器契约以 OpenAPI 为准。

Swagger UIReDocopenapi.json

快速开始

拿到 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 也会返回
}

CLI

命令行工具 azimo:登录、创建方案、提交制作、等待并下载成片。详见指南。

azimo login
azimo plan --type product --prompt "..." --asset ASSET_ID
azimo create --plan PLAN_ID
azimo wait VIDEO_ID && azimo download VIDEO_ID

MCP

把 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)。

反馈