VTT批量转SRT(Python脚本)

在asciiwwdc下在的字幕都是vtt格式的,我本地播放的时候播放器支持srt格式字幕。网上有一些自动转的工具,但是一个个文件拖太麻烦了。早上就顺手写了一个脚本 .

srt和vtt文件有以下几点不同

  1. vtt文件第一行是 WEBVTT FILE 然后跟着一个空行
  2. srt用,分开秒和毫秒, vtt用.
  3. 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");

你可能感兴趣的:(VTT批量转SRT(Python脚本))