最近有朋友问能不能帮忙下载微信小程序里的视频,这里把方法记录下来,供有需要的人参考
此次需要下载的是一个在微信小程序「票圈vlog」里的视频
微信分享链接在微信电脑版打开后显示如下
使用的是腾讯内置浏览器,既没有F12调试工具,也不能通过常规浏览器打开,无法直接获取视频地址信息;按过往经验,基于http协议的可能性较大,搬出Fiddler分析http流量
流量分析Fiddler作为常见的web流量分析工具适用于分析与http协议相关的流量
Wireshark亦可,但捕获的数据和细节会更多,筛选时需要多花时间
工具准备下载一个免费版Fiddler「Telerik Fiddler Classic」并安装
如需注册可使用YOPmail匿名邮箱服务绕过
开始抓包准备待打开的微信小程序视频链接,先不打开,放一边「以管理员身份运行」刚刚安装好的Fiddler流量分析工具,开始收集流量信息打开待分析的微信小程序视频,视频播放几秒后把整个小程序窗口关掉按键盘F12停止Fiddler继续收集流量信息Capturing表示当前正在收集检出视频地址Fiddler已经为每个会话打上了编号并标记其所属类型,注意视频开始加载前的部分
编号49此处可看到第一条与视频有关的会话开始于编号50,编号49和50使用的是同一个Host,检查编号49的会话,发现一个以.m3u8为尾缀的http请求
复制会话URLm3u8 可归为基于HTTP的流媒体传输协议一类,多见于电视盒子,可以播放但不能直接下载,此时我们需要一个能转录该视频的工具:VLC Media Player
下载视频VLC Media Player 支持直接播放基于HTTP的音视频流,也支持将视频流内容转换成本地文件
兼容性检查并非所有基于HTTP的流媒体VLC都能播放,先尝试播放
打开网络串流播放正常注意声音和画面是否正常,结束时间戳是否和小程序里的一致
设置转录播放改为「转换」VLC内置了几种常见的音视频配置,此处音频和视频内容我们都要,括号内代表转换后的本地视频格式;如果你仅需要音频/视频,可以指定为单纯的音频或视频格式
设定合适的配置文件选择合适的存储位置和文件名,开始转换正在下载进度条会比正常的播放快一些,此时可以干别的事情,进度条走完即表示视频已全部下载完成
脚本化方便下次快速调用VLC
打开网络串流
"C:\Program Files\VideoLAN\VLC\vlc.exe" URL
转换网络串流为本地MP4文件
C:\Program Files\VideoLAN\VLC>vlc.exe --sout "#transcode{vcodec=h265,acode=mp3,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ts,dst=E:\a.mp4}" URL
参考材料VLC Transcode
VLC Documentation - Streaming HowTo
VLC Documentation - Advanced Streaming Using the Command Line