然后是他的m3u8的链接解密方法没变,替@#$%这四个特殊符号对应为1234,然后base64解码,然后就得到了下载链接,
就看到有的人说是这样下载不下来,这里要注意一下,新的鹅通,增加了对referer,host,origin的校验(我猜的),因为懒,我就全加上了,这个加哪里?加到m3u8的请求和ts的请求里
下面上图把,上面能说的都说了
image.png (44.61 KB, 下载次数: 0)
下载附件
2022-9-6 15:10 上传
https://encrypt-k-vod.xet.tech/9764a7a5vodtransgzp1252524126/303668865285890805998598645/drm/v.f230.m3u8?sign=abd9da59763f0e76a24b5cbeedc75e33&t=63179521&us=tIUsICQQDp&whref=*.xiaoe-tech.com,*.xiaoeknow.com,*.xeknow.com
这个是m3u8链接,下载链接,从哪里来的?
https://{appid}.h5.xiaoeknow.com/xe.course.business.video.detail_info.get/2.0.0
是在上面这个post请求里来的,请求里有两个参数,
bizData
[color=][
resource_id
[color=]]:
v_5f292836e4b000e568e1abae
bizData
[color=][
product_id
[color=]]:
p_5f28c201e4b0822d26882a00
bizData
[color=][
opr_sys
[color=]]:
[color=]MacIntel
bizData[resource_id]和bizData[product_id]这两个值就是你当前页面的网址链接里的值
https://appid.h5.xiaoeknow.com/p/course/video/v_5f292836e4b000e568e1abae?product_id=p_5f28c201e4b0822d26882a00
结果就在下面了
image.png (142.65 KB, 下载次数: 0)
下载附件
2022-9-6 15:03 上传
这里要注意,蓝圈里的是音频链接,不需要去管他,因为他是给转音频使用的,和我们无关
在这里,拿到红圈里的编码,是不是很乱?没关系,让我们用python走一趟,这里就不看js代码了,我懒,想要定位,自己搜d.a.decrypt
暂且称之为混淆吧
"W$siZGVmaW5pdGlvbl9uYW@lIjoiXHU5YWQ%XHU#ZTA@IiwiZGVmaW5pdGlvbl9wIjoiNzIwUCIsInVybCI6Imh0dHBzOlwvXC9lbmNyeXB0LWstdm9kLnhldC50ZWNoXC85NzY0YTdhNXZvZHRyYW5zZ$pwMTI@MjUyNDEyNlwvMzAzNjY%ODY@Mjg@ODkwODA@OTk%NTk%NjQ@XC9kcm@cL$YuZjIzMC5tM$U%P$NpZ#%9YWJkOWRhNTk$NjNmMGU$NmEyNGI@Y#JlZWRjNzVlMzMmdD0#MzE$OTUyMSZ@cz@0SVVzSUNRUURwJndocmVmPSoueGlhb#UtdGVjaC5jb#0sKi5%aWFvZWtub$cuY#9tLCoueGVrbm9$LmNvbSIsImlzX$N@cHBvcnQiOmZhbHNlLCJleHQiOnsiaG9zdCI6Imh0dHBzOlwvXC9lbmNyeXB0LWstdm9kLnhldC50ZWNoIiwicGF0aCI6Ijk$NjRhN#E@dm9kdHJhbnNnenAxMjUyNTI0MTI#XC8zMDM#Njg%NjUyODU%OTA%MDU5OTg@OTg#NDVcL#RybSIsInBhcmFtIjoic#lnbj@hYmQ5ZGE@OTc#M#YwZTc#YTI0YjVjYmVlZGM$NWUzMyZ0PTYzMTc5NTIxJnVzPXRJVXNJQ@FRRHAmd#hyZWY9Ki5%aWFvZS@0ZWNoLmNvbSwqLnhpYW9la#5vdy5jb#0sKi5%ZWtub$cuY#9tIn@9XQ==__ba"
image.png (232.62 KB, 下载次数: 0)
下载附件
2022-9-6 15:08 上传
解密结果:https://encrypt-k-vod.xet.tech/9764a7a5vodtransgzp1252524126/303668865285890805998598645/drm/v.f230.m3u8?sign=abd9da59763f0e76a24b5cbeedc75e33&t=63179521&us=tIUsICQQDp&whref=*.xiaoe-tech.com,*.xiaoeknow.com,*.xeknow.com
你们可以比对一下是不是和上面拿到的一样
下面开始下载了
按照我们上面所说,增加了对referer,host,origin的校验,具体哪一个,我猜是referer,懒得改,梭哈
image.png (355.57 KB, 下载次数: 0)
下载附件
2022-9-6 15:16 上传
这不就行了吗,然后获取key和VI我就不展示了,正则还是啥的你们随意
之后就是key的请求,没有任何添加剂,直接请求就行,header都不用管
然后就是ts的请求,注意,这里ts文件的请求也要携带上述的协议头
image.png (92.84 KB, 下载次数: 0)
下载附件
2022-9-6 15:20 上传
然后解密嘛,就是aes,用AES.MODE_CBC就行,因为python 的AES 对 key 和IV的要求本身就是byte类型,所以,key不需要转换成字符串,请求回来byte类型直接用
IV的话自己填充0或者就正则出来,正则出来是字符串类型,所以用 bytes.fromhex(IV)就行
AES.new(key,AES.MODE_CBC,bytes.fromhex(IV))
然后就是请求ts去解密就行,解完了保存到文件,然后就搞定了
我放一张跑出来的 ts 图
image.png (373.26 KB, 下载次数: 0)
下载附件
2022-9-6 15:28 上传
我这张图只能这么截,因为后面是中断的报错信息,哈哈哈哈,就这样可以下载了
代码自己写
使用逍遥一仙大佬的 M3U8批量下载器 的小伙子们
只要在下载->自定义协议头 里面自己把我上面说的那些个添加上,就可以下载了(我猜的,应该可以,原理一样),甚至都不需要你单独去获取key,把m3u8抓出来写上去就行
还有一点是用逍遥一仙大佬的 m3u8 下载器的时候,在自定义协议头里不要写host字段
对于只能微信小程序或者浏览器观看的同样有效
自定义协议头为以下几个:
[color=]X-Playback-Session-Id:这个随便写一个抓到的
[color=]Referer:这个貌似是统一的 https://servicewechat.com/
[color=]User-Agent:这里写抓到的包里的
大佬们别喷我,🙏
听我说谢谢你,因为有你,温暖了四季