当前位置:首页 >> 破解资源

关于Classin网课回放的下载研究(2022.07)


本文仅供学习交流,请勿用于任何违法行为,转载时请注明出处
Classin是我见过的这些网课平台里面较为优秀的一个,不仅有自习室,老师上课还有很多功能可以使用
关于抓包问题,下面是我个人的探索经验,总结一下
问题起源
网课期间学校使用Classin平台上网课响应国家号召,但是我发现学校会删除一个星期前的网课视频来节省存储空间
(毕竟classin是个收费平台),无法进行以前课程的二次复习,这我就觉得很无奈,于是就想着抓包尝试下载
问题解决过程
当时在Windows端下载时,用Fiddler抓包发现根本没用(win7 win10我都测试过没用),下载了半天发现根本没用,只好转到万能的安卓端下载
(后来才发现Classin根本不走代{过}{滤}理)
我最现在我自己的手机上测试,我用的是没有ROOT的手机,在安卓上用HTTPCanary抓包发现Classin抓包抓不到什么东西,唯一的一个网址还是测试网址 sayhello
而且播放页面还会提示加载失败
  关于Classin网课回放的下载研究(2022.07)

IMG_20220727_091340.png

关于Classin网课回放的下载研究(2022.07)

IMG_20220727_091353.png


后来在抓包错误区发现是自己的设备已经是安卓7了,不信任HttpCanary的根证书,后面用ROOT的手机才抓到了包
(默认会提示Handshake failed,原因是根证书不被信任),去异常区才发现又有这么多包失败
  关于Classin网课回放的下载研究(2022.07)

IMG_20220727_091605.png

关于Classin网课回放的下载研究(2022.07)

IMG_20220727_091243.png


问题解决方法
注意了
Classin抓包要ROOT!!
(手机不方便ROOT的可以在电脑上使用网上的安卓模拟器,这个可以自行百度,能用ROOT就行)
(自己试过平行空间,发现根本没用,抓的东西还是跟主机一样的没用)
其次,因为安卓7以后系统默认不再信任用户安装的CA证书,要将HTTPCanary的根证书移动至系统CA,具体过程看图
   关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-113314.png

关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-113331.png

关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-113337.png


>如果你是手机端4.4.5之前的版本
本人亲测就算你添加到了系统CA,进入播放页面还是没有什么东西,网课视频还是加载不出来
但后面发现这个网课链接不是m3u8,而是就像B站那样的直接视频链接+ 204 partial content模式,看多少请求多少文件
但我们可以绕过最开始的握手,就是先播放了一段时间后,再打开抓包,回到Classin播放后,就可以获得网课链接了
注意先不要开抓包播放一段时间后,再开抓包回到播放页调到视频结尾(让应用请求新视频),加载完成之后就可以去抓包去看结果了
关于Classin网课回放的下载研究(2022.07)

Screenshot_20220727-092710.png

关于Classin网课回放的下载研究(2022.07)

Screenshot_20220727-092732.png


下载方面,随便把链接拖到浏览器里或是IDM直接下载就可以了
(注意下载的时候要把亲测要把抓包软件关掉,否则只会报错无响应)

>如果你是手机端4.4.5以后的版本
那就方便多了,新版本貌似没有那么严格的请求机制,这是我最近几次才发现的,最近新版本甚至能抓到出网课数据结构的json
能够直接下载
直接打开HTTPCanary 打开Classin 》》 点击你要下载的网课视频》》 等待加载一段时间会提示加载失败,没事,这时候就可以去抓包去看看结果了
(虽然网课视频还是无法加载)(我也不知道为啥)
嫌麻烦的可以吧版本更新到最新版本,可以直接抓取
(注意下载的时候要把亲测要把抓包软件关掉,否则只会报错无响应)
关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-120524.png

关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-120613.png

关于Classin网课回放的下载研究(2022.07)

Screenshot_20220807-121216.png


这是我抓到的json文件包(部分隐私信息已经屏蔽)
里面的内容还是很详细的,但我们主要是要网课链接
[JavaScript] 纯文本查看 复制代码
{    "data": {        "lessonId": "476634xxxxx",        "lessonName": "2022B四月份网课 xxx班数学(1/8)",        "lessonData": {            "lessonStatus": 1,            "vodList": [            ],            "fileList": [                {                    "CIDExt": "",                    "CreateTime": "2022-04-19 09:43:10",                    "Duration": 7201,                    "EndTime": "2022-04-19 09:43:06",                    "FileId": "387702302xxxxxxx",                    "FileName": "",                    "Message": "Operation succeeded",                    "Playset": [                        {//注意这里的PlaySet就是网课视频的地址 playback.eeo.cn域名// 还有默认抓到的包里是有反斜杠转义符的 比如https:\/\/playback这种,注意要把反斜杠去掉                            "Definition": "0",                            "Url": "https://playback.eeo.cn/794b4a11vodbj125241xxxx/xxxxxxxxxxxxxxxxxxxx/f0.mp4"                        }                    ],                    "Size": "293289461",                    "SourceType": 0,                    "StartTime": "2022-04-19 07:43:08",                    "Status": "2"                },                {                    "CIDExt": "",                    "CreateTime": "2022-04-19 10:12:48",                    "Duration": 1780,                    "EndTime": "2022-04-19 10:12:44",                    "FileId": "387702302xxxxxxxxxx",                    "FileName": "",                    "Message": "Operation succeeded",                    "Playset": [                        {                            "Definition": "0",                            "Url": "https://playback.eeo.cn/794b4a11vodbj1252xxxxx/aadfd0eexxxxxxxxxxxxxxx/f0.mp4"                        }                    ],                    "Size": "82364417",                    "SourceType": 0,                    "StartTime": "2022-04-19 09:43:06",                    "Status": "2"                }            ]        },        "lessonStarttime": "1655595600",        "lessonEndtime": "1655604600",        "courseLogo": "",        "courseName": "2022B四月份网课 xxx班数学(1/8)",        "courseIntroduce": "",        "lessonIntroduce": "",        "schoolLogo": "/upload/images/20190425/24a56ee4xxxxxxxxxxx.png",        "schoolName": "网课1区",        "showClassVideo": "1",        "avoidRecordReplay": "0",        "teacherId": "5086xxxx",        "teacherName": "xx",        "teacherAvatar": "",        "teacherBio": "",        "chatroomStatus": "0",        "playNum": 0,        "likeNum": 0,        "onlineNum": 0,        "lessonCode": 1,        "lessonStatus": 1,        "userType": 1,        "lessonType": "1"    },    "error_info": {        "errno": 1,        "error": "程序正常执行"    }}