跳到主要内容
SubtitleMatrix

VTT 转 TXT

格式转换WebVTT(VTT)
或者粘贴字幕文本

这次转换会改变什么

有 4 项会被丢弃或需要你决定

  • 时间

    整条时间轴(输出格式完全不记录时间)

  • 样式

    全部样式(粗体、斜体、颜色、描边、阴影)

  • 换行

    换行(多行字幕条会被合并成一行)

  • 格式专有内容

    源格式保留在字幕条之外的内容(非字幕块、文件头文字、单条字幕的设置、被注释掉的事件)——目标格式没有地方存放它们

这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。

把 WebVTT 导成纯文本,多半是为了拿去做校对、翻译底稿,或丢进文档工具里。产物只有台词,一行字幕的一行就是文本的一行。

时间轴一点不留:TXT 里没有位置放时间码,也没有序号。顺序会保住——第 40 行还是第 40 行——但产物不再说明任何一句什么时候上屏。样式同样全部丢掉:`<b>`、`<i>`、`STYLE` 块里的规则都没有落点,每一行都是纯文本。

还有一个容易忽略的损失:cue 的分组关系。WebVTT 里两行的字幕是一条 cue,转成 TXT 后两行都写出来、一上一下,但文件不再说明它们属于同一条。如果之后还要过一遍翻译或重新对轴的工具,它会读成两条字幕,而不是一条。`WEBVTT` 头部、`NOTE`/`STYLE`/`REGION` 块与 cue setting 也一并丢弃,这部分在有损说明里单独列出。

输出固定 UTF-8、Unix 换行、无 BOM。整季文件一次拖入,串行、可取消、打成一个 ZIP;所有处理都在浏览器里完成,文件不上传。

示例

一份典型的 VTT 转成 TXT

输入

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

输出

Hello there.
Second line with italics.

这份产物丢掉了时间轴、样式、换行与格式私有内容;其余部分逐行一致。

同一转换遇到一份不规范但可读的输入

输入

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

输出

No header, two lines before the timecode.

真实文件里常见的损坏:混合换行、散落的空白、留空的字段。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

VTT 转 TXT 后时间码去哪了?

没有地方放,全部丢弃。纯文本导出只有字,没有时刻;顺序会保留,所以第 40 行还是第 40 行,但产物不再说明任何一句什么时候上屏。

VTT 里两行的字幕转成 TXT 后还是一条吗?

两行都会写出、一上一下,但文件不再说明它们属于同一条。TXT 没法把行分组进一条 cue,之后若有翻译或重新对轴的工具来读,会看成两条字幕而不是一条。

VTT 转 TXT 会保留粗体、斜体和颜色吗?

不会。TXT 不存任何样式,`<b>`、`<i>`、`<font color>` 以及 `STYLE` 块里的规则都没有落点,每一行都写成纯文本;文字本身不受影响。

VTT 的 NOTE、STYLE、REGION 块在 TXT 产物里还有吗?

没有。TXT 只有行,没有头部、块语法或 cue setting,`WEBVTT` 那一行、注释块、样式块、区域定义与 `align`、`position` 都带不过去。

VTT 转 TXT 后顺序会变吗?

cue 会按开始时间排序,乱序文件会被排好,然后逐行输出。行内的顺序不动,所以整体读起来仍是原来的台词顺序。

VTT 转 TXT 的产物适合做什么?

适合当校对稿、翻译底稿,或导入文档工具;它只有文字与顺序,没有时间轴。反方向 TXT 转 VTT 会丢掉时间轴——这一方向丢掉的样式与分组,转回去也补不回来。

相关工具