前言
网上一直都找不到网易公开课的下载工具。哎,那不如自己写一个。
我这个工具只能提取易公开课的视频,不能提取网易云课堂
- 实现了多线程功能
- 实现了提取字幕功能
- 实现了选择画质功能
- 实现了下载已合成字幕视频功能
- 添加了分集下载功能
原理
提取网站内容
在浏览器内的开发者工具的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模块可以实现
1 | import requests |
软件使用教程
可通过以下几种方式下载
方法一.通过新版课程链接进行下载
方法二.通过旧版课程链接进行下载
方法三.通过视频链接进行下载
下载选项
- 可选择多少个视频同时下载(线程个数)
- 可选择字幕和影片是否分开
- 可选择视频画质(如果原视频可以选择)
- 可分集下载,用逗号隔开
例如一共有11集,不需要下载第2集和第6集,填1,3-5,7-11
下载全部填all,下载当前视频填origin
若填写课程链接默认下载全部,视频链接默认下载当前视频
效果
家里是100M宽带,经过测试基本能达到满速