calculate_video_translation_quota
Estimate video translation quota before submission using real duration (ms) to avoid inaccurate budgets. No charge; warns if video exceeds plan limits or balance is insufficient.
Instructions
试算视频翻译要消耗多少额度,不扣费。提交 translate_video 前应当先调这个并把结果告诉用户。video_duration 必须是从文件里真实读出来的时长(ffprobe 等),不能按文件大小猜——服务端核实不了这个输入,猜错就等于给用户报了个假预算。计费规则:按 30 秒为一个计费单位向上取整,每单位 4 额度;voice_role 为 clone 且 subtitle_type≠0 时额度翻倍(实测 10 分钟视频:不配音 80 额度,开克隆配音 160 额度)。返回里如果带 limitWarning(视频超出会员档的时长上限)或 quotaWarning(余额不够),请先把那句话原样告诉用户再往下走——这两种情况提交上去会被服务端直接拒,白传一次文件。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| voice_role | No | 配音开关,只有两个取值:No=不配音、只做字幕翻译(默认,与产品前端一致);clone=克隆原说话人音色做配音。clone 且 subtitle_type≠0 时**额度翻倍**——10 分钟视频 80 额度会变成 160,所以要不要配音必须先问用户,不要替他决定。服务端对本字段只校验非空,填其他值不会报错但会白扣额度,不要传这两个之外的值。 | |
| subtitle_type | No | 0=不嵌入字幕, 1=翻译字幕(默认), 2=原始字幕, 3=翻译+原始字幕 | |
| video_duration | Yes | 视频时长,单位是**毫秒**(不是秒)。例如 2 分 5 秒要传 125000,传成秒会让试算额度远低于实际扣费。必须是文件的真实时长:用 ffprobe(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 <文件>,得到的是秒,乘 1000)或其他媒体信息工具读出来。严禁按文件大小估算——码率差异极大,实测有把 21 秒的 4.8MB 视频猜成 5 分钟的,报给用户的预算因此差了十倍。读不到真实时长就别试算,先告诉用户你读不到。 |