ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何用猫抓下载浏览器页面视频:m3u8解析与资源捕获完整教程

如何用猫抓下载浏览器页面视频:m3u8解析与资源捕获完整教程 如何用猫抓下载浏览器页面视频m3u8解析与资源捕获完整教程【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch在播放页面按 F12 检查视频时你多半会发现 video 标签的 src 是一串 blob: 假地址网络面板里只有一堆 ts 或 fmp4 分片请求在闪——看得见在播却找不到下载入口。猫抓cat-catch就是针对这类场景的浏览器资源嗅探扩展它把页面加载到的媒体资源列出来并支持 m3u8/MPD 播放列表解析和下载。价值速览一句话链路输入一个页面或一个 m3u8/MPD 地址它嗅探页面请求、捕获播放缓冲、解析播放列表输出可下载的文件。跟普通下载管理插件相比它最不一样的点是可以捕获 MSEMediaSource缓冲数据——视频由 JS 分片喂给播放器时URL 只有一个 blob: 协议地址猫抓依然能把它还原成文件加密 m3u8 它也会自动取密钥解密还支持把任务发给 ffmpeg 合并。️ 捕获是怎么实现的嗅探与 MSE 捕获两条链路如果让你自己实现嗅探最直白的拆法也是两条路一条管有真实地址的资源一条管没有地址的资源。前者在 js/background.js用chrome.webRequest挂onSendHeaders和onResponseStarted两个事件前者把每个请求的请求头按 requestId 存进 Map后者触发findMedia按扩展名、Content-Type 判断是否媒体资源。存请求头的用意是留住资源自带的 Referer 和 cookie之后单独请求同一个资源时照样能带上。后者是难点MSE 视频根本没有地址。核心逻辑在 catch-script/catch.js 的CatCatcher类用 Proxy 包住 MediaSource 的方法result.appendBuffer new Proxy(result.appendBuffer, { apply: (target, thisArg, argumentsList) { Reflect.apply(target, thisArg, argumentsList); this.catchMedia[index].bufferList.push(argumentsList[0]); } });白话说播放器每次往缓冲里写一块数据先让原逻辑照常执行再把这份数据复制进队列等endOfStream被调用说明数据播完了把队列整体拼接保存blob: 地址就变成了真实文件。播放列表那一块js/m3u8.js 用 hls.js 解析 m3u8 内容读取#EXT-X-KEY标签里的密钥地址、拉取密钥后逐分片 AES 解密SAMPLE-AES-CTR 不支持遇到会明确提示MPD 文件则走 js/mpd.js底层是 mpd-parser。 两种最常用的操作打开任意播放视频的网页点工具栏猫抓图标开启捕获让视频播到缓冲末尾右下角浮动面板会实时显示捕获到的数据大小。完成后点图标弹窗列表里就是这个页面捕获到的媒体流选一条保存即可。Chrome、Edge、Firefox 都有商店版也可以克隆源码后在扩展管理页用加载已解压的扩展程序本地装。手上有 m3u8 地址时把它填进 m3u8 解析页面m3u8.html页面会拉出切片列表、每片大小和在线预览确认无误点下载得到合并后的文件加密播放列表会自动请求密钥解密解析失败的切片会单独标出。⚠️ 用前确认、卡住时查、别这样用用前确认只下载你拥有版权或已获授权的内容确认扩展处于启用状态Chromium 内核需 93 以上。卡住时查src 是 blob: 地址就别再找直链了MSE 视频只能靠完整播放捕获m3u8 解析失败先看请求是否要带 Referer在自定义请求头里补上。别这样用商店里有加了广告代码的伪猫抓README 明确提醒注意数据安全安装以官方渠道为准。收束猫抓本身代码量不大重活交给了上游库hls.js 负责播放列表解析mpd-parser 负责 MPDStreamSaver.js 负责在浏览器里直接落盘ffmpeg 负责多路合并清单见 lib/third-party-libraries.md想深入可以从这些依赖的文档看起。如果你只是想存下某个页面正在播的视频装好、点一下就够了。【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进