news 2026/8/20 16:14:05

猫抓Cat-Catch资源嗅探扩展深度解析:从网页请求到本地文件的一条龙搬运流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
猫抓Cat-Catch资源嗅探扩展深度解析:从网页请求到本地文件的一条龙搬运流水线

猫抓Cat-Catch资源嗅探扩展深度解析:从网页请求到本地文件的一条龙搬运流水线

【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch

猫抓(Cat-Catch)是一款开源的浏览器资源嗅探扩展,它的工作方式很像一名蹲在浏览器门口的"网络快递分拣员":你浏览网页时产生的每一个视频、音频、图片请求,都会被它登记在册,再由你一键决定转存为本地文件。本文按"第一次装→调准→玩透→接进工具链"的成长路线,带你把这条搬运流水线从外到内看个明白。

一、第一次打开它:弹窗里的三块功能区都是干什么的

安装后点工具栏图标,弹窗默认停在"当前页面"标签页。这里展示的不是你手动找出来的链接,而是扩展在后台替你实时盯梢到的所有资源:视频、音频、图片按时间倒序排列,每条记录都带文件名、大小,右侧是下载、预览和更多操作三个按钮。点选任意一条,下方会展开该资源的完整档案——MIME 类型、时长、分辨率、原始 URL,你能直接看到它来自哪个 CDN 域名。

弹窗顶部还有另外两个标签页:

  • 其他页面:当前浏览器中其他标签页捕获到的资源也归集在此,不用切换页面就能跨页签批量下载;
  • 媒体控制/其他功能:放的是模拟手机 UA、自动下载、录制脚本、设置等开关入口。

底部一排按钮中,"模拟手机"值得单独说:很多网站对桌面端隐藏了真实流地址,切到手机 UA 重新加载页面后,原本抓不到的资源会立刻现形。这一招在后面的实战环节会反复用到。

二、引擎盖之下:三类嗅探手段如何协同工作

猫抓的捕获能力由三个层次的代码共同撑起,入口文件都在catch-script/目录下。

第一层是网络请求代理。catch-script/catch.js中的CatCatcher类在页面脚本执行前(manifest.json里配置了run_at: document_startall_frames: true)就完成注入,改写 XHR、Fetch 等原生 API,在请求发起的瞬间登记 URL 和响应类型。

第二层是流媒体管道监控。现代视频站几乎都走 MSE(MediaSource Extensions),所以扩展会代理 MediaSource 相关方法,从视频缓冲流中直接"嗅"出分片数据,这比单纯看请求更稳。

第三层是深度搜索。catch-script/search.js不只盯网络层,它还会在运行时主动"翻垃圾"——代理JSON.parse、劫持 Worker 创建流程,从接口返回的数据里递归找出疑似媒体 URL 和 AES 密钥。看看它对JSON.parse的包装:

