去除字幕 HTML 标签
或者粘贴字幕文本
选项
一个框,七个选项,每个选项都有自己的页面。斜体、粗体、下划线和颜色只去掉对应的那一种区间,行内其他样式不动。全部 会去掉工具建模的所有区间 —— 那四种加上卡拉 OK 计时 —— 文本里的其他内容保持原样。HTML 做同样的事,并额外清掉解析时因为不被建模而留在文本里的尖括号标记,比如 VTT 的 <v Bob> 说话人标签和 <c.className>。ASS 则改为清掉覆写块,即解析时未能识别的 {...} 代码,比如 {\fad(500,500)}。这一页会把框填成标题里点名的选项,并且不列出其他选项。
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这一页把标记从字幕文字里拿走:文件携带的每一种样式区间,加上残留文字里的尖括号标签。回来的是朴素可读的对话——文字、时间与别的什么都没有。文字里还留着一堆东西时用它:说话人标签、类标签,或者行中间一个孤零零的闭合标签。
后半句正是它与“清除全部格式”并存的原因。工具建模了它认识的四种强调标签,其余的原样留在发现它的地方——读文件时这是对的,悄悄吃掉不认识的标记等于丢数据。但这也意味着带着 `<v Bob>` 的 WebVTT 文件经过站内每一次清理都会保留那个标签,而经过 OCR 或手工编辑的文件,行中间常常有一个配不上对的闭合标签。这一页负责扫掉它们,标题里也这么写。
扫描的范围刻意很窄:只删形状像标签的东西——左括号后面紧跟一个字母或一个斜杠。台词里的比较 `5 < 10` 与一个 `<3` 的笑脸完全不动,因为更宽的规则会把两个括号之间的词删掉,产物里看不出它做过。没有建模的东西不去猜。
文件不上传,在浏览器标签页里读写。本来就是纯文本的文件逐字节返回,这也是确认“你怀疑存在的隐形标记是否真的存在”最便宜的办法。
示例
带说话人标签与类标签的 WebVTT 文件
输入
WEBVTT
00:00:01.000 --> 00:00:02.000
<v Bob><c.yellow>Hello there</c>
00:00:03.000 --> 00:00:04.000
<i>She left</i> <ruby>東京<rt>とうきょう</rt></ruby>.
输出
WEBVTT
00:00:01.000 --> 00:00:02.000
Hello there
00:00:03.000 --> 00:00:04.000
She left 東京とうきょう.
说话人标签、类标签、斜体与 ruby 注音全部走了,留下文字。第二条 cue 值得看:`<rt>` 里的读音是文字而不是标记,所以它留下来——产物里假名与汉字并排,和播放器显示的一样。
比较符号不是标签
输入
1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1
2
00:00:03,000 --> 00:00:04,000
<3 you
输出
1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1
2
00:00:03,000 --> 00:00:04,000
<3 you
什么都没删,这是这一页最要紧的一半。扫描只碰形状像标签的东西,也就是左括号后紧跟字母或斜杠;数学比较与一个由小于号拼成的心形都原样留下,两个括号之间的文字也一样。
常见问题
这一页和“清除全部格式”差在哪?
这一页先做那件事,再往前走一步:在删掉工具建模的强调区间(斜体、粗体、下划线、颜色、卡拉 OK)之后,还扫掉留在文字里的尖括号标签——说话人标签、类标签、ruby 标记、残留或配不上对的闭合标签。文件里本来没有这类标记时,两页产物相同。
哪些标签会被扫掉,哪些留下?
形状像标签的都删:左括号后紧跟一个字母或一个斜杠,直到下一个右括号。左括号后面是别的东西就不碰,所以 `5 < 10 and 3 > 1` 与 `<3` 原样通过。窄是有意的:更宽的规则会删掉两个括号之间的台词,而且产物里不留痕迹。
删掉标签时,标签里的文字会一起没吗?
看里面是什么。标签自身的属性跟着标签走;被删标签内部嵌套的内容也会消失,而 ruby 注音里的读音是文字,标记没了它仍留在行里。绝不会发生的是删掉两个括号之间的普通台词,因为那不是标签的形状。
ruby 注音里的假名为什么留下了?
因为 `<rt>` 里装的是读音文字,不是标记。标记被扫掉后它作为普通文字留在汉字后面,和播放器原本显示的一致——这一页删标记,不删读得出来的内容。
标签扫掉后播放器里还正常吗?
更可靠。WebVTT 容忍配不上对的闭合标签,但一个缺右括号的说话人标签在某些播放器里会把整行吞掉,不同播放器对陌生标签的解释也不一致。纯文本没有这种歧义,面向会覆盖样式的平台时,清理比带样式更稳。
能只清残留标记、保留斜体吗?
不能,顺序是先删强调区间再扫标记。这个顺序不是随意的:删标记会让文字变短,之后每个区间都要重算才能继续指向正确的字符;两件事一起做才保证结果精确,所以这里没有中间档。