VTT 转 TXT
或者粘贴字幕文本
这次转换会改变什么
有 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 会丢掉时间轴——这一方向丢掉的样式与分组,转回去也补不回来。