fiddler抓包手机视频并通过FFmpeg下载,同时记录一下自己走的弯路

时间:2024-02-22 19:51:06

Ffmpeg下载命令,ffmpeg -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" -i D:\test\2.m3u8 -c copy tests.mp4



1、有时候在观看手机短视频,看到比较好的视频,但是作者没有提供下载,就感觉可惜!因此就想到了获取视频的真实地址来下载。


2、之前下载过fiddler软件,却一直放着没来得及使用,因此在b站找了个视频看了一下大概的使用方法。视频地址


3、第一步,配置fiddler使其可以抓取HTTPS协议请求;
图一


4、第二步,配置fiddler连接到手机。
1.
2. 证书安装:使手机和电脑连接同一WiFi或者处于同一局域网内,鼠标悬停在Fiddler右上角的在线可以看到当前电脑的ip地址,手机打开浏览器访问电脑ip地址加上默认端口8888,可以下载到凭证,通过手机的证书安装器进行安装。 如果手机无法访问的话,可以看到第一步图片中有个操作按钮,点击“操作”按钮选择“将根证书导出到桌面”,然后把证书发送到手机进行安装。
3. 代理设置:安装完成后,找到手机的WiFi设置,设置WiFi代理,端口号为默认的8888,地址为电脑ip地址,保存即可。此时,手机打开视频APP,可以发现fiddler上已经已经有很多数据发现了。
4. 手机抓包:找到自己需要的视频地址,这里面就得靠自己的操作了。


5、我得到一个.m3u8的文件,花费了好几个小时写python代码。主要逻辑就是:1.遍历给定的目录获取所有以.m3u8后缀结尾的文件名称保存到列表;2.打开一个.m3u8文件,使用正则表达式提取出所有的.ts视频链接,这里我得到的链接是没有加密,如果有加密得另外处理。通过python多线程下载得到所有的以.ts为后缀的视频,并保存到新目录;3.合并.ts文件,继续下一个文件的处理。这里我本来是要通过调用window的批处理命令实现合并,但是我想到了之前搞的时候发现的问题,合并完成的.mp4文件时间是错误的,无法通过时间条快进或后退。在搜索解决这个问题的时候,我看到了处理视频的利器Ffmpeg,经过一番查找搜索后发现,使用Ffmpeg就直接可以完成.m3u8文件的下载了,不需要浪费一堆时间去自己编写代码下载。


6、 自己搜索下载FFmpeg,并将其bin目录添加到系统环境变量,就可以使用了。Ffmpeg下载名,ffmpeg -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" -i D:\test\2.m3u8 -c copy tests.mp4,i参数后面是.m3u8文件的完整地址,这里应该可以使用相对路径,tests.mp4是合并后的文件名。


7、 完了!