SRT中英文合并Python脚本

前言

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'''
本脚本完成了中英文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)
0%