中国大学MOOC 视频字幕获取及处理方法

最近上课需要做笔记,但是,一句句的抄字幕工作量有点大,于是查找了一此方法,尝试成功,在此记录下下:

1、首先,打开你所要下载字幕的视频,如 https://www.icourse163.org/learn/NUDT-1003101005?tid=1003312002#/learn/content?type=detail&id=1004836185&sm=1

2、在当前页面按F12键,然后点击network,接着按ctrl+F会出来一个搜索框,然后在当前页面按F5刷新该页面(也可以点击浏览器的刷新按钮)

3、在搜索框中输入:downloadVideoSrt.htm,进行搜索,会得到如下结果,双击搜索到的链接,右边会显示一条黄色代码,复制url后的地址到浏览器中即可下载该视频的字幕文件,一般为txt文件。

4、得到字幕之后,将其重命名为如下格式:

例如,将(2)所示课程对应的字幕文件重命名为3-3-1.txt,表示第3讲第3小节的第一个视频字幕文件(本小节共有2个视频),字幕内容如右所示,接下来我将用python提取其中的字幕,去掉其他部分。具体程序如下:

import re

jiang = 3     # 定义是第几讲
xiaojie = 1   # 定义是第几小节课
fileNum = 2     # 定义本节共有几个视频文件,将这些文件中的字幕提取到一起

resultContent = "第"+str(jiang)+"讲-第"+str(xiaojie)+"节\n"
newFile = "E:\\new\\第" + str(jiang) + "讲-第" + str(xiaojie) + "节字幕.txt"
print(newFile)
fnew = open(newFile, "w+", encoding="utf-8")
for i in range(1, fileNum+1):
    fileName = str(jiang)+"-"+str(xiaojie)+"-"+str(i)+".txt"
    oldfile = "E:\\source\\" + fileName
    f = open(oldfile,encoding="utf-8")
    line = f.readline()
    fileContent = ""
    while(line):
        try:    # 如果本行只有数字,则跳过本行,继续处理一下行
            int(line)
            line = f.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 = f.readline()
    resultContent = resultContent + fileContent + "\n\n"

print("resultContent" + resultContent)
fnew.write(resultContent)

f.close()
fnew.close()

简单处理后的结果如下:

同时会将每一小节的输出内容写入txt文档中,保存在E:\new路径(也可以另外指定其他路径)下,然后将本讲的所有小节内容手动将其复制到word中(因为python自动生成wrod文档的话会出现格式问题)。

若在下有可以帮到的地方或您有更好的优化方法,欢迎留言建议。

  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值