CSV 字幕格式
这种格式能表达什么
- 文本样式
- 仅纯文本
- 屏幕定位
- 否
- 卡拉 OK 计时
- 否
- 字幕条内换行
- 是
- 时间轴
- 每条字幕都有开始与结束时间
- 时间精度
- 1 毫秒
- 时间以帧号存储
- 否
- 从右到左的文字
- 是
示例
一份典型的 CSV 文件,以及从里面读出了什么
文件
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
从中读出了什么
3 cues, 4 lines of text
00:00:01.000 → 00:00:03.500
The quick brown fox.
00:00:04.000 → 00:00:06.250
Jumps over, the lazy dog.
00:00:07.000 → 00:00:09.000
Two lines here.
And a second one.
Outside the cues:
header start,end,text
delimiter ","右栏不是转换后的文件,而是本站从左栏读出来的内容,也是这份文件进行任何转换时的起点。
一份别扭的 CSV 文件,仍然读出了什么
文件
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
从中读出了什么
4 cues, 4 lines of text
00:00:01.000 → 00:00:04.000
Hello there, friend.
00:00:05.000 → 00:00:07.000
Second line.
00:00:10.000 → 00:00:10.001
End before start.
00:00:12.000 → 00:00:14.000
Unquoted comma in text, right here.
Outside the cues:
header id,start,end,note,text
delimiter ","
Reported while reading — repaired or skipped, never silently:
1 × rows whose start time could not be read (they were skipped)
1 × cues whose end time was not after their start time (they were given a 1ms duration)真实文件里常见 BOM、Windows 换行、时间码前多一行、时间码根本读不出来。这些都不会抛异常:读不懂的部分会被报告,而不是悄悄丢掉。
把 CSV Spreadsheet 转成其他格式
每一个都完全在你的浏览器里运行。标签标明了那个方向要付出什么代价,打开之前就能看到。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
转换为此格式
- SubRip (SRT) → CSV Spreadsheet
- WebVTT (VTT) → CSV Spreadsheet
- Advanced SubStation Alpha (ASS) → CSV Spreadsheet
- SubStation Alpha (SSA) → CSV Spreadsheet
- YouTube SBV → CSV Spreadsheet
- SAMI (SMI) → CSV Spreadsheet
- LRC Lyrics → CSV Spreadsheet
- MicroDVD → CSV Spreadsheet
- TTML (Timed Text) → CSV Spreadsheet
- SubtitleMatrix JSON → CSV Spreadsheet
- Plain Text (TXT) → CSV Spreadsheet
这一页是 CSV 字幕格式的说明页:它能存什么、不能存什么,以及本站能从它转出的 11 种格式。CSV 不是播放器直接打开的字幕文件,而是把字幕摊成一张表:第一行是表头,之后每行一条字幕,字段是起始时间、结束时间和正文。
它存的只有时间与文字。起始和结束都写到毫秒,形如 00:00:04.126;正文里可以带硬换行,整个单元格用双引号包起来,逗号也只在引号里才不会被当成列分隔。除此之外没有样式、没有定位、没有卡拉OK 计时——一张表格装不下“怎么画”,只能装“第几秒到第几秒说什么”。
表格正是它存在的理由:字幕要交给别人校对、批量改时间,或者在 Excel 或 Google Sheets 里过一遍时,CSV 是人和软件都能读的形状。代价是这一趟往返会改掉一些东西,时间码的小数位、丢失的引号、被拆成两格的逗号,所以转换前后的核对不能省。
站内的转换全部在浏览器里跑,文件不上传、不用注册,一份保密协议下的素材或未播出的节目单也一样。可以一次拖入整季,串行处理,最后打包成一个 ZIP 下载。
常见问题
CSV 字幕文件里,一行代表什么?
一行是一条字幕,第一列是起始时间,第二列是结束时间,最后一列是正文;表头行可以写成 start,end,text,也可以带一个 id 列给每条编号。时间写到毫秒,例如 00:00:04.126。
CSV 字幕能存样式或屏幕位置吗?
不能。它存的是一条字幕的两个时间和文字,一个单元格里放不下“用什么字体、画在画面哪里”。留在单元格里的标签只会被当成普通字符读出来,不会被当成格式。
CSV 里的时间码精度到哪一位?
到毫秒,写成 00:00:04.126 这样。这个数是精确的,一条字幕可以很短、很长,也可以和下一条重叠,CSV 本身不会替你做任何取舍。
CSV 转成哪些字幕格式不会丢东西?
SRT、VTT、SBV、SMI、TTML 与 JSON:CSV 能表达的每一件事,这六种格式都能装下。上方的能力表就是判据,两侧都写“是”的那一项才会无损地过去;其余方向都会丢东西,每一页自己列清单。
CSV 单元格里的逗号和换行要怎么转义?
用双引号把整个单元格包起来:引号里的逗号不会被当成列分隔,引号里的换行会留在同一格里,也就是同一条字幕的第二行。读的时候按同一套规则拆回来。
在 Excel 里改完再存成 CSV,会弄坏什么?
表格软件会按自己的习惯重写时间码:末尾的零可能被去掉,小数位可能变少,原本靠引号保护的逗号可能被重新拆格。读回来时本站会尽量把被拆开的时间码拼回去,但改动过的时间仍然值得抽查一遍。