Python中如何破解M3U8格式视频的加密问题
我已经获取到下载地址,每个地址的 EXT-X-KEY 一栏有 URI 和 IV,不知道 IV 如何使用(格式如下),URI 对应的链接地址每次请求值都不同,第一次请求是 20 位,以后再请求都是 16 位的(一刷新就变,这一点很费解)。
哪位高手能给指点下,不胜感激!!!!
部分数据如下:
#EXT-X-KEY:METHOD=AES-128,URI="http://www.taiqischool.com/hls/4691/clef/7MBA448cdg9wkRR2fpuMral1orxb8TQr",IV=0x6e831511528c8da6661b90ac47cd8ea6 #EXTINF:15.080, http://ese3a5b8c0d58m-pub.pub.qiqiuyun.net/35805/a1e9236516ec48338cdb112a4687ffe8/lst1d-m6pvrxHyhn-shd_seg_0_ehls_bd9419?schoolId=35805&fileGlobalId=a1e9236516ec48338cdb112a4687ffe8&userId=15948&userName=ES1541936413 #EXT-X-KEY:METHOD=AES-128,URI="http://www.taiqischool.com/hls/4691/clef/7MBA448cdg9wkRR2fpuMral1orxb8TQr",IV=0x73ac5852b58a8153bfd448c97f96db03 #EXTINF:10.000, http://ese3a5b8c0d58m-pub.pub.qiqiuyun.net/35805/a1e9236516ec48338cdb112a4687ffe8/lst1d-m6pvrxHyhn-shd_seg_1_ehls_e59d14?schoolId=35805&fileGlobalId=a1e9236516ec48338cdb112a4687ffe8&userId=15948&userName=ES1541936413 #EXT-X-KEY:METHOD=AES-128,URI="http://www.taiqischool.com/hls/4691/clef/7MBA448cdg9wkRR2fpuMral1orxb8TQr",IV=0xf92147f6a99d8334535c625b7ce285f5 #EXTINF:10.000, http://ese3a5b8c0d58m-pub.pub.qiqiuyun.net/35805/a1e9236516ec48338cdb112a4687ffe8/lst1d-m6pvrxHyhn-shd_seg_2_ehls_9d6305?schoolId=35805&fileGlobalId=a1e9236516ec48338cdb112a4687ffe8&userId=15948&userName=ES1541936413 #EXT-X-KEY:METHOD=AES-128,URI="http://www.taiqischool.com/hls/4691/clef/7MBA448cdg9wkRR2fpuMral1orxb8TQr",IV=0xe59bb9942c2c34ee41bc09f985dd54fe #EXTINF:10.000, http://ese3a5b8c0d58m-pub.pub.qiqiuyun.net/35805/a1e9236516ec48338cdb112a4687ffe8/lst1d-m6pvrxHyhn-shd_seg_3_ehls_e40df9?schoolId=35805&fileGlobalId=a1e9236516ec48338cdb112a4687ffe8&userId=15948&userName=ES1541936413
Python中如何破解M3U8格式视频的加密问题
同求
我无法理解你的问题。
ffmpeg -i m3u8 文件地址 -c copy out.mp4 试一哈
如果你的那个 key url 下载过来是 16bytes 长那就直接是 key 了,楼上说的 ffmpeg 可以直接处理。
本质上是 aes-128-cbc 加密,用 openssl 可以手动解开
这个 key url 每次打开都是不同的 16 bytes 长的字符串,为什么?有问题么?你遇到过这种情况么?
这个是加密的,需要 key 文件,建议搜索一下 m3u8 如何解密,
说明不是简单的标准加密,视频网站前端估计还有其他处理。
我没有遇到过这种情况,你说的 key 文件,具体是指什么东西,我也反编译它的 app 了,没有看到有特殊处理这个 key url。 浏览器中拦截到的数据请求,只做了一次 key url 的调用返回的是 20 bytes 长的字符串,各位大神有遇到过类似的情况的么?有解决方法或者思路么?EridanusSora
像 所说的,这不是标准的 hls m3u8 格式,已经加了私货,不能直接用 ffmpeg 来转了。具体只能看 app 里解密逻辑了。
这个肯定是拿到 key 之后再做了其他处理得到真实的 key 了,只能是你反编译代码看看逻辑了,每个网站都不一样解决方案没有参考性。

