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");

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 82,556评论 9 458
  • 各大字幕组常用的时间轴软件:time machine(人人)、popsub(凤凰天使)、aegisub,简单的字幕...
    朱细细阅读 29,661评论 3 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 116,449评论 15 132
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    O感悟人生O阅读 9,647评论 2 32
  • 此时此刻、异常的困 此时此刻、身无床榻 此时此刻、不闻来音 说睡眠太短 时间过八 说夜里多梦 梦已模糊 说春困...
    鐘玥阅读 154评论 1 2