通过 Fiddler 抓包来解析下载客户端视频源
问题背景
购买的网课视频,一般都是绑定到账户上,然后通过客户端或网页形式进行登录后播放,只能在特定的网页或客户端里面观看视频。有时候,课程视频还有设置效期限,超过期限就无法继续观看视频了。对于这种情况,我们会想到能不能通过一些方法把课程视频下载到本地保存起来。
对此通常有两种方法:
- 手动进行逐个录屏保存,然而有些高级的播放器会检测录屏软件,有录屏软件运行则停止播放。
- 通过一些技术手段解析破解,然后下载。
经过查阅资料,想着通过抓包工具来解析下载视频,经过一些尝试摸索,竟然成功实现了!接下来记录下整个过程。
抓包工具 Fiddler
Fiddler 是一个抓包工具,是一个位于客户端和服务器端的 HTTP 代理,功能非常强大,目前最常用的 http 抓包工具之一。浏览器或本地播放器发送请求后,首先经过 Fiddler,然后再发送到服务器;当服务器返回数据时,也会先经过 Fiddler,然后再发送到浏览器或本地播放器中显示。因此 Fiddler 就能够拦截到视频数据流的网址,然后可以通过 PotPlayer 这样的播放器播放网址视频流来检测,成功解析到视频网址后,就可以调用 IDM 下载。
打开 Fiddler 软件,进入主界面:
解析视频流
在购买该课程视频后,通过后台关联账户,就可以通过该账户登录客户端,进行观看视频。如下图,这是在客户端内视频播放的界面:
点开客户端视频,正常播放后,切换到 Fiddler 界面,观察解析情况发现,有条 https 协议的链接地址 https://shenggeshu.oss-cn-shanghai.aliyuncs.com/246/video/1.overall.mp4?OSSAccessKeyId=LTAI5tBDu919r3tWxa5e1hzA&Expires=1685248910&Signature=WRVzika%2F%2F%2B7eHV%2Fhn9TuAt14tew%3D
,地址里面包含关键字 **..../video/1.overall.mp4....
**,然后复制该 URL 链接。
播放视频流
打开 PotPlayer 软件,导入视频流链接:
发现能正常播放视频,即解析成功:
下载视频
复制 URL 后,打开 IDM,直接下载:
下载速度取决于你的网络和服务器带宽,由于刚才 1.overall.mp4
秒下,导致没有抓到截图,这里换成了第二个视频链接进行截图演示: