目标
在下载u3m8有时会通过
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="--",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="--",URI="---"
来加入vtt格式字幕,而且其可能是分段的。为了将字幕格式转换为更通用的版本(如srt),需要将其做一些处理并拼接。
主要处理如下:
- 去掉文件头部的vtt相关信息(可能不止一行)
- 如果没有标识顺序的 编号,补上
- 识别时间轴,将’.‘替换为’,’
代码
一个非常麻烦的代码如下。
def vtt2srt(vtt_str: str, s_num: int = 0): # 传入vtt的文本内容和上一个字幕片段的最大序号(默认为0,即从1开始编号)
x = vtt_str
if x[0:6] == 'WEBVTT': # 去除文件头信息
x = x.split('\n\n')
x.pop(0)
x = ''.join([i + '\n\n' for i in x]