最近因为学校上网课,需要做笔记和写电子作业,这作业(ಥ_ಥ) 一句句的字幕转文字工作量大还感觉浪费时间,于是到处查找了博主的一些帖子,学习经验,尝试成功,分享给大家(✪ω✪)
1 字幕获取
①首先,打开你需要进行操作的视频(只能是有字幕的才可以提取字幕),如
https://www.icourse163.org/learn/WHU-1001717004?tid=1450259448#/learn/content?type=detail&id=1214521515&sm=1
②在视频页面按F12键,然后点击network,接着按ctrl+F会出来搜索框,然后在当前页面按F5刷新该页面(也可以点击浏览器的刷新按钮)
③在搜索框中输入:downloadVideoSrt.htm,进行搜索,然后双击搜索到的链接,右边会显示一条黄色代码,复制代码中url后的地址到浏览器中即可下载该视频的字幕文件,一般为txt文件。
2字幕处理
字幕文件默认命名videoSrt,内容如图
由图片我们可以明显看到我们不需要的是空行,序号1、2…和时间,
所以去掉这些只留下文字。
代码分享:
21是下载下来的字幕文件的重命名,2-1是处理后文件名字,可以对应修改。
# coding = utf-8
import re
def clearBlankLine():
file1 = open('21.txt', 'r', encoding='utf-8') # 打开要处理的文件
file2 = open('2-1.txt', 'w', encoding='utf-8') # 生成处理后文件
line = file1.readline()
fileContent = ""
while(line):##一行行循环处理
try: # 如果本行只有数字,则跳过本行,继续处理一下行
int(line)
line = file1.readline()
continue##跳出本次循环
except ValueError:
pass
line = re.sub(r'\d{2}:\d{2}:\d{2},\d+', '', line)
# line= re.sub(r'\d+\n', '', line)
line = line.replace("-->", "").replace("\n", "")##字符替换
fileContent = fileContent + line
line = file1.readline()
resultContent =fileContent + "\n\n"
print(resultContent)
file2.write(resultContent)
file1.close()
file2.close()
if __name__ == '__main__':
clearBlankLine()
结果如图:
处理前与处理后对比:
对于文字格式没有首行缩进和段落回车啊,只能人为处理啦
有遇到问题的小伙伴们也可以评论交流~
学习及灵感结合参考文献:
利用python去除txt文件里的空行 - 简书 https://www.jianshu.com/p/85b0d3891f00
中国大学MOOC 视频字幕获取方法_网络_weixin_33281070的博客-CSDN博客 https://blog.csdn.net/weixin_33281070/article/details/80889984?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
中国大学MOOC 视频字幕获取及处理方法_网络_晓华的博客-CSDN博客 https://blog.csdn.net/sinat_29694963/article/details/100101435?utm_source=app