YB Studio API 文档
生产 Base URL
https://ybstudio.cn/api统一的异步生成接口
YB Studio 将声音与数字人能力收敛到一致的认证、任务和结果模型中。业务代码无需理解底层 Worker,只需提交任务、轮询状态并读取结果。
统一鉴权
外部程序使用可独立撤销的 API Key;第一方创作台使用同源 HttpOnly 会话。
异步任务
生成接口立即返回任务 ID,长耗时工作在 Worker 中执行,不阻塞请求。
可靠结算
提交时预扣积分,成功后按真实用量结算,失败自动退回预扣。
短时结果
结果通过短时签名地址下载,并明确返回服务端保留截止时间。
两种认证边界
网页用户与服务器程序使用不同凭证,但最终都会解析为同一个用户身份并执行相同的套餐、余额、速率限制和资源归属检查。
HttpOnly Session
YB Studio 第一方网页通过 HttpOnly 登录会话调用上传、TTS 与任务查询接口,页面脚本不会读取令牌。
X-API-Key / Bearer
外部程序使用 X-API-Key 或 Bearer API Key。密钥只在创建时展示,可在控制台独立撤销。
不要在浏览器代码中保存长期 API Key
浏览器创作台应使用登录会话;API Key 只应保存在你控制的服务器、密钥管理服务或受保护的 CI 环境变量中。
三步完成第一条 TTS 请求
创建 API Key 后提交文本,保存返回的任务 ID,再通过任务接口轮询到成功状态。
- 1在控制台创建 API Key
- 2提交带幂等键的生成请求
- 3轮询任务并获取结果
curl -X POST https://ybstudio.cn/api/v1/tts \
-H "X-API-Key: yb_xxx_yyy" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tts-001" \
-d '{
"text": "你好,欢迎使用 YB Studio。",
"use_emo_text": true,
"emo_text": "温暖而平静",
"emo_alpha": 0.7
}'任务生命周期
生成任务只使用离散状态,不伪造进度百分比。客户端应为 queued 与 processing 设置合理的轮询间隔。
- 1提交任务并预扣积分
- 2轮询 queued / processing
- 3成功后获取短时下载地址
- 4失败自动退回预扣积分
接口参考
下面的字段和示例来自当前生产 API 契约。机器生成客户端应优先使用 OpenAPI 文件。
/v1/uploads申请上传地址
为声音、情绪或数字人素材创建短时预签名 PUT 地址。当前创作台只接受不超过 20 MiB 的 WAV 声音样本。
请求字段
filename必填原始文件名,用于安全推导对象扩展名。
content_type可选素材 MIME;声音创作台使用 audio/wav。
size_bytes可选声明的文件字节数;浏览器会话上传时必填。
purpose可选voice_reference 或 emotion_reference;浏览器会话上传时必填。
rights_confirmed可选确认拥有声音使用权;会话声音上传时必须为 true。
curl -X POST https://ybstudio.cn/api/v1/uploads \
-H "X-API-Key: yb_xxx_yyy" \
-H "Content-Type: application/json" \
-d '{
"filename": "voice.wav",
"content_type": "audio/wav",
"size_bytes": 1048576,
"purpose": "voice_reference",
"rights_confirmed": true
}'{
"asset_id": "asset_xxx",
"object_key": "inputs/user-id/voice.wav",
"upload_url": "https://storage.example/…",
"expires_in": 900,
"delete_after": "2026-08-19T14:00:00Z"
}/v1/tts创建文本转语音任务
使用系统预置音色、默认音色或已上传的声音引用生成语音,并可通过情绪文本、参考音频或八维向量调整表达。
请求字段
text必填要合成的内容,最多 5000 个字符。
voice_preset_id可选系统预置音色 ID,可从 /voice-presets 获取;不会暴露私有对象路径。
voice_ref_key可选属于当前用户的声音参考对象键;省略时使用默认音色。
emo_ref_key可选属于当前用户的情绪参考音频对象键。
emo_text可选自然语言情绪描述,与 use_emo_text 配合使用。
emo_alpha可选情绪强度,取值由当前模型约束。
emo_vector可选八维情绪控制向量。
curl -X POST https://ybstudio.cn/api/v1/tts \
-H "X-API-Key: yb_xxx_yyy" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tts-001" \
-d '{
"text": "你好,欢迎使用 YB Studio。",
"use_emo_text": true,
"emo_text": "温暖而平静",
"emo_alpha": 0.7
}'{
"id": "job_xxx",
"type": "tts",
"status": "queued",
"reserved_credits": 12,
"estimate_detail": {}
}/v1/avatar创建音频驱动数字人任务
使用已上传的音频驱动人物图像生成数字人视频。套餐、并发与 720p 权限仍由服务器校验。
请求字段
audio_ref_key必填属于当前用户的驱动音频对象键。
image_ref_key可选属于当前用户的人物图像对象键。
resolution可选请求的输出分辨率;是否允许 720p 取决于套餐。
prompt可选可选的生成提示信息。
curl -X POST https://ybstudio.cn/api/v1/avatar \
-H "X-API-Key: yb_xxx_yyy" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: avatar-001" \
-d '{
"audio_ref_key": "inputs/user-id/speech.wav",
"image_ref_key": "inputs/user-id/portrait.png"
}'{
"id": "job_xxx",
"type": "avatar",
"status": "queued"
}/v1/avatar/from-text创建文本直达视频任务
在同一任务中完成语音生成与数字人视频生成,适合口播内容的服务器端自动化流程。
请求字段
text必填用于生成语音和驱动视频的口播文本。
image_ref_key可选属于当前用户的人物图像对象键。
voice_ref_key可选可选声音引用;省略时使用默认音色。
resolution可选请求的输出分辨率。
curl -X POST https://ybstudio.cn/api/v1/avatar/from-text \
-H "X-API-Key: yb_xxx_yyy" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: avatar-text-001" \
-d '{"text":"你好,欢迎使用 YB Studio。"}'{
"id": "job_xxx",
"type": "avatar_from_text",
"status": "queued"
}/v1/jobs/{id}查询任务状态
读取当前用户任务的 queued、processing、succeeded 或 failed 状态,以及最终错误信息和结算结果。
请求字段
id必填创建任务后返回的任务 ID,放在 URL 路径中。
curl https://ybstudio.cn/api/v1/jobs/job_xxx \
-H "X-API-Key: yb_xxx_yyy"{
"id": "job_xxx",
"status": "processing",
"progress": null,
"error": null
}/v1/jobs/{id}/result获取任务结果
任务成功后获取短时下载地址、有效秒数与媒体保留截止时间;地址过期后可再次请求。
请求字段
id必填已成功任务的 ID,放在 URL 路径中。
curl https://ybstudio.cn/api/v1/jobs/job_xxx/result \
-H "X-API-Key: yb_xxx_yyy"{
"result_url": "https://storage.example/…",
"expires_in": 900,
"retained_until": "2026-08-25T14:00:00Z"
}计费、积分退回与幂等
同一个业务动作不应因为网络重试而重复扣费。写请求应携带稳定且唯一的 Idempotency-Key。
- ✓任务创建时预扣预计积分,成功后按真实用量结算。
- ✓任务失败会自动退回预扣积分,不需要客户端发起操作。
- ✓同一用户、同一路径与同一个幂等键会复用原任务语义。
- ✓客户端超时后应先查询原任务,不要立即创建新的业务请求。
常见错误
所有错误都使用标准 HTTP 状态码和 JSON 错误结构。记录请求时间、路径与任务 ID,排查时不要记录完整密钥。
401凭证缺失、过期或已撤销
402积分余额不足,请先选择套餐或充值
403套餐不支持、Origin 无效或资源不属于当前用户
422文本、声音样本或生成参数不合法
503功能维护、管理员关闭或没有 90 秒内在线的算力 Worker;WORKER_UNAVAILABLE 不会创建任务或预扣积分
开发者资源
网页文档面向人阅读;OpenAPI 与 LLM 文档保留为机器工具和自动化客户端的输入。