最近发现的M3U8下载新方式(2022)

查看 136|回复 11
作者:kimwamtung   
具体是什么平台,什么版本的就不方便直说了,大家看url吧
[JavaScript] 纯文本查看 复制代码http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648272254443X1400514&device=desktop
原本我是按照下面帖子的方法进行解密32位的下载key的,基本完成了90%了,已经可以算出seed_const了。
https://www.52pojie.cn/thread-1585958-1-1.html
只要使用seed_const的md5前16位作为解密密钥,固定字符串AQIDBQcLDRETFx0HBQMCAQ==作为解密vi,就能解密32位的下载key。
但是到了这一步,发现解密下载key失败,解密密钥错误,我以为是自己的程序写错了,又使用了论坛大牛们开发的密码工具箱来解密,
虽然能解密出16位下载key,但是在下载工具下载时候提示解码失败,key不正确。


quBSr6.png (128.43 KB, 下载次数: 0)
下载附件
2022-3-26 13:33 上传



quBERA.png (24.9 KB, 下载次数: 0)
下载附件
2022-3-26 13:33 上传

我觉可能是加密方式改了,于是发了求助帖子
https://www.52pojie.cn/thread-1607458-1-1.html
https://www.52pojie.cn/thread-1608121-1-1.html
大牛们说的方法太抽象了,我看不太懂,于是自己也在研究。
终于,在贴里的大牛帮助下,给我发现了一种新的下载方式,比较简单和快捷,适合小白
方法如下(也需要简单的js逆向)
1.打开调试工具,找到这个js,并格式化一下。(因为他压缩了)


1.PNG (3.41 KB, 下载次数: 0)
下载附件
2022-3-26 13:41 上传



2.PNG (16.11 KB, 下载次数: 0)
下载附件
2022-3-26 13:42 上传

2.在js代码里面搜索"decryptdata"关键字,来到大约12706行左右(变量什么的可能有所不同,因为他是压缩过的),放入断点


3.PNG (151.46 KB, 下载次数: 0)
下载附件
2022-3-26 13:49 上传

3.基本上每次视频加载都会调用这个位置的代码,找到"_decryptdata"变量


4.PNG (96.82 KB, 下载次数: 0)
下载附件
2022-3-26 13:51 上传

4.发现里面有一大串json数据,包含了M3U8(baseuri)和key(_uri/reluri)信息
[JavaScript] 纯文本查看 复制代码{
    "_uri": "http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126",
    "baseuri": "http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648273704804X1183405&device=desktop",
    "reluri": "http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126",

    "method": "AES-128",
    "key": {
        "0": 242,
        "1": 155,
        "2": 231,
        "3": 3,
        "4": 138,
        "5": 225,
        "6": 46,
        "7": 25,
        "8": 219,
        "9": 1,
        "10": 158,
        "11": 253,
        "12": 61,
        "13": 0,
        "14": 88,
        "15": 211,
        "16": 84,
        "17": 252,
        "18": 214,
        "19": 248,
        "20": 28,
        "21": 47,
        "22": 215,
        "23": 178,
        "24": 226,
        "25": 94,
        "26": 251,
        "27": 73,
        "28": 109,
        "29": 155,
        "30": 232,
        "31": 110
    },
    "iv": {
        "0": 115,
        "1": 231,
        "2": 209,
        "3": 35,
        "4": 245,
        "5": 8,
        "6": 70,
        "7": 126,
        "8": 225,
        "9": 253,
        "10": 116,
        "11": 114,
        "12": 11,
        "13": 96,
        "14": 251,
        "15": 158
    }
}
我尝试下载key,发现下载下来的key是32位的加密key来的,没用。


5.PNG (15.45 KB, 下载次数: 0)
下载附件
2022-3-26 14:01 上传

4.后来发现将里面的"baseuri" 复制,再在新的浏览器页签打开,会得到一个M3U8文件
[JavaScript] 纯文本查看 复制代码http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648273704804X1183405&device=desktop
内容如下
[Asm] 纯文本查看 复制代码#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key",IV=0x73e7d123f508467ee1fd74720b60fb9e
#EXT-X-TARGETDURATION:11
#EXTINF:5.043000,
http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_0.ts?pid=1648273704804X1183405&device=desktop
#EXTINF:5.000000,
http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_1.ts?pid=1648273704804X1183405&device=desktop
#EXTINF:10.000000,
http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_2.ts?pid=1648273704804X1183405&device=desktop
#EXTINF:10.000000,
http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_3.ts?pid=1648273704804X1183405&device=desktop
#EXTINF:10.000000,
http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_4.ts?pid=1648273704804X1183405&device=desktop
#EXTINF:10.000000,
......省略.....
发现M3U8文件的URI里面也有一个key下载地址,直接访问他,发现无法下载。


6.PNG (23.65 KB, 下载次数: 0)
下载附件
2022-3-26 14:04 上传

于是我对比了一下两个key下载地址,发现他们之间只差一个token
[Asm] 纯文本查看 复制代码
_decryptdata里面的"_rui"(key下载地址):http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126
M3U8文件里面的"URI"(key下载地址):http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key
5.将M3U8文件内"URI"的地址复制到浏览器,再把"_decryptdata"里面的"_uri"的token(比如:token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126)带上到后面,得到如下的key下载地址
[JavaScript] 纯文本查看 复制代码http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126
6.通过浏览器访问这个地址,我们就会下载到一个key(
注意:token会过期,如果下载失败,刷新页面重试一下
),这个key是16位的,是已经解密了的


7.PNG (14.58 KB, 下载次数: 0)
下载附件
2022-3-26 14:14 上传

7.将16位的key和M3U8的地址放到下载器就可以正常下载了


8.PNG (21.02 KB, 下载次数: 0)
下载附件
2022-3-26 14:18 上传



9.PNG (23.71 KB, 下载次数: 0)
下载附件
2022-3-26 14:18 上传

个人猜测: 为什么按照原来帖子的方法解密不了,这个方法好像是2020年时候的了,可能这个加密方法可能改了。可能改成了通过服务器端解密,
js异步下载解密key,不把加密/解密方法细节暴露出来,不过这样子只要暴露了解密的下载地址也就会下载到解密key,所以加上了一个token的限制吧,
token大概一分钟失效,失效以后需要刷新页面重新拿token,重新下载。
这个方法是我自己无意之间发现的,仅供参考。并且个人水平有限,如有错漏请指出。

下载次数, 下载附件

漁滒   

你这种是没有加密的,所以通过这种方式获取
lonsvm   


wuchaoqing5 发表于 2022-3-28 21:30
请问爱奇艺的m3u8地址怎么获取呀

我没下过爱奇艺的。
搬运一个本论坛的:https://www.52pojie.cn/thread-1006841-1-1.html
你可以试试。
再就是,idm下载配置里把文件后缀名里,自己添加个*,表示查看所有类型的文件,
然后idm的悬挂窗口下看看有没有m3u8的文件,如果有复制这个m3u8的地址。
用m3u8dl来下就可以了。我是这样操作的。
hello6word   

学习一下,谢谢大佬
Aidien0918   

学习一下,谢谢大佬
叶微啊   

大佬的教程对小白来说极其不友好,学习成本太高了,这里推荐一个安卓软件 LJ视频下载器。输入链接自动下载,还可以转换为mp4格式,非常的方便。
he58394835   

学习一下,谢谢大佬
ting5247   

这方法太过复杂了
dickyuan   

按照大佬的方法断点抓数据确实可以下载,问题来了,这些操作实在太麻烦,怎么脚本实现下载呢?
rmq009   

虽然看不懂,但还是感谢分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部