大佬教程收集整理的这篇文章主要介绍了B站英文教学视频的字幕获取 学习必看!,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最近在B站看一些纯英文的课程,视频课程有的是纯中文字幕的,有的是纯英文字幕的。由于英文的重要性,一份字幕的文档在我们观看后,留着日后粗略再读是很有益处的。但是为了得到这个英文字幕走了许多弯路。最开始竟然用在线AI视频转文本的方式,用了九锤听写(效果相对好),i笛云听(效果相对差)。最后才发现,B站的字幕很多时候都是一个json文件。那我们可以获取这个文件,用python将它的conent(字幕)提取出来,做一个文本文件。
01.cc字幕是视频下方黑底白字的那一栏,如果没有则不可以下载 02.我们先点开一个有cc字幕的视频,首先关闭cc字幕,并打开调试台(右键点击检查 or F12)的 Network
03.因为一个视频有很多的东西需要传输,这里Network存在很多条信息,我们点击clear让他少一点,之后点击开启字幕,让他传输字幕json文件来,我们发现下面突然出现一个json文件 04.双击json文件,ctrl+A全部复制,并粘贴到一个.txt文件中,后改后缀为.json打开视频,并开启字幕,打开控制台的 Network,在Filter里键入json,点击刷新视频即可。
我们将需要转换的json文件都放到一个新建的文件夹下,这个文件夹里只有json文件,并且不存在子文件夹。路径名称需要全部英文。
import json
import os
def convert_json_to_txt(json_files_path):
json_files = os.listdir(json_files_path) #返回该路径下的json文件列表
txt_files_path = os.path.join(json_files_path, 'txt') #拼接出在json文件夹中的子txt文件夹
isExists = os.path.exists(txt_files_path) #判断这个文件存不存在 不存在建立相应的文件夹 txt
if not isExists:
os.mkdir(txt_files_path)
for json_file in json_files:
file_name = json_file.replace(json_file[-5:], '.txt') #改变转换后字幕的后缀 .json是5个字符
file = '' # 这个变量用来保存数据
i = 1
# 将此处文件位置进行修改,加上utf-8是为了避免处理中文时报错
with open(os.path.join(json_files_path, json_filE), encoding='utf-8') as f:
datas = json.load(f)# 加载文件数据 json.load()将josn文件对象转换为python字典对象
f.close()
for data in datas['body']:
content = data['content'].replace('n',' ') # 获取字幕内容 并去除掉里面莫名其妙的换行
file += content + ' ' # 加入字幕文字
# 5句话换一行
if i % 5 == 0 :
file += 'n'
i += 1
with open(os.path.join(txt_files_path, file_name), 'w', encoding='utf-8') as f:
f.write(filE) # 将数据写入文件
if __name__ == '__main__':
json_folder_path = 'F:\Code\json\Json' #json字幕文件的路径(注意路径的格式)
convert_json_to_txt(json_folder_path)
os.listdir('C:\')
['$360Section', '$Recycle.bin', '$WinREAgent', 'AMD', 'Documents and SetTings', 'DumpStack.log.tmp', 'hiberfil.sys', 'hp', 'inetpub', 'Intel', 'KRECYCLE', 'pagefile.sys', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'QMDownload', 'Recovery', 'SDKTemp', 'swapfile.sys', 'SWSetup', 'System Volume Information', 'SYSTEm.SAV', 'Users', 'Windows', 'Windows.old']
os.path.join('C:\','txt')
'C:\txt'
os.path.join('C:\a','txt')
'C:\a\txt'
os.path.exists('C:\a\txt')
false
参考 简书 攻城老湿 csdn pengjunlee 使用Python解析JSON
以上是大佬教程为你收集整理的B站英文教学视频的字幕获取 学习必看!全部内容,希望文章能够帮你解决B站英文教学视频的字幕获取 学习必看!所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。