开放 API
把「音频 → 字幕」这件事接进你自己的系统:ERP、上架工具、代运营后台都能直接调。 计费与网页端共用同一个积分钱包,没有另一套账。
快速接入
1. 鉴权:把密钥放进请求头
curl https://smilesub.cn/api/v1/me \ -H "Authorization: Bearer sk_live_你的密钥" # 也可以(很多网关的习惯写法): # -H "X-API-Key: sk_live_你的密钥"不支持把密钥写在 URL 参数里:URL 会进 access log、浏览器历史和 Referer, 一个长期有效的密钥出现在日志里就等于泄露。
2. 典型流程(音频 → 字幕 → 下载)
# ① 上传音频并建任务(注意 Content-Length 必须带,请求体是裸二进制不是 multipart) curl -X POST "https://smilesub.cn/api/v1/subtitles?language=zh" \ -H "Authorization: Bearer sk_live_你的密钥" \ -H "Content-Type: audio/wav" \ -H "X-Filename: product-intro.wav" \ --data-binary @audio.wav # → { "success": true, "data": { "file_id": "…", "status": "queued", "credits_charged": 30 } } # ② 轮询状态,直到 has_subtitles 为 true curl "https://smilesub.cn/api/v1/tasks/FILE_ID" \ -H "Authorization: Bearer sk_live_你的密钥" # ③ 下载字幕(srt/vtt/txt 免费;ass、bilingual 按次计费) curl -o out.srt "https://smilesub.cn/api/v1/tasks/FILE_ID/export?format=srt" \ -H "Authorization: Bearer sk_live_你的密钥"请先自己用 ffmpeg 抽出音频再上传(
ffmpeg -i in.mp4 -vn -ac 1 -ar 16000 out.wav)。 网页端的主流程也是这么做的——服务器通常不经手整段视频。3. 同步翻译(多语种一次提交)
curl -X POST https://smilesub.cn/api/v1/translate \ -H "Authorization: Bearer sk_live_你的密钥" \ -H "Content-Type: application/json" \ -d '{ "srt": "1\n00:00:00,000 --> 00:00:03,000\n你好\n", "source_language": "zh", "target_languages": ["en", "ja"], "output": "srt" }' # → { "success": true, "data": { "translations": { "en": { "content": "…" }, "ja": { "content": "…" } }, # "credits_charged": 6, "balance_after": 994 } }
端点清单
计费、错误码与限制
计费口径(与网页端同一张价目表)
- 字幕生成:— 积分 / 分钟(向上取整)
- 字幕翻译:— 积分 / 分钟 / 每种目标语言
- 双语导出:— 积分 / 次
- 样式化 ASS 导出:— 积分 / 次
- 原文字幕导出(srt / vtt / txt):免费
- 创作者订阅(月/季/年)有效期内,两项增强导出免收
错误码
401 API_KEY_MISSING / API_KEY_INVALID密钥缺失或无效402 INSUFFICIENT_CREDITS余额不足(该充值了)403 API_DISABLED / SCOPE_REQUIRED接口已关 / 密钥权限不够404 TASK_NOT_FOUND任务不存在或不属于你409 SUBTITLES_NOT_READY字幕还没生成完413 FILE_TOO_LARGE单文件超过上限429 QUOTA_EXCEEDED超过配额(响应带 Retry-After)
限额:单文件最大 — MB;单次翻译最多 2000 条字幕。 配额按密钥统计,每日 UTC 零点重置。