28365365体育

网易公开课下载器,支持多线程,可分别下载视频及字幕

网易公开课下载器,支持多线程,可分别下载视频及字幕

前言 网上一直都找不到网易公开课的下载工具。哎,那不如自己写一个。 我这个工具只能提取易公开课的视频,不能提取网易云课堂

实现了多线程功能

实现了提取字幕功能

实现了选择画质功能

实现了下载已合成字幕视频功能

添加了分集下载功能

原理提取网站内容在浏览器内的开发者工具的Console内输入__NUXT__.state.movie.moiveList可获取影片列表

index:视频列表索引__NUXT__.state.movie.moiveList视频列表__NUXT__.state.movie.moiveList[index].title视频名称__NUXT__.state.movie.moiveList[index].mp4SdUrl标清视频链接__NUXT__.state.movie.moiveList[index].mp4HdUrl高清视频链接__NUXT__.state.movie.moiveList[index].mp4ShdUrl超清视频链接__NUXT__.state.movie.moiveList[index].mp4ShareUrl手机观看视频链接(包含字幕)

__NUXT__.state.movie.moiveList[index].subList字幕列表__NUXT__.state.movie.moiveList[index].subList[inx].subName字幕语言__NUXT__.state.movie.moiveList[index].subList[inx].subUrl字幕链接

然后用Python的Selenium模块通过运行js脚本提取data = driver.execute_script("return <__NUXT__命令>")

下载模块用requests模块可以实现

123456789101112131415161718192021222324import requestsimport timedef downloadFile(url,path, name): r = requests.get(url, stream=True,verify=False) length = float(r.headers['content-length']) f = open(path+name, 'wb') count = 0 count_tmp = 0 time1 = time.time() for chunk in r.iter_content(chunk_size=512): if chunk: f.write(chunk) count += len(chunk) if time.time() - time1 > 2: p = count / length * 100 speed = (count - count_tmp) / 1024 / 1024 / 2 count_tmp = count print(name + ': ' + formatFloat(p) + '%' + ' Speed: ' + formatFloat(speed) + 'M/S') time1 = time.time() f.close()def formatFloat(num): return '{:.2f}'.format(num)

参考链接

软件使用教程可通过以下几种方式下载

方法一.通过新版课程链接进行下载范例网页

方法二.通过旧版课程链接进行下载范例网页

方法三.通过视频链接进行下载范例网页

下载选项

可选择多少个视频同时下载(线程个数)

可选择字幕和影片是否分开

可选择视频画质(如果原视频可以选择)

可分集下载,用逗号隔开例如一共有11集,不需要下载第2集和第6集,填1,3-5,7-11下载全部填all,下载当前视频填origin若填写课程链接默认下载全部,视频链接默认下载当前视频

效果家里是100M宽带,经过测试基本能达到满速

项目源码Github项目

软件下载Github发布页微云下载喜欢的话多给Github项目star和点评吧!!

相关推荐

酒吧打碟一个月工资一般是多少?
365教育平台官网

酒吧打碟一个月工资一般是多少?

📅 2025-07-01 👁️ 1888
手机安装包在哪个文件夹
365教育平台官网

手机安装包在哪个文件夹

📅 2025-06-27 👁️ 7625
最全对比:2025年16款主流财务管理平台推荐
365教育平台官网

最全对比:2025年16款主流财务管理平台推荐

📅 2025-06-29 👁️ 8214
手机邮箱怎么弄
365bet足球网

手机邮箱怎么弄

📅 2025-06-29 👁️ 6179