在asciiwwdc下在的字幕都是vtt格式的,我本地播放的时候播放器支持srt格式字幕。网上有一些自动转的工具,但是一个个文件拖太麻烦了。早上就顺手写了一个脚本 .
srt和vtt文件有以下几点不同
- vtt文件第一行是 WEBVTT FILE 然后跟着一个空行
- srt用,分开秒和毫秒, vtt用.
- vtt不支持html标记(实测)
脚本
支持输入文件夹,批量替换。也可以单个文件
import os
import sys
def get_file_name(dir, file_extension):
f_list = os.listdir(dir)
result_list = []
# print f_list
for file_name in f_list:
if os.path.splitext(file_name)[1] == file_extension:
result_list.append(os.path.join(dir, file_name))
print file_name
return result_list
def change_vtt_to_srt(file_name):
with open(file_name, 'r') as input_file:
f_name_comp = os.path.splitext(file_name)[0]
with open(f_name_comp + '.srt', 'w') as output_file:
for line in input_file:
if line[:6] != 'WEBVTT':
output_file.write(line.replace('.', ','))
if __name__ == '__main__':
args = sys.argv;
print(args)
if os.path.isdir(args[1]):
file_list = get_file_name(args[1], ".vtt")
for file in file_list:
change_vtt_to_srt(file)
elif os.path.isfile(args[1]):
change_vtt_to_srt(args[1])
else:
print("arg[0] should be file name or dir");