📖 概览
AIOM 智能体API让任何AI Agent(Coze、Dify、自定义Agent等)能够调用AIOM平台的完整视频创作能力。
所有API统一通过 php/agent_api.php 入口,支持 RESTful 风格调用。
基础信息
| 项目 | 值 |
| API基础URL | https://www.aiom.com.cn/php/agent_api.php |
| 认证方式 | Authorization: Bearer <token> 或 X-API-Key: ak_xxx |
| 请求格式 | JSON |
| 响应格式 | JSON |
🔐 认证方式
智能体API支持两种认证方式:
方式一:商户登录Token(推荐)
智能体先用商户账号密码登录,获取 Bearer token,之后所有请求携带此token。
POST /php/login.php
Content-Type: application/json
{"identifier": "13800138000", "password": "123456"}
Authorization: Bearer <返回的token>
方式二:API Key
适合长期运行的无交互智能体,需在后台创建API Key。
X-API-Key: ak_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
💡 建议:用方式一获取登录token即可调用所有API,无需额外申请API Key。
🔄 完整工作流
典型的智能体调用流程如下:
1️⃣ 登录
获取token
→
2️⃣ 文案
自行生成
→
3️⃣ 查音色
GET /voices
→
4️⃣ 语音合成
POST /tts
→
5️⃣ 对口型
POST /lip-sync
→
6️⃣ 动态效果
POST /effects
也可一步到位使用 完整工作流 接口,自动完成所有步骤。
1️⃣ 智能体登录 POST
智能体使用商户账号密码登录,获取后续API调用所需的token。
POST
/php/login.php
请求参数
| 参数 | 类型 | 必填 | 说明 |
identifier | string | 是 | 手机号或邮箱 |
password | string | 是 | 登录密码 |
请求示例
curl -X POST "https://www.aiom.com.cn/php/login.php" \
-H "Content-Type: application/json" \
-d '{"identifier": "13800138000", "password": "123456"}'
import requests
url = "https://www.aiom.com.cn/php/login.php"
resp = requests.post(url, json={"identifier": "13800138000", "password": "123456"})
result = resp.json()
token = result["data"]["token"]
const resp = await fetch("https://www.aiom.com.cn/php/login.php", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ identifier: "13800138000", password: "123456" })
});
const result = await resp.json();
const token = result.data.token;
响应示例
{
"code": 200,
"message": "登录成功",
"data": {
"token": "a1b2c3d4e5f6...",
"userId": 1,
"phone": "13800138000",
"shopName": "我的店铺",
"industry": "餐饮",
"tags": "火锅"
}
}
2️⃣ 文案说明
AIOM平台不提供API文案生成,智能体应自行调用大模型(如Coze、OpenAI等)为商户生成营销文案。
平台自带「人工操作台」可手动编辑和管理文案,也提供抖音文案提取功能(见下方)。
💡 建议:智能体使用自己的大模型能力生成文案,更灵活可控。平台只负责语音合成 → 对口型 → 视频处理。
🎯 抖音文案提取(免费)
支持通过抖音分享链接提取视频中的文案内容,2分钟以内视频免费使用。
POST
/php/agent_api.php(WebSocket)
请求参数
| 参数 | 类型 | 必填 | 说明 |
dy_url | string | 是 | 抖音视频分享链接 |
content | string | 否 | 补充说明(可选) |
使用方式
在网站「对口型工作台」中粘贴抖音链接,点击「提取文案」即可自动获取视频文案内容。
3️⃣ 获取音色ID列表 GET
查询当前商户已克隆的声音列表,获取 voice_id 用于后续语音合成。
GET
/php/agent_api.php/voices
请求头
Authorization: Bearer <token>
请求示例
curl -X GET "https://www.aiom.com.cn/php/agent_api.php/voices" \
-H "Authorization: Bearer <token>"
响应示例
{
"success": true,
"data": {
"voices": [
{
"id": 1,
"voice_id": "v_abc123",
"api_type": "chuangke",
"created_at": "2026-05-01 12:00:00"
}
],
"total": 1
},
"timestamp": "2026-05-15 10:30:00"
}
💡 说明:voice_id 即音色ID,商户在网站上完成声音克隆后自动生成。
如果没有音色记录,需先在网站上克隆声音。
4️⃣ 语音合成(TTS) POST
用文案 + 音色ID 合成音频。异步任务,创建后需轮询查询状态。
POST
/php/agent_api.php/tts
请求头
Authorization: Bearer <token>
Content-Type: application/json
请求参数
| 参数 | 类型 | 必填 | 说明 |
voice_id | string | 是 | 音色ID,从 /voices 接口获取 |
text | string | 是 | 要合成的文案内容 |
speed | float | 否 | 语速,0.5~2.0,默认1.0 |
pitch | float | 否 | 音调,0.5~2.0,默认1.0 |
请求示例
curl -X POST "https://www.aiom.com.cn/php/agent_api.php/tts" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"voice_id": "v_abc123", "text": "欢迎光临我们的店铺...", "speed": 1.0, "pitch": 1.0}'
响应示例
{
"success": true,
"data": {
"task_id": "20260515103000_xxx",
"status": "processing",
"message": "TTS task created, use GET /tts/status?task_id=... to poll"
},
"timestamp": "2026-05-15 10:30:00"
}
5️⃣ 查询语音合成状态 GET
轮询查询TTS任务是否完成,完成后获取音频URL。
GET
/php/agent_api.php/tts/status?task_id=xxx
curl -X GET "https://www.aiom.com.cn/php/agent_api.php/tts/status?task_id=20260515103000_xxx" \
-H "Authorization: Bearer <token>"
响应示例 (处理中)
{
"success": true,
"data": {
"task_id": "20260515103000_xxx",
"status": "processing",
"status_code": 0,
"audio_url": ""
}
}
响应示例 (完成)
{
"success": true,
"data": {
"task_id": "20260515103000_xxx",
"status": "completed",
"status_code": 1,
"audio_url": "https://oss.aliyuncs.com/voice_synthesis/xxx.mp3"
}
}
⏱ 轮询建议:每 3~5 秒查询一次,直到 status 变为 "completed" 或 "failed"。通常 10~30 秒完成。
6️⃣ 对口型 POST
音频 + 真人视频 → 对口型视频。异步任务,创建后轮询查询状态。
POST
/php/agent_api.php/lip-sync
请求参数
| 参数 | 类型 | 必填 | 说明 |
audio_url | string | 是 | TTS合成的音频URL |
video_id | int | 二选一 | 商户已有的视频素材ID |
video_url | string | 二选一 | 直接传入视频URL |
high_quality | bool | 否 | 高清模式,默认true |
请求示例
curl -X POST "https://www.aiom.com.cn/php/agent_api.php/lip-sync" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"audio_url": "https://.../audio.mp3", "video_id": 123, "high_quality": true}'
响应示例
{
"success": true,
"data": {
"synthesis_id": 456,
"task_id": "lip_xxx",
"status": "processing",
"message": "Lip-sync task created"
},
"timestamp": "2026-05-15 10:30:00"
}
7️⃣ 查询对口型状态 GET
GET
/php/agent_api.php/lip-sync/status?task_id=xxx
curl -X GET "https://www.aiom.com.cn/php/agent_api.php/lip-sync/status?task_id=lip_xxx" \
-H "Authorization: Bearer <token>"
响应示例 (完成)
{
"success": true,
"data": {
"synthesis_id": 456,
"task_id": "lip_xxx",
"status": "completed",
"video_url": "https://oss.aliyuncs.com/video_synthesis/xxx.mp4",
"error_message": "",
"created_at": "2026-05-15 10:30:00",
"updated_at": "2026-05-15 10:35:00"
}
}
⏱ 轮询建议:对口型通常需要 1~5 分钟,每 10 秒查询一次。
9️⃣ 完整工作流 POST
智能体提供文案内容,一键完成语音合成 → 对口型 → 视频处理的完整流程。
文案由智能体自行生成(建议使用大模型能力),平台负责后续视频制作。
POST
/php/agent_api.php/full-workflow
请求参数
| 参数 | 类型 | 必填 | 说明 |
text | string | 是 | 文案内容(智能体自行提供) |
voice_id | string | 否 | 音色ID,不填自动使用第一个 |
video_id | int | 否 | 视频素材ID |
video_url | string | 否 | 直接传视频URL |
speed | float | 否 | 语速,默认1.0 |
pitch | float | 否 | 音调,默认1.0 |
high_quality | bool | 否 | 高清模式,默认true |
bgm_url | string | 否 | 背景音乐URL |
请求示例
curl -X POST "https://www.aiom.com.cn/php/agent_api.php/full-workflow" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"text": "欢迎光临我们的火锅店...", "video_id": 123, "voice_id": "xxx"}'
响应示例
{
"success": true,
"data": {
"task_id": "wf_20260515_xxx",
"status": "pending",
"tts_task_id": "20260515103000_xxx",
"video_url": "https://.../video.mp4",
"steps": [
{ "step": 1, "name": "tts", "status": "processing" },
{ "step": 2, "name": "lip_sync", "status": "pending" }
]
},
"message": "Full workflow created...",
"timestamp": "2026-05-15 10:30:00"
}
🔟 查询素材 GET
查看商户已有的录音和视频素材列表。
GET
/php/agent_api.php/resources
curl -X GET "https://www.aiom.com.cn/php/agent_api.php/resources" \
-H "Authorization: Bearer <token>"
响应示例
{
"success": true,
"data": {
"recordings": [
{ "id": 1, "title": "欢迎词", "audio_url": "https://...", "tags": "男声,温和" }
],
"videos": [
{ "id": 1, "title": "正面拍摄", "video_url": "https://...", "tags": "正面,微笑" }
]
}
}
📁 素材管理
除了通过 /resources 批量查询,也可直接调用以下独立素材API。
获取录音列表
GET
/php/get_recordings.php
curl -X GET "https://www.aiom.com.cn/php/get_recordings.php" \
-H "Authorization: Bearer <token>"
{
"recordings": [
{
"id": 1,
"title": "男声-客服",
"tags": "男声,客服,正式",
"audio_url": "https://www.aiom.com.cn/uploads/audio/xxx.mp3"
}
]
}
获取视频列表
GET
/php/get_videos.php
curl -X GET "https://www.aiom.com.cn/php/get_videos.php" \
-H "Authorization: Bearer <token>"
{
"videos": [
{
"id": 1,
"title": "正面半身-西装",
"tags": "正面,半身,西装,正式",
"video_url": "https://www.aiom.com.cn/uploads/video/xxx.mp4"
}
]
}
💡 使用建议:智能体根据 tags 字段匹配用户需要的风格。
如用户需要"男声客服"风格,查找 tags 包含"男声,客服"的录音。
🎨 AI图像生成
支持文生图和图生图,可用于生成视频封面或配图。
创建生图任务
POST
/php/api_image_gen.php?action=generate
文生图
curl -X POST "https://www.aiom.com.cn/php/api_image_gen.php?action=generate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"mode": "text2img", "prompt": "一只可爱的橘猫,卡通风格", "size": "auto", "quantity": 1}'
图生图
curl -X POST "https://www.aiom.com.cn/php/api_image_gen.php?action=generate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"mode": "img2img", "prompt": "改成水彩画风格", "images": ["https://...ref.jpg"]}'
查询生图状态
GET
/php/api_image_gen.php?action=query&task_id=xxx
curl -X GET "https://www.aiom.com.cn/php/api_image_gen.php?action=query&task_id=260342195" \
-H "Authorization: Bearer <token>"
参数说明
| 参数 | 类型 | 必填 | 说明 |
mode | string | 是 | text2img 或 img2img |
prompt | string | 是 | 图像描述文本 |
size | string | 否 | auto/square/landscape/portrait |
quantity | int | 否 | 生成数量 1-4,默认 1 |
images | array | 否 | 图生图的参考图URL数组 |
💰 计费:会员 0.28元/张,游客 0.5元/张。生成失败自动退款。
🔌 MCP服务接入
AIOM 提供 MCP (Model Context Protocol) 服务,支持智能体通过标准MCP协议连接。
MCP端点
| 端点 | URL | 说明 |
| SSE连接 | https://www.aiom.com.cn/mcp/sse | MCP客户端通过SSE连接 |
| 消息处理 | https://www.aiom.com.cn/mcp/messages | 处理MCP协议消息 |
| 健康检查 | https://www.aiom.com.cn/mcp/health | 服务状态检查 |
MCP 工具列表
| 工具名 | 说明 |
get_voices | 获取用户音色列表 |
synthesize_speech | 语音合成(TTS) |
create_lip_sync | 创建对口型任务 |
query_task_status | 查询任务状态 |
get_resources | 获取素材列表 |
apply_effects | 应用动态效果 |
{
"mcpServers": {
"aiom": {
"url": "https://www.aiom.com.cn/mcp/sse",
"headers": {
"Authorization": "Bearer <token>"
}
}
}
}
🎬 视频字幕动画 POST
📝 待完善:此功能的详细文档和接口实现将由桌面端完成,敬请期待。
POST
/php/agent_api.php/effects
🤖 Coze/Dify 智能体配置
将AIOM的能力接入Coze或Dify智能体,实现自动化的视频创作。
系统提示词模板
复制以下内容到智能体的系统提示词中:
你是AIOM视频创作助手,帮助用户生成对口型营销视频。
## 核心能力
- 对口型视频生成:让视频中的人物按文案说话
- 语音合成(TTS):文字转语音
- 素材管理:管理用户的录音和视频素材
## 认证方式
Authorization: Bearer <商户登录token>
## 调用流程
1. 询问商户的产品卖点和宣传需求
2. 智能体自行生成营销文案(使用自身大模型能力)
3. 调用 voices 接口获取用户的音色ID
4. 调用 tts 接口合成音频(轮询等待完成)
5. 调用 lip-sync 接口生成对口型视频(轮询等待完成)
6. 调用 effects 添加视频字幕动画效果
7. 返回最终的视频URL给用户
## 计费
- 对口型:1.2元/分钟(高清,按秒计费)
- 视频字幕动画:待定
- 生图:0.28~0.5元/张
完整对话流程示例
👤 用户:"帮我生成一段火锅店的带货视频"
🤖 智能体:"好的!请问您的店铺是做什么类型的火锅?有什么特色菜品想重点推荐吗?"
👤 用户:"我们主打麻辣锅底,毛肚和鸭肠是招牌"
🤖 智能体:(自行生成文案)→(调用 /voices 查音色)→(调用 /tts 合成语音)→(调用 /lip-sync 对口型)→(调用 /effects 添加效果)
🤖 智能体:"视频已经生成好了!点击这里查看:https://..."
💰 计费说明
| 功能 | 计费方式 | 价格 |
| 对口型 | 按视频时长(秒) | 1.2元/分钟(高清,按秒计费) |
| 视频字幕动画 | 按视频数 | 待定 |
| 语音合成(TTS) | 按次数 | 按第三方API消耗 |
| AI生图 | 按张 | 0.28元/张(image2中等质量) |
对口型费用计算
费用 = (视频秒数 ÷ 60) × 1.2
30秒视频:30 ÷ 60 × 1.2 = 0.60元
60秒视频:60 ÷ 60 × 1.2 = 1.20元
120秒视频:120 ÷ 60 × 1.2 = 2.40元
⚠️ 错误码参考
| HTTP状态码 | 含义 | 处理建议 |
200 | 请求成功 | 正常处理 |
201 | 任务创建成功 | 保存task_id,开始轮询 |
400 | 参数错误 | 检查请求参数是否完整 |
401 | 未授权 | 检查Authorization头或token是否有效 |
402 | 余额不足 | 提示用户充值 |
403 | 权限不足 | API Key过期或禁用 |
404 | 资源不存在 | 检查ID是否正确 |
500 | 服务器错误 | 稍后重试 |
错误响应格式
{
"success": false,
"data": null,
"message": "错误描述信息",
"timestamp": "2026-05-15 10:30:00"
}
🚀 完整代码示例
以下是智能体调用完整工作流的 Python 和 JavaScript 示例。
import requests
import time
import json
BASE_URL = "https://www.aiom.com.cn/php"
login_resp = requests.post(f"{BASE_URL}/login.php", json={
"identifier": "13800138000",
"password": "123456"
})
token = login_resp.json()["data"]["token"]
headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
print(f"登录成功, token: {token[:20]}...")
content = "🔥 各位吃货朋友们,今天给大家推荐一家..."
voices_resp = requests.get(f"{BASE_URL}/agent_api.php/voices", headers=headers)
voices = voices_resp.json()["data"]["voices"]
voice_id = voices[0]["voice_id"] if voices else None
print(f"音色ID: {voice_id}")
tts_resp = requests.post(f"{BASE_URL}/agent_api.php/tts",
headers=headers, json={"voice_id": voice_id, "text": content})
tts_task_id = tts_resp.json()["data"]["task_id"]
while True:
status_resp = requests.get(f"{BASE_URL}/agent_api.php/tts/status",
headers=headers, params={"task_id": tts_task_id})
status = status_resp.json()["data"]
if status["status"] == "completed":
audio_url = status["audio_url"]
print(f"TTS完成: {audio_url}")
break
elif status["status"] == "failed":
print("TTS失败")
break
time.sleep(3)
lip_resp = requests.post(f"{BASE_URL}/agent_api.php/lip-sync",
headers=headers, json={"audio_url": audio_url, "video_id": 123})
lip_task_id = lip_resp.json()["data"]["task_id"]
while True:
lip_status = requests.get(f"{BASE_URL}/agent_api.php/lip-sync/status",
headers=headers, params={"task_id": lip_task_id})
data = lip_status.json()["data"]
if data["status"] == "completed":
print(f"对口型完成: {data['video_url']}")
break
elif data["status"] == "failed":
print("对口型失败")
break
time.sleep(10)
const BASE_URL = "https://www.aiom.com.cn/php";
const loginResp = await fetch(`${BASE_URL}/login.php`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ identifier: "13800138000", password: "123456" })
});
const { data: { token } } = await loginResp.json();
const headers = { "Authorization": `Bearer ${token}`, "Content-Type": "application/json" };
const content = "🔥 各位吃货朋友们,今天给大家推荐一家...";
const voicesResp = await fetch(`${BASE_URL}/agent_api.php/voices`, { headers });
const voices = (await voicesResp.json()).data.voices;
const voiceId = voices[0]?.voice_id;
🤖 Coze智能体配置指引:
在Coze中创建API插件
{
"name": "AIOM Video Creator",
"description": "AIOM视频创作API,支持语音合成/对口型/视频处理",
"api": {
"baseUrl": "https://www.aiom.com.cn/php/agent_api.php",
"auth": { "type": "bearer", "token": "{{商户登录后获取的token}}" }
},
"operations": [
{ "name": "get_voices", "method": "GET", "path": "/voices" },
{ "name": "create_tts", "method": "POST",
"path": "/tts",
"parameters": { "voice_id": "{{voice_id}}", "text": "{{text}}" } },
{ "name": "query_tts_status", "method": "GET",
"path": "/tts/status",
"parameters": { "task_id": "{{task_id}}" } },
{ "name": "create_lip_sync", "method": "POST",
"path": "/lip-sync",
"parameters": { "audio_url": "{{audio_url}}", "video_id": "{{video_id}}" } },
{ "name": "query_lip_sync_status", "method": "GET",
"path": "/lip-sync/status",
"parameters": { "task_id": "{{task_id}}" } }
]
}
Coze智能体提示词模板
1. 询问商户的产品卖点和宣传需求
2. 智能体自行生成营销文案
3. 调用 voices 接口获取用户的音色ID
4. 调用 tts 接口合成音频(轮询等待完成)
5. 调用 lip-sync 接口生成对口型视频(轮询等待完成)
6. 返回最终的视频URL给用户
POST /php/login.php - 登录获取token
GET /php/agent_api.php/voices - 查音色
POST /php/agent_api.php/tts - 语音合成
GET /php/agent_api.php/tts/status - 查TTS状态
POST /php/agent_api.php/lip-sync - 对口型
GET /php/agent_api.php/lip-sync/status - 查对口型状态
Authorization: Bearer <商户token>
❓ 常见问题
Q: 智能体如何获取token?
调用 POST /php/login.php 用商户账号密码登录即可获取token。也可在后台创建API Key通过 X-API-Key 头认证。
Q: 音色ID从哪里来?
商户需要在AIOM网站上先完成声音克隆(上传录音),系统会自动生成音色ID。之后可通过 GET /voices 查询。
Q: 需要先上传视频素材吗?
是的,商户需先在网站上上传真人视频素材(仅支持 5~10秒 的产品展示视频),对口型接口需要 video_id 或 video_url 参数。图片类素材后续将不再支持。
Q: TTS和对口型需要等多久?
TTS通常 10~30 秒完成,对口型通常 1~5 分钟完成。建议使用轮询方式查询状态。
Q: 如何在Coze中配置这些API?
参考上方的"代码示例 → Coze配置"标签页,按JSON格式创建API插件即可。
Q: 生成失败会扣费吗?
不会。对口型任务失败不会扣费,余额自动退还。