跳到主要内容
SubtitleMatrix

SRT 转 CSV

格式转换SubRip(SRT)
或者粘贴字幕文本

这次转换会改变什么

这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。

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

这一页把字幕写成一张表格:三列,表头是 start、end、text,一条字幕一行。适合按时间排序、找重叠、批量改文本,或者把数据交给更习惯表格的人。

时间码用点而不是逗号——00:00:04.126——因为逗号是字段分隔符,原样的 SRT 时间码会把一行断成三列并让后面的列整体错位。含逗号或换行的文本会加引号,因此一条两行字幕仍是一行记录,换行留在被引用的单元格里。

起止时间都写进表里,所以这个方向不丢东西,而且是可逆的:CSV 转 SRT 那一页会按表头读回列名,排序、改时间、修错字、加一行都能接回字幕流程。

批量转换与零上传:多个文件串行处理、可取消,结果打包成 ZIP;所有计算都在浏览器里完成。SRT 的编号没有对应列,会被丢弃;行序就是顺序,读回时编号会按起始时间重新生成。输出统一为 UTF-8、Unix 换行、无 BOM,文件始终在本机处理。

示例

一份典型的 SRT 文件转成 CSV

输入

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

输出

start,end,text
00:00:01.000,00:00:03.500,Hello there.
00:00:03.500,00:00:06.000,"<i>Whispering</i> now.
And a second line."
00:00:06.000,00:00:09.250,<b>Bold</b> statement.

这个方向没有丢东西:起止时间与文字都在表里,逐行对照即可。

同一转换遇到一份脏文件

输入

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

输出

start,end,text
00:00:01.000,00:00:03.500,<b>Bold</b> and <i>italic</i>.
00:00:03.500,00:00:06.000,
00:00:08.000,00:00:09.000,Last one.

脏文件里的空行与多余空白不会改变列数;解析器先修好条目,再按同一套 CSV 规则写出。

常见问题

SRT 转 CSV 后表头是哪三列?

start、end、text,顺序固定。读取方按表头认列,所以表头本身是这份表格能被读回去的关键。

SRT 转 CSV 的时间码为什么用点不用逗号?

因为逗号是字段分隔符。原样的 00:00:01,000 会被拆成两列,整行错位;改成 00:00:01.000 才能不靠引号就保持一列。

SRT 转 CSV 时一条两行字幕会变成两行吗?

不会。仍是同一行的 text 单元格,换行留在被引号包住的字段里,表格软件显示为一格两行。

SRT 转 CSV 会丢时间轴吗?

不会。每条字幕的起止时间都在表里,所以这个方向无损,而且能把表改完再转回 SRT。

SRT 转 CSV 后排序或改时间会影响转换吗?

不会。CSV 转 SRT 按表头读列、按起始时间重排;排序、改时间、加行删行都可以在表格里完成。

SRT 转 CSV 后原来的字幕编号去哪了?

丢弃。表格用行序表示顺序,编号不再是数据;读回时按起始时间排序,编号会重新生成。

相关工具