const _JSONparse = JSON.parse; JSON.parse = function () { let data = _JSONparse.apply(this, arguments); findMedia(data); // 递归扫描返回体,发现媒体地址或密钥即上报 return data; }

三层之外还有一道筛选闸门:dataRE = /^data:(application|video|audio)\//i这类正则配合扩展名黑名单,把广告追踪、统计上报等无关请求挡在门外,只留媒体。整个链路最后汇总到后台脚本js/background.js,由它统一维护资源列表、触发下载。

三、三分钟上车:三条安装路径按场景挑

安装方式适用场景操作要点
应用商店安装日常使用(推荐)Chrome Web Store、Edge 加载项、Firefox 附加组件(Firefox 需非国区 IP 访问)
源码编译开发调试、二次开发克隆仓库 → 扩展管理页开"开发者模式" → 加载已解压的扩展程序
CRX 文件部署内网批量部署从 Releases 下载 crx → 开开发者模式 → 拖入扩展管理页

源码方式的核心命令就一条:

git clone https://gitcode.com/GitHub_Trending/ca/cat-catch

克隆后整个项目目录就是可直接加载的扩展本体,manifest.json就在根目录,改完代码到扩展管理页点一下刷新即可热更新。要注意版本门槛:项目从 1.0.17 起要求 Chromium 内核 93 以上,低于 93 只能用 1.0.16;想体验完整功能(侧边栏、声明式规则等 Manifest V3 特性),请用 104 以上的浏览器。Android 端 Edge 也有对应版本,官方 README 里提供了安装二维码。

四、调参指南:从"什么都抓"到"精准抓取"

默认配置抓得很宽,js/init.js里预置了 30 多种文件扩展名和 9 类 MIME 类型规则。但生产环境里你需要的是"只抓我要的",这时去设置页(options.html,逻辑在js/options.js)动三处:

1. 扩展名与类型规则。每条规则都能配一个最小体积阈值,比如只对大于 500KB 的.mp4感兴趣,就把它的大小条件从>= 0 KB改成>= 500 KB,小图、占位文件瞬间从列表里消失。

2. 正则白/黑名单。默认规则里已带几条站点级正则,比如用blackList: truebilivideo.com的直播分片排除掉。你也可以仿照它写自己的规则——把 "只匹配" 和 "不匹配" 分开两条维护,比反复改一条规则更省心:

// 设置页里自定义的正则示例:命中即标记为 json 格式资源 { "type": "ig", "regex": "https://cache\\.video\\.[a-z]*\\.com/dash\\?tvid=.*", "ext": "json", "state": true }

3. 屏蔽 URL 列表。与正则黑名单互补,直接按地址段屏蔽,适合"这个广告域名我永远不要"的场景。

性能方面有三个旋钮值得记下:autoClearMode控制捕获数据的清理频率(0 不清理 / 1 正常 / 2 更频繁);maxLength限制列表最大条目数(桌面默认 9999);checkDuplicates开关负责去重。内存吃紧时优先把这三处调紧。

五、硬核实战:加密 HLS 分片与 1.8GB 临界点

遇到 HLS 流媒体时,把捕获到的.m3u8链接丢进解析器(js/m3u8.js,底层封装了 hls.js),页面会展示全部 TS 分片清单、密钥信息和下载线程配置,支持一键合并为 MP4。

几个实战要点:

  • AES-128 解密:密钥通常藏在接口响应里,深度搜索层会自动把 16 字节的 key 抓出来(search.js里专门检测长度为 16 的数字数组/ArrayBuffer);万一没抓到,可以手动填 16 进制或 base64 格式的 key,再配合自定义 IV 偏移量重试。
  • 多线程合并:分片下载器默认 6 线程(js/m3u8.downloader.js里的Downloader类),网络好可以调高,注意同时会吃更多内存。
  • 1.8GB 的坎:Chrome 下载 API 对大文件有硬限制,init.js里写死了chromeLimitSize: 1.8 * 1024 * 1024 * 1024。应对方案是打开"每 1GB 保存一次"开关,配合 StreamSaver 边下边存,把大文件拆成连续写入,绕开单次下载的体积天花板。
  • MPEG-DASH:遇到.mpd清单也不慌,lib/mpd-parser.min.js负责解析,js/mpd.js处理自适应码率选择与分时段下载。

如果你习惯用 m3u8DL 这类命令行工具,解析器还支持一键生成命令并复制,把"在浏览器里点出来的参数"直接变成终端里可执行的一行。

六、进阶玩法:把嗅探结果喂进你的整个工具链

猫抓的价值不止于"人肉点下载",它预留了多条把资源推给其他程序的通道,都在设置页里:

通道默认配置典型用途
Aria2 RPChttp://localhost:6800/jsonrpc把下载任务交给 aria2 多线程抢速
本地 HTTP 推送http://127.0.0.1:8000/(POST)接自家脚本、NAS 转存服务
MQTT 消息test.mosquitto.org:8081(wss)推送到消息总线,联动其他设备
自定义协议m3u8dlre:"${url}" ...唤起本地下载器/命令行工具

自定义协议那一项最灵活,模板里支持${url}${title}${referer}等占位符,点击资源即可唤起本地程序。播放器联动同理,内置 PotPlayer、VLC、Android MX Player 的调用模板,视频可一键交给本地播放器,而不必先下载:

potplayer://${url} ${referer|exists:'/referer="*"'}

此外,recorder.js可以把你的操作录制成回放脚本,适合需要反复捕获同一类页面的场景;ffmpeg 合并通道则把"下载后再转封装"的脏活外包给了在线 ffmpeg 实例。

七、兼容性矩阵与多语言覆盖

扩展基于 Manifest V3 构建,不同平台表现略有差异,规划部署前先对号入座:

平台最低版本推荐版本已知限制
Chrome / Chromium93104+
Microsoft Edge93104+
Firefox最新最新部分 API 受限,data URL 下载走降级方案
Edge Android支持最新移动端交互有精简

Firefox 那个降级方案值得一提:js/function.js里专门写了downloadDataURL兜底——Firefox 的下载 API 无法处理 data URL,就退化为创建<a download>链接触发保存。

多语言方面,_locales/目录下已维护 en、es、ja、ko、pt_BR、ru、tr、vi、zh_CN、zh_TW 共 10 个语言包,新增语言只需照着现有messages.json补齐翻译即可。

八、排障速查:五分钟定位最常见问题

  • 列表里什么都没有:先看扩展是否启用(快捷键开关)、页面是否已加载完毕;动态加载的内容要等触发后再捕获;最后确认是不是被正则黑名单或屏蔽 URL 误伤了。
  • 抓到了但下载失败:优先检查网络连通性、磁盘剩余空间,以及是否触碰了 1.8GB 单文件上限;另存为模式被关闭时也可能静默失败。
  • 加密流合并后无法播放:八成是 key 没捕获到或 IV 偏移不对,回到解析器手动补 key 重试;别忘了确认 Referer 是否正确,部分 CDN 校验它。
  • 扩展明显变卡:调低maxLength、把autoClearMode调到"更频繁",并减少同时下载的线程数;长时间使用后可到设置页清空捕获缓存。
  • 想彻底放过某个站点:把它加进屏蔽 URL 列表,比反复写正则省事得多。

九、边界感与未来:一个开源嗅探器的自我修养

猫抓在"能抓"和"该抓"之间划了清晰界限。项目内置了"避免抓取列表"(当前预置了抖音域名),网站方如不希望被嗅探,可在仓库提交标题为[Opt-Out Request] 域名的 Issue,经核实后会被加入后续版本的拒绝列表。隐私层面,所有捕获数据只在本地存储与处理,不包含任何远程跟踪代码,这一点在 README 的隐私政策里写得很明确,也可以直接审计源码验证。

项目授权从 1.0 版的 MIT 变更为 2.0 版的 GPL-3.0,正是为了约束下游"拿去改改就闭源上架"的行为——商店里已经出现过植入广告的伪猫抓,认准官方渠道安装是保护自己的第一步。

对开发者而言,这是一个结构相当规整的 MV3 扩展范本:catch-script/管嗅探、js/管下载与界面逻辑、lib/集成第三方解析库、tools/sync-locales.js维护多语言同步。想参与贡献,可以从补一个语言包、修一个 issue 级别的 bug 开始。浏览器在进化,嗅探技术也在跟着 Web 标准博弈——Service Worker 化、更深的流协议支持,都是这条搬运流水线正在打磨的下一个环节。工具无罪,边界在心,把技术用在有授权的场景里,它就是你浏览器里最趁手的那把"快递分拣器"。

【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 16:06:44

第六代战斗机技术解析:从AI协同到跨国研发的系统工程挑战

1. 先搞清楚“六代赢学机”到底是什么&#xff0c;以及为什么值得看看到“英日意失败者联盟联合打造六代赢学机”这个标题&#xff0c;第一反应可能是抽象、调侃&#xff0c;甚至有点无厘头。但别急着划走&#xff0c;这背后其实指向一个非常具体且正在发生的技术趋势&#xff…

作者头像 李华
网站建设 2026/8/20 15:59:03

快手无水印下载怎么实现?KS-Downloader 快速上手与完整使用指南

快手无水印下载怎么实现&#xff1f;KS-Downloader 快速上手与完整使用指南 【免费下载链接】KS-Downloader 快手&#xff08;KuaiShou&#xff09;作品视频/图片下载工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader 你有没有过这样的瞬间&#xff1a;…

作者头像 李华
网站建设 2026/8/20 15:56:43

2026年有哪些好用的配音软件,这5款新手也能轻松上手

如果你是刚开始做短视频&#xff0c;大概率会经历一个阶段&#xff1a;&#x1f449; 试了好几个配音工具 &#x1f449; 有的太复杂&#xff0c;有的声音太假 &#x1f449; 最后干脆用默认声音凑合但其实现在的配音工具已经很成熟了——&#x1f449; 多角色、情绪、自动断句…

作者头像 李华