# 生成 SRT 字幕文件，或导出WebVTT和带时间戳的文字

> 从支持的视频链接或上传文件生成 SRT 字幕文件，也可获取WebVTT、带时间戳的纯文本和含逐词时间戳的JSON。凭同一个转录ID读取所需格式。

Canonical: https://transcript1.com/zh/features/shengcheng-srt-zimu-wenjian
Language: zh-Hans
Last updated: 2026-10-19

从支持的视频链接或上传录音生成 SRT 字幕文件，每段都有开始和结束时间。也可读取WebVTT、JSON或带时间戳的纯文本。支持YouTube、X、TikTok、Instagram、Facebook、Bluesky，以及Twitch剪辑和已结束的VOD、Dailymotion视频、Pinterest视频Pin、LinkedIn视频帖子和Snapchat Spotlight视频。

- 同一份转录可读取JSON、纯文本、SRT和VTT
- 每份转录都包含分段时间戳
- 通过include=words读取可用的逐词时间戳

## 按播放器、编辑器或应用需要的格式读取

### 一个ID，按需读取格式

调用GET /v1/transcriptions/:id，通过format=json、text、srt或vtt选择格式，默认返回JSON。

### 纯文本也能定位录音

format=text搭配timestamps=true，每行开头都会带上[hh:mm:ss]，方便按时间回听。

### 导出标准字幕文件

SRT返回application/x-subrip；VTT返回text/vtt，以WEBVTT开头。每个转录段落对应一条字幕。

### 需要逐词显示时再读取词数据

include=words可请求逐词时间、文字、置信度和说话人。能取到哪些数据取决于来源，创作者字幕的words为null。

### 换格式不再消耗分钟数

每种格式都来自同一份已完成的转录。再次读取或换一种格式，不会新建转录，也不扣转录分钟数。

## 给每行文字加上时间戳

读取纯文本时加timestamps=true即可。创建转录时已开启说话人分离的，也会显示说话人标签。参数见[读取转录接口](https://transcript1.com/zh/docs/api-reference#get-a-transcription)。

做笔记或整理引用时，带时间戳的文字比字幕语法更容易放进文档。每行对应录音里的一段，旁边也要保留视频链接或文件名，否则单独一个00:12:40无法说明出处。

JSON里的start和end是从音视频开头算起的秒数，不是日期或现实中的钟表时间。播放器可用它跳转，笔记也能用同一数值记录来源。

下面的文字只是导出示例，用来说明时间戳的显示方式。

### format=text&timestamps=true

```
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=text&timestamps=true" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"

[00:00:00] Place the microphone near the speaker.
[00:00:04] Record a short test before the interview.
```

## SRT还是VTT，看接收工具支持什么

SRT由带序号、起止时间的字幕条目组成。WebVTT以WEBVTT开头，可用于HTML的track元素。转录完成后，用format=srt或format=vtt读取并保存响应。

剪辑软件和字幕导入流程常用SRT；要为HTML视频生成 VTT 文件，则选择WebVTT。两者都只是字幕文件，不会把文字压进画面，也不会复制社交平台的字幕样式，外观由播放器或编辑器控制。

SRT用逗号分隔毫秒，WebVTT用句点。把扩展名从.srt改成.vtt不算转换，应从同一个已完成任务重新读取所需格式，不会再消耗转录分钟数。

### format=srt

```
1
00:00:00,000 --> 00:00:04,200
Place the microphone near the speaker.

2
00:00:04,200 --> 00:00:09,800
Record a short test before the interview.
```

## 逐词高亮和精细剪辑，从JSON读取时间

读取JSON时加include=words，可获取当前来源提供的逐词时间戳，用于逐词高亮或选择片段。来源没有这类数据时，words返回null，具体字段见[接口文档](https://transcript1.com/zh/docs/api-reference#get-a-transcription)。

AI转录提供词的开始时间、结束时间和置信度。YouTube自动生成的字幕提供词的开始时间，结束时间由下一个词的开始时间推算。

YouTube创作者字幕，以及其他平台的字幕都没有逐词时间戳，包括X、TikTok和Bluesky的自动字幕。X字幕的来源值是x_captions。遇到words: null，界面应改用整段时间。

逐词时间不一定就是合适的剪辑点。剪之前听一下前后，避免切掉气口或发音开头。做字幕时还要把词组合成易读的短句，并在目标屏幕尺寸上检查。

### include=words

```
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?include=words" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"
```

## 导出之后，先用目标播放器检查一遍

先确认status=completed。未完成的任务返回JSON状态对象，而不是SRT、VTT或纯文本。导入字幕失败时，先排除把状态JSON保存成字幕文件的情况。

字幕时间对应提交的那份音视频。如果剪掉开头、截取中间片段或重新剪辑，要按最终视频调整时间。[内容改编工作流](https://transcript1.com/zh/use-cases/shipin-zhuan-boke-wenzhang)介绍了怎样保留片段范围，方便剪辑后对齐字幕。

发布前按正常速度播放，检查行长、阅读时间和说话人显示。[无障碍字幕指南](https://transcript1.com/zh/use-cases/zidong-shengcheng-zimu)还列出了有意义的声音和画面背景等需要人工补充的内容。语音转录本身未必包含这些信息。

保存文件时也保存转录ID。以后从SRT改用WebVTT，或需要逐词JSON，都能读取原任务，不必重新提交音视频。

## 常见问题

### YouTube视频或MP4能直接导出SRT吗？

可以。先转录视频，完成后读取format=srt。同一份转录也能导出WebVTT、纯文本和JSON；音频转 SRT也是同样的流程。

### 时间戳用秒表示吗？

JSON中的start和end是从音视频开头算起的秒数。SRT和VTT使用各自标准的hh:mm:ss时间格式。

### YouTube字幕都有逐词时间戳吗？

没有。自动生成的字幕提供每个词的开始时间，创作者字幕没有逐词时间，words为null。AI转录则提供逐词开始时间、结束时间和置信度。

### 还没转完，能先下载字幕吗？

不能。只有已完成的转录才能导出SRT、VTT和纯文本。在此之前，接口会返回JSON对象，供客户端查看任务状态。

## 相关内容

- [无障碍字幕](https://transcript1.com/zh/use-cases/zidong-shengcheng-zimu)
- [播客与视频SEO](https://transcript1.com/zh/use-cases/boke-zhuan-wenzi)
- [说话人分离](https://transcript1.com/zh/features/shuohuaren-fenli-zhuanlu)
- [API接口参考 （文档）](https://transcript1.com/zh/docs/api-reference)
