赞
踩
以该课程为例:Spring Cloud 原理与实战
https://kaiwu.lagou.com/course/courseInfo.htm?courseId=492#/content
登录网站进入01课程页面:
01 | 追本溯源:究竟什么样的架构才是微服务架构?
https://kaiwu.lagou.com/course/courseInfo.htm?courseId=492#/detail/pc?id=4746
点播放,页面抓包到m3u8地址:
https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/c2b93742a191f643f1980eb8d1343bfb-hq-encrypt-stream.m3u8`
m3u8内容:
#EXTM3U#EXT-X-VERSION:3#EXT-X-ALLOW-CACHE:YES#EXT-X-TARGETDURATION:10#EXT-X-MEDIA-SEQUENCE:0#EXT-X-KEY:METHOD=AES-128,URI="https://kaiwu.lagou.com/alikey?code=MTIyMjgzZDctNTY0Yy00MTM4LTg2MGMtYmJlN2U1YzFlNTFkUXoyU1daTnlVRGFRNHNFS2RDVmNqaTRkVXVXZ2gyU2pBQUFBQUFBQUFBQzlTcGRzY3JCZ2lVM2R6Z1Evc2pGTGJ3QjB0WXA1VW55UVVvQW4yVGlpRHU3Z1BOeWtaaGRl&vid=47fdc52addbd4cdf87a52a3fe3908fd6&appId=course"#EXTINF:9.914922,9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00001.ts#EXTINF:9.891711,9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00002.ts...#EXTINF:9.891700,9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00078.ts#EXTINF:8.034089,9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00079.ts#EXT-X-ENDLIST
下载第一个ts视频:
https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00001.ts
发现视频无法播放,是用AES-128加密,通过访问m3u8的地址:
https://kaiwu.lagou.com/alikey?code=MTIyMjgzZDctNTY0Yy00MTM4LTg2MGMtYmJlN2U1YzFlNTFkUXoyU1daTnlVRGFRNHNFS2RDVmNqaTRkVXVXZ2gyU2pBQUFBQUFBQUFBQzlTcGRzY3JCZ2lVM2R6Z1Evc2pGTGJ3QjB0WXA1VW55UVVvQW4yVGlpRHU3Z1BOeWtaaGRl&vid=47fdc52addbd4cdf87a52a3fe3908fd6&appId=course
可以下载key, key后面带参数是具有时效性的,下载打开key,替换m3u8里的内容为:
#EXTM3U#EXT-X-VERSION:3#EXT-X-ALLOW-CACHE:YES#EXT-X-TARGETDURATION:10#EXT-X-MEDIA-SEQUENCE:0#EXT-X-KEY:METHOD=AES-128,URI="http://localhost:81/key.key"#EXTINF:9.914922,https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00001.ts#EXTINF:9.891711,https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00002.ts...#EXTINF:9.891700,https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00078.ts#EXTINF:8.034089,https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/9772f4841ce8adb37708e30167f7c9f0-hq-encrypt-stream-00079.ts#EXT-X-ENDLIST
我找到一个带界面的M3U8下载器,这个下载器原理就是调用的ffmpeg命令对ts文件进行下载,解密和合并。
提示key无效,用十六进制工具打开这个key文件,发现是乱码,长度只有16个字节。猜想是在页面js文件中做了加密,只要找到网页播放器中的js文件,下断点找到解密后的数据就可以了。
经过调试,发现使用的是webpack:///./node_modules/hls.js文件,搜索decryptData,在下面位置下断点,点播放,点开data.frag.decryptdata,可以看到解密后的数据。
baseuri: "https://vod.lagou.com/47fdc52addbd4cdf87a52a3fe3908fd6/c2b93742a191f643f1980eb8d1343bfb-hq-encrypt-stream.m3u8"iv: Uint8Array(16) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]key: Uint8Array(16) [130, 55, 202, 76, 96, 154, 245, 49, 48, 207, 25, 245, 235, 153, 54, 51]method: "AES-128"
key:这里是10进制的数组:[130, 55, 202, 76, 96, 154, 245, 49, 48, 207, 25, 245, 235, 153, 54, 51]
转化为16进制为: [82,37,CA,4C,60,9A,F5,31,30,CF,19,F5,EB,99,36,33]
再把这个key文件放到本地服务器,替换上面key.key里的内容,保存,用M3U8下载器即可成功下载。
本地打开合并后的文件test.mp4,可以正常播放。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。