SRT中英文合并Python脚本

2016/04/14

前言

从YouTube上看只有中文或英文分开的字幕,下载好视频,想要中英文字幕。可从 Getting Youtube subtitles 获取中或英文字幕,然后将其合并,即成中英文双字幕。下面是Python脚本。

'''
本脚本完成了中英文srt合并的功能
'''
import os

def srt2lis(name):
    lines = open('srt/'+name, 'r', encoding='utf-8').readlines()
    lis = []
    tmp = []
    for i, line in enumerate(lines):
        # 以\n 结尾的一个时间点
        if line == '\n':
            lis.append(tmp)
            tmp = []
        else:
            tmp.append(line)
    return lis


def hebing(name_zh):
    name_en = name_zh[:-7] + '.srt'
    out_name='out/'+name_en
    f=open(out_name,'w',encoding='utf-8')
    lis_en=srt2lis(name_en)
    lis_zh=srt2lis(name_zh)
    for i,item in enumerate(lis_en):
        print(item[0])
        f.write(item[0])
        f.write(item[1])
        for line in lis_zh[i][2:]:
            f.write(line)
        for line in item[2:]:
            f.write(line)
        f.write('\n')
    f.close()



flis=os.listdir('srt/')
if not os.path.exists('out'):
    os.mkdir('out')
for name in flis:
    print(name)
    if name[-6:-4]=='zh':
        hebing(name)