文档来源与转录设置
来源与转录设置
查看支持的视频链接,选择平台字幕或AI转录,并设置说话人分离和语言。
提交YouTube、X、TikTok、Instagram、Facebook或Bluesky的视频链接,或直接上传文件,即可开始转录。其他支持的平台、公开录制内容和链接格式见下表。在POST /v1/transcriptions的请求体中,还可以用source选择文本来源、用diarize开启说话人分离、用language指定语言;这些字段均可省略。
支持的平台
将视频链接填入url即可,API会自动识别平台。如果同时填写platform,其值必须与链接对应的平台一致。
| 平台 | 支持的链接 |
|---|---|
YouTube(youtube) | 支持的具体格式见下方YouTube链接表。 |
X(x) | 带视频的帖子,域名为x.com或twitter.com,如https://x.com/user/status/1234567890。 |
TikTok(tiktok) | tiktok.com的视频帖子。也支持vm.tiktok.com、vt.tiktok.com和www.tiktok.com/t/短链接。 |
Instagram(instagram) | instagram.com的Reels和视频帖子,路径为/reel/、/reels/、/p/或/tv/。Reel或帖子路径前带用户名也可以。 |
Facebook(facebook) | facebook.com的视频和Reel,包括watch页面链接。也支持fb.watch、/share/v/和/share/r/短链接。 |
Bluesky(bluesky) | 带视频的bsky.app帖子,如https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2。 |
Twitch(twitch) | 已结束的直播回放(VOD):twitch.tv/videos/<id>或/<channel>/v/<id>,其中v也可以写作video。剪辑:clips.twitch.tv/<slug>、twitch.tv/<channel>/clip/<slug>或/clip/<slug>。支持的域名包括twitch.tv、www、m、go及clips.twitch.tv。 |
Dailymotion(dailymotion) | 视频路径为dailymotion.com/video/<id>(可附带_title)或/embed/video/<id>,短链接为dai.ly/<id>。也接受www.dailymotion.com和touch.dailymotion.com域名。 |
Pinterest(pinterest) | pinterest.com或www.pinterest.com的视频Pin,路径为/pin/<id>/或/pin/<slug>--<id>/。只读取Pin内第一个原生视频,不读取外部嵌入视频。不支持图片、画板、pin.it或地区域名。 |
LinkedIn(linkedin) | 公开视频帖子,域名为linkedin.com或www.linkedin.com,路径为/posts/<slug>-<activity-id>-<four-character-suffix>或/feed/update/urn:li:activity:<id>/。不支持个人主页、学习课程、活动页或lnkd.in。 |
Snapchat Spotlight(snapchat) | snapchat.com或www.snapchat.com的Spotlight视频,路径为/spotlight/<id>。不支持限时动态和个人主页。 |
Twitch、Dailymotion、Pinterest、LinkedIn和Snapchat Spotlight的链接必须使用HTTPS,不能带用户名、密码或自定义端口。只接受单条、公开且已录制完成的内容;私有帖子、需登录的帖子、直播、仍在处理的视频流、个人主页、信息流和合集均不支持。抓取时不会携带账号Cookie。
链接中的时间参数不会截取录音或视频。Twitch剪辑和Snapchat Spotlight返回的media_id可能无法从链接推算,应直接保存接口返回的字符串,不要自行生成ID。
X、TikTok、Instagram、Facebook和Bluesky也只接受公开帖子。同一帖子有多个视频时,只转录第一个。不支持个人主页、限时动态、直播页面或TikTok图片帖子。需要登录才能访问时,任务会报login_required;视频没有音轨时会报no_audio。这两种情况都不扣费。
YouTube、X、TikTok、Bluesky、Dailymotion和LinkedIn可以读取字幕,前提是视频有可用的原语言字幕。Instagram、Facebook、Twitch、Pinterest和Snapchat只能用AI语音转文字,source可选auto或stt,不能选captions。无论选哪个平台还是上传文件,都按实测时长和相同的每分钟单价计费。
短链接仅支持上表列出的格式。如果提交的社交平台分享链接尚不含帖子ID,就无法在提交时匹配已有转录。需要复用时,优先使用完整的帖子链接。
| 平台 | 字幕读取范围与时间戳 |
|---|---|
| YouTube和X | 读取已有字幕。其中,只有YouTube自动生成的字幕提供逐词时间戳。 |
| TikTok | 读取平台提供的VTT或SRT字幕,只有分段时间戳。 |
| Bluesky | 读取受支持、受信任PDS上的原生视频字幕,不支持任意其他联邦服务器、引用的视频或外部视频。只有分段时间戳。 |
| Dailymotion | 直接读取SRT字幕文件,不读取字幕播放列表。只有分段时间戳;识别到的en-auto、fr-auto字幕会标为auto_generated。 |
| 读取公开原生视频的VTT字幕,只有分段时间戳。不支持LinkedIn Learning。 |
YouTube链接格式
将完整视频链接填入url,省略platform或将其设为youtube。支持下列格式,域名带不带www.均可:
| 链接类型 | 示例 |
|---|---|
| 视频播放页 | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
| 短链接 | https://youtu.be/dQw4w9WgXcQ |
| Shorts | https://www.youtube.com/shorts/dQw4w9WgXcQ |
| 嵌入式播放链接 | https://www.youtube.com/embed/dQw4w9WgXcQ |
| 直播页面链接 | https://www.youtube.com/live/dQw4w9WgXcQ |
| 移动版或音乐版域名 | https://m.youtube.com/watch?v=dQw4w9WgXcQ、https://music.youtube.com/watch?v=dQw4w9WgXcQ |
API会忽略t、list、si等额外查询参数,并将指向同一视频的不同链接识别为同一个视频。必须提交完整URL,不能只传11个字符的视频ID。频道页、只有播放列表的链接及其他不支持的链接均返回422 invalid_url。platform不受支持时,返回422 unsupported_platform,并通过supported_platforms列出可用值。
YouTube支持公开视频和非公开视频(unlisted)。私有视频会报media_private,有年龄限制的视频会报age_restricted,正在直播的视频会报live_stream。如果手头有自己的录制文件,可以改用文件上传。
source:选择字幕或AI转录
通过source指定读取平台字幕,还是转录音频:
| 参数值 | 处理方式 |
|---|---|
auto(默认) | 在YouTube、X、TikTok、Bluesky、Dailymotion和LinkedIn上,先找可用的原语言字幕;找不到时,用AI语音转文字处理音频。 |
captions(仅字幕) | 只读取支持字幕的平台,不下载音频,也不调用AI语音转文字。没有可用字幕时,任务报no_captions,不扣费;获取字幕内容失败则报fetch_failed。其他视频平台不接受此值,会返回422 invalid_request。 |
stt | 不读取平台字幕,直接用AI语音转文字处理音频。 |
上传文件一律使用语音转文字。此时source只能选auto或stt,设置为captions会返回422 invalid_request。
字幕语言必须与language指定的语言一致;language为auto时,读取视频原语言的字幕。YouTube字幕须由创作者上传,或由YouTube按该语言生成,不会使用自动翻译字幕。选择顺序为创作者上传的字幕、来源未知的字幕、自动生成的字幕。来源未知不等于创作者上传。
X读取可用的VTT字幕,只提供分段时间戳,即使字幕是自动生成的,也没有逐词时间戳。使用auto时,字幕内容不可用或无法解析才可能改用STT;路由、存储或程序故障不会触发这种切换。使用stt则始终跳过字幕。
diarize:区分说话人
需要区分谁在说话时,将diarize设为true,开启说话人分离。默认值为false。
- 说话人分离依赖语音转文字。因此,
source为auto且diarize: true时,会直接转录音频,不读取字幕。 - 不能同时设置
source: "captions"和diarize: true,否则返回422 invalid_request。 - 说话人使用
Speaker 1、Speaker 2等标签。JSON中可从transcript.speakers和各段的speaker字段读取;text、srt会加上Speaker 1:前缀,vtt则使用<v Speaker 1>语音标签。
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }language:指定语言
language默认是auto。也可以填入ISO 639-1双字母代码,如en、de或es。
- 读取字幕时,用它选择字幕语言。设为
auto则读取视频原语言的字幕。 - 转录音频时,用它向语音转文字服务商提示语言。设为
auto则自动识别语言,各段分别带有language字段。
转录对象本身的language字段表示整段录音的主要语言。
查看文本来源和时间戳
读取transcript_source即可知道文本来自平台字幕还是AI转录。可能的值为youtube_captions、x_captions、tiktok_captions、bluesky_captions、dailymotion_captions、linkedin_captions和speech_to_text。如果来自字幕,再看caption_kind:manual表示手动字幕,auto_generated表示自动生成,null表示来源未知。不要把null显示成“创作者上传”。
youtube_captions,caption_kind为manual | youtube_captions,caption_kind为auto_generated | speech_to_text | |
|---|---|---|---|
| 如何分段 | 每条字幕对应一段 | 每条字幕对应一段 | 更换说话人、切换语言、遇到句末标点或达到15秒上限时分段 |
加上include=words后的逐词时间戳 | 不提供,words为null | 提供单词开始时间,结束时间取下个单词的开始时间 | 提供单词起止时间和confidence |
| 说话人分离 | 不提供 | 不提供 | diarize为true时提供 |
| 语言信息 | 字幕语言 | 字幕语言 | 各段分别识别 |
YouTube字幕保留发布时的原文,包括[Music]等标记。语音转文字最多处理5小时的音频或视频,超过此时长会报media_too_long。
X字幕(x_captions)以及TikTok、Bluesky、Dailymotion、LinkedIn字幕均只有分段时间戳,也不提供说话人分离。即使是自动生成的字幕,加上include=words后,各段仍返回words: null。需要AI逐词时间戳时,选择source: "stt";需要区分说话人时,在auto或stt模式下设置diarize: true。
计费方式
读取字幕和AI语音转文字的单价相同。按录音或视频的分钟数向上取整,每分钟扣1积分。切换source只改变文本来源,不改变价格。详见计费与限制。
最后更新 2026年10月20日