开放 API

把「音频 → 字幕」这件事接进你自己的系统:ERP、上架工具、代运营后台都能直接调。 计费与网页端共用同一个积分钱包,没有另一套账。

想要一把密钥?

密钥与账号绑在一起,签发、查看、吊销都需要登录——用密钥本身管理密钥, 等于一把泄露的钥匙可以无限自助续命。

快速接入

  1. 1. 鉴权:把密钥放进请求头

    curl https://smilesub.xixiaotech.cn/api/v1/me \
      -H "Authorization: Bearer sk_live_你的密钥"
    
    # 也可以(很多网关的习惯写法):
    #   -H "X-API-Key: sk_live_你的密钥"

    不支持把密钥写在 URL 参数里:URL 会进 access log、浏览器历史和 Referer, 一个长期有效的密钥出现在日志里就等于泄露。

  2. 2. 典型流程(音频 → 字幕 → 下载)

    # ① 上传音频并建任务(注意 Content-Length 必须带,请求体是裸二进制不是 multipart)
    curl -X POST "https://smilesub.xixiaotech.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.xixiaotech.cn/api/v1/tasks/FILE_ID" \
      -H "Authorization: Bearer sk_live_你的密钥"
    
    # ③ 下载字幕(srt/vtt/txt 免费;ass、bilingual 按次计费)
    curl -o out.srt "https://smilesub.xixiaotech.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. 3. 同步翻译(多语种一次提交)

    curl -X POST https://smilesub.xixiaotech.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 零点重置。