从某浪买了些课从app看不方便,加上视频课程快过期了,下载到电脑上永久保存更方便随时观看。想办法抓包获取一下,下面分享一下导出下载到本地的方法。
首先准备下抓包工具:fildder,fildder安装这里就不讲了,默认您已会使用fiddler,不会的话可以单独联系我。为方便抓包这里就直接用电脑版操作。先打开fiddler,再打开学浪PC版,这时fiddler中会出现很多包了。
注意这里:api.iyincaishijiao.com/ep/student/learn_data_v2/?,这个请求返回的就是帐号下所有课程的json信息。我们来格化式一下会更好阅读一些。
我们随便点击一门课程看一下请求信息:
找到请求地址:api.iyincaishijiao.com/ep/course/lessons/?course_id,我们再来格式化下json信息,可以看到这是具体每集的课程信息。
接下来尝试获取视频信息了。我们随便找一集视频点击播放一下,可以看到关键信息在这里,api.iyincaishijiao.com/ep/cell/detail/?
这里稍微复杂一点点,返回的json信息中先获取到play_auth_token的值,先base64解密一下。
然后利用得到的GetPlayInfoToken值去请求。
如下:https://vod.bytedanceapi.com/?Action=GetPlayInfoToken的值
这时就可以请求到m3u8的播放地址了:
请求后得到的返回数据是加密的,这里就是重中之重了。
解密js的过程就不说了,直接白话一下解密方法:先获取冒号之前的数值,此值后16位+前16位就是aes加密的key值,后16位为aes加密的iv值,key和iv值都有了,再获取冒号后的数值做为加密字符串,进行aes解密,得到的字符串就是m3u8的key值。
得到解密的key值后就可以使用m3u8工具正常下载视频了,手动操作太麻烦了,利用上面获取到的信息可以写成个自动化的工具就方便多啦。