概览
通过简单的 REST API,将音频和视频转换为转录文本、隐藏式字幕和字幕。
发送媒体网址、跟踪转录任务,然后获取结构化 JSON 或可直接使用的字幕文件。
您的第一份转录
转录在后台进行。创建任务后会立即响应;请持续查询状态,直到结果就绪。
创建任务
通过
POST /transcripts发送可直接公开访问的媒体网址。请保留返回的id。查看进度
每隔 15–30 秒轮询
GET /transcripts/{id},直到status为complete或error。使用转录结果
从
data读取 JSON;如果请求 SRT 或 VTT,则通过export_url下载文件。
任务状态
initializing已加入队列,等待开始。请继续轮询。
transcribing正在转录您的媒体。请继续轮询。
complete已就绪。请读取结果或下载文件。
error任务失败。请读取 message 并停止轮询。
其他状态均视为处理中。未来可能添加中间状态。
身份验证
每次请求时,请在 Authorization 标头中发送 API 密钥,内容须与创建时显示的完全一致。
Authorization: <your api key>请勿添加 Bearer 前缀。
新密钥以 tp_live_ 开头。完整密钥仅在创建时显示一次。如果遗失,请撤销该密钥并创建新密钥;已撤销的密钥会立即失效。
需要有效订阅及具备所需权限的 API 密钥。
请将密钥保存在服务器上。它可访问您账户的转录文本和用量。切勿将其暴露在浏览器代码或公共代码库中。
创建转录
/transcripts为公开网址上的媒体文件启动转录任务。任务加入队列后即返回响应,状态为 status: "initializing"。
Taption 会直接下载文件。Google Drive 或 Dropbox 预览页面等分享页面链接无法使用。
请求体
application/jsonmedia_urlstring必填媒体文件的直接下载链接。
最多 2048 个字符extensionstring必填媒体文件格式。
mp3wavm4aaacflacwmaopusmp4languagestring必填以语言标签指定媒体使用的语言。请参阅语言参考资料。
查看语言标签namestring转录的显示名称。默认为 `media_url` 中的文件名。较长的名称会截断至 200 个字符。
最多 200 个字符export_typestring输出格式。默认为 json,在 data 中返回已解析的转录内容。srt 和 vtt 则在 export_url 中返回文件链接。
默认值:jsonjsonsrtvttmax_charinteger每段字幕的字符上限。中文、日文、韩文和粤语默认为 `16`,其他语言为 `65`。超出 1-200 的值会被忽略,改用默认值。
1–200
响应
200任务已创建并加入队列。请保留 `id` 以查询状态。
400请求体无效。请先修正再重试。仅报告发现的第一个问题。
401API 密钥缺失、无效,或尚未配置 API 访问权限。
403需要有效订阅及具备所需权限的 API 密钥。
429已达到账户上限,未创建任务。默认值:Premium 每分钟 10 个、最多 2 个未完成任务;Corp 每分钟 30 个、最多 10 个未完成任务。所有密钥共用上限,设置可能调整。查询状态不计入。
500意外的服务器错误。请使用指数退避重试。
503暂时无法检查提交限制(`api_limits_unavailable`,未创建转录),或加入队列失败或无法确认。如有 Retry-After,请遵循其指示等待。若响应包含 `id`,重试前请先查询其状态:可能为 `error`,也可能已开始处理。重试会创建新的转录。
获取转录
/transcripts/{id}获取转录的当前状态和结果。任务进行时,请每隔 15–30 秒轮询一次。
对于 json 或未指定导出类型的请求,完成的结果会出现在 data 中。对于 srt 或 vtt,请通过 export_url 下载文件。
路径参数
idstring必填- 由
POST /transcripts返回的转录 ID。最多 256 个字符
转录失败时仍会返回 HTTP 200,并附带 status: "error"。请同时检查任务状态和 HTTP 状态码。
响应
200转录的当前状态。这不代表任务已成功;请查看 `status`。
401API 密钥缺失、无效,或尚未配置 API 访问权限。
403需要有效订阅及具备所需权限的 API 密钥。
404您的账户中没有此 ID 的转录。如果转录属于其他账户,也会得到相同响应。
500意外的服务器错误。请使用指数退避重试。
转录对象
创建任务和查询状态的请求会返回 JSON 对象。其字段描述任务,以及就绪后的输出结果。
idstring- 转录 ID,搭配 `GET /transcripts/{id}` 使用。
statusstring- 任务当前状态:`initializing`、`transcribing`、`complete` 或 `error`。其他值均视为处理中。
dataJSON- 对于 json 或省略 export_type 的请求,结果就绪时提供已解析的 JSON 导出内容;否则为空字符串。
export_urlstring- srt 或 vtt 导出文件的下载链接,就绪前为空。若格式为 json 或省略 export_type,状态响应会省略此字段。
messagestring- 当前状态的补充信息。在 `transcribing` 期间,可能为 `ANALYZING` 或 `FINALIZING` 等进度阶段。当 `status` 为 `error` 时,描述失败原因。此内容供人阅读,请勿用程序解析。
error_codestring- 可选的机器可读代码,表示提交限制错误。
limitinteger- 此次适用的账户上限,在 HTTP 429 响应中提供。
错误与重试
请根据 HTTP 状态码决定下一步。message 字段供人阅读,措辞可能会变动。
API 响应包含 X-Request-Id 标头。就某个请求联系支持团队时,请提供该值。
HTTP 错误码9 个状态码
| HTTP | 问题说明 | 下一步 |
|---|---|---|
400 | 请求体无效。 | 请先修正请求。 |
401 | 缺少 API 密钥,或密钥无效或已撤销。 | 请检查您的 API 密钥。 |
403 | 需要有效订阅及具备所需权限的 API 密钥。 | 请确认订阅状态及 API 密钥权限。 |
404 | 您的账户中找不到此转录。 | 请检查转录 ID。 |
405 | HTTP 方法错误。 | 请使用文档指定的方法。 |
429 | 已达到提交频率或未完成任务的上限。 | 按照 Retry-After 等待,并等待任务名额释放。 |
500 | 意外的服务器错误。 | 使用指数退避重试。 |
503 | 无法检查提交限制,或加入队列失败或无法确认。 | 重试前请先查询返回的任务 ID;如有 Retry-After,请遵循其指示等待。 |
504 | 请求超时。 | 延长重试间隔,避免重复任务。 |
API 限制错误会返回 HTTP 429、JSON 内容及以秒为单位的 Retry-After。托管平台也可能返回非 JSON 格式的 429、504 或 400 响应。读取内容前,请先检查 HTTP 状态码。
创建请求不具有幂等性。 重试超时的 POST /transcripts 可能创建另一份转录。若 503 响应包含任务 ID,请先查询该任务再重新提交:任务可能已失败,也可能已开始处理。
语言
将 language 设为媒体中使用的语言。请使用下方完整标签,包括地区或输出文字系统后缀。
支持的语言74 种语言
| 语言 | 标签 |
|---|---|
| Afrikaans (South Africa) | af-ZA |
| Arabic (Egypt) | ar-EG |
| Armenian (Armenia) | hy-AM |
| Assamese (India) | as-IN |
| Azerbaijani (Azerbaijan) | az-AZ |
| Bengali (India) | bn-IN |
| Bosnian (Bosnia and Herzegovina) | bs-BA |
| Bulgarian (Bulgaria) | bg-BG |
| Burmese (Myanmar) | my-MM |
| Cantonese, Simplified Chinese output (Hong Kong) | yue-Hant-HK-zh |
| Cantonese, Traditional Chinese output (Hong Kong) | yue-Hant-HK-TW-zh |
| Cantonese, Simplified Cantonese output (Hong Kong) | yue-Hant-HK |
| Cantonese, Traditional Cantonese output (Hong Kong) | yue-Hant-HK-TW |
| Catalan (Spain) | ca-ES |
| Chinese (China) | zh |
| Chinese (Taiwan) | zh-TW |
| Chinese & English (Simplified) | zh-EN |
| Chinese & English (Traditional) | zh-EN-TW |
| Croatian (Croatia) | hr-HR |
| Czech (Czech Republic) | cs-CZ |
| Danish (Denmark) | da-DK |
| Dutch (Belgium) | nl-BE |
| English (Australia) | en-AU |
| English (United Kingdom) | en-GB |
| English (United States) | en-US |
| Estonian (Estonia) | et-EE |
| Filipino (Philippines) | tl-PH |
| Finnish (Finland) | fi-FI |
| French (France) | fr-FR |
| Galician (Spain) | gl-ES |
| German (Germany) | de-DE |
| Greek (Greece) | el-GR |
| Gujarati (India) | gu-IN |
| Hebrew (Israel) | iw-IL |
| Hindi (India) | hi-IN |
| Hungarian (Hungary) | hu-HU |
| Icelandic (Iceland) | is-IS |
| Indonesian (Indonesia) | id-ID |
| Italian (Italy) | it-IT |
| Japanese (Japan) | ja-JP |
| Kannada (India) | kn-IN |
| Kazakh (Kazakhstan) | kk-KZ |
| Khmer (Cambodia) | km-KH |
| Korean (South Korea) | ko-KR |
| Latvian (Latvia) | lv-LV |
| Lithuanian (Lithuania) | lt-LT |
| Macedonian (North Macedonia) | mk-MK |
| Malay (Malaysia) | ms-MY |
| Malayalam (India) | ml-IN |
| Marathi (India) | mr-IN |
| Nepali (Nepal) | ne-NP |
| Norwegian (Norway) | no-NO |
| Odia (India) | or-IN |
| Persian (Iran) | fa-IR |
| Polish (Poland) | pl-PL |
| Portuguese (Portugal, Brazil) | pt-PT_pt-BR |
| Punjabi, Gurmukhi (India) | pa-IN |
| Romanian (Romania) | ro-RO |
| Russian (Russia) | ru-RU |
| Serbian (Serbia) | sr-SR |
| Slovak (Slovakia) | sk-SK |
| Slovenian (Slovenia) | sl-SI |
| Spanish (Spain) | es-ES |
| Swahili (Kenya) | sw-KE |
| Swedish (Sweden) | sv-SE |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thai (Thailand) | th-TH |
| Turkish (Turkey) | tr-TR |
| Ukrainian (Ukraine) | uk-UA |
| Urdu (Pakistan) | ur-PK |
| Uzbek (Uzbekistan) | uz-UZ |
| Vietnamese (Vietnam) | vi-VN |
| Zulu (South Africa) | zu-ZA |
此列表依据 Taption 的语言设置提供,可能会更新。请以 Taption 的语言选择器为准。