news 2026/9/6 20:51:00

猫抓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

视频在播,下载按钮却消失了

你在核对一份客户发来的样片视频。链接打开,视频正常播放,但右键菜单是空的,页面上没有下载入口,开发者工具里的 URL 一复制就失效。这个时刻你需要猫抓(Cat-Catch)——一个浏览器资源嗅探扩展。它不破解页面,只是默默"看着"浏览器网络层发生的每一次请求,把媒体资源从页面加载流程里直接捞出来,变成你能下载的文件。

猫抓能做什么:能力边界一览

猫抓是一款开源的浏览器资源嗅探扩展,用于筛选、列出并下载当前页面加载的所有媒体资源。

  • 被动嗅探:自动识别页面加载的音频、视频、图片等媒体文件
  • 主动捕获:代理 MediaSource 接口,逐片记录动态加载的加密流媒体
  • m3u8 解析:解析播放列表、识别 AES-128 密钥、多线程合并下载
  • 多协议支持:覆盖 HLS、DASH(mpd)、WebRTC 和普通 HTTP 文件
  • 外部下载器对接:推送 Aria2 RPC,或通过 m3u8dl:// 协议调用 N_m3u8DL-CLI
  • 在线转码:发送到在线 ffmpeg 合并转成 mp4
  • 多语言界面:官方内置中、英、日、西等十种语言

下载一个正在播放的视频:完整走一遍流程

用法本身很简单:在 Chrome 或 Edge 商店搜索"Cat-Catch"安装,打开带视频的页面,点击工具栏猫爪图标,在弹出列表里勾选资源、点下载。

理解这个项目的关键在于:列表里的资源是怎么来的?背后是两套互补的机制在协同。

第一层是网络层监听。扩展通过 webRequest API(在 manifest.json 的权限声明里可以查到)监听页面发出的每个请求,当响应的 Content-Type 或 URL 命中媒体规则时,就把地址记入当前标签页的资源列表。静态的 mp4、图片、音频,基本在这一层就被抓到了——所以你打开扩展图标,列表往往已经就绪,不需要刷新或手动触发。

第二层是媒体层代理。很多网站的视频并不是一个完整的 mp4,而是通过 MediaSource 接口把分片逐块喂给<video>标签——网络层根本看不到"完整文件"。猫抓的做法是在注入脚本 catch-script/catch.js 里,用 Proxy 重写 MediaSource 的 addSourceBuffer 和 appendBuffer 方法,把每次追加的分片数据记录下来。关键入口是 CatCatcher 类的 proxyMediaSourceMethods 方法,模块职责大致是:

catch-script/catch.js 模块职责 ├── 代理 addSourceBuffer / appendBuffer,记录视频分片 ├── 管理捕获开关与已捕获数据量 ├── 达到 1GB 阈值时自动触发下载 └── 文件名获取(页面标题 / 正则提取)

所以普通嗅探工具抓不到的视频,猫抓能抓到:前者只盯着网络层,后者把媒体层这条路径也补上了。

当视频变成几百个分片:m3u8 解析器的取舍

更棘手的场景:页面给你的只是一个 .m3u8 播放列表——它本身不含视频,只是一份列出几十到上千个 .ts 分片地址的"菜单",里面还可能声明 AES-128 密钥。直接下载毫无意义,这时候需要 m3u8 解析器(js/m3u8.js)。

工作流分三步:

  1. 解析与校验:拉取播放列表,读取总时长、分辨率、预估文件大小,识别密钥与加密方式
  2. 密钥处理:用深度搜索脚本(catch-script/search.js)从页面数据里找疑似密钥,或手动填写十六进制 / base64 密钥
  3. 并发下载:最多 6 线程,支持断点重试、任意切片勾选、合并,结果可推给 Aria2 或在线 ffmpeg 转 mp4

这里有个刻意的取舍:线程上限被限制在 6(2.4.7 版本起调整)。线程越多下载越快,但对目标服务器的压力也越大。猫抓选择把"下载体验"和"不把别人的网站搞崩"放在同一优先级。

另一个容易被忽视的问题叫"一次性 URL":播放列表地址只在页面存活期间有效,复制到别的工具里就失效。2.7.0 起解析器直接从浏览器缓存读取 m3u8 内容,并连同来源页的 Referer 与自定义请求头一起传递——专治这类"链接一拷贝就作废"的场景。⚡

猫抓是怎么长出来的:三个改变方向的转折点

问题:Service Worker 会被杀死。Manifest V3 要求扩展后台使用 Service Worker,浏览器会在空闲约 5 分钟后强制终止它,扩展状态随之丢失。选择:1.0.24 起加入 Heart Beat 心跳机制,内容脚本与后台保持低频通信维持存活,后台还会周期性自我唤醒——js/background.js 文件开头那段 HeartBeat port 逻辑就是干这个的。代价:这本质上是对浏览器省电机制的对抗,开发者在 2.0.0 日志里直白地写"继续用肮脏的手段对抗 Manifest V3"。所以哪怕你长时间挂着页面,捕获到的资源列表也不会突然清空。

问题:高频读写拖垮扩展。storage.local 在高频率读写下出现 IO 错误,直接导致扩展不可用。选择:2.5.3 起改用 storage.session。代价:会话级存储天然不持久——团队用一部分持久性换来了稳定,而"导入 / 导出配置"功能接过了持久化的需求。

问题:被动嗅探抓不到动态视频。2.0.0 的更新日志写得很直白:"视频捕获功能,解决被动嗅探无法下载视频的问题"。选择:引入上面说的 MediaSource 代理机制。代价:注入脚本会介入页面自身的运行——更新日志里"深度搜索导致网页无法正常使用"这类修复反复出现,"抓得全"和"不弄坏页面"的平衡是逐版本磨出来的。

上手:从安装到第一次下载

  1. 在 Chrome 网上应用店或 Edge 插件商店搜索"Cat-Catch"安装(Firefox 也支持)
  2. 打开任意含媒体内容的页面,点击工具栏猫爪图标
  3. 在资源列表中筛选、勾选、下载
  4. (可选)想看源码:git clone https://gitcode.com/GitHub_Trending/ca/cat-catch
  5. 打开浏览器"扩展程序"页开启"开发者模式",点击"加载已解压的扩展程序",选中项目文件夹

源码阅读入口:

  • catch-script/catch.js:嗅探核心,MediaSource 代理
  • js/m3u8.js:m3u8 解析与多线程下载
  • js/downloader.js:下载逻辑
  • js/background.js:后台运行与心跳机制
  • catch-script/search.js:密钥深度搜索脚本

留给你的一个问题

随着 DRM 加密和反嗅探手段越来越精密,浏览器内的媒体处理工具会不会陷入无休止的猫鼠游戏?也许答案在猫抓已经走出的方向里:引入 MQTT 协议把资源推送到云端,让浏览器成为加工车间,而不是终点站。

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

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

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

CSDN首页发布文章CSDN同步助手基于多面体最大内近似的电动汽车集群聚合及微电网经济调度研究(Matlab代码实现)41 / 100摘要:会在推荐、列表等场景外露,帮助读者快速了解

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 &#x1f381…

作者头像 李华
网站建设 2026/9/6 20:35:47

MSC Marc TABLE功能详解:从时间载荷到材料参数的动态控制

简介&#xff1a;2019年MARC中文基本手册之第七章表格功能&#xff08;TABLE&#xff09;使用指南&#xff0c;面向使用MARC进行结构力学分析、需要精细管理材料数据与载荷曲线的工程师和科研人员&#xff1b;整个资源包仅含1份PDF文档&#xff0c;约1.79MB&#xff0c;体量精简…

作者头像 李华
网站建设 2026/9/6 20:35:12

MIDAS Civil初拉力与几何刚度初始荷载:区别与工程应用

简介&#xff1a;针对MIDAS软件在结构工程中的常见困惑&#xff0c;这份PDF资料系统讲解了几何刚度初始荷载与初拉力荷载的功能区别、适用单元和参数设定要点&#xff0c;适合桥梁、索结构及大跨度结构方向的工程师与学习者阅读&#xff0c;尤其有助于解决初始平衡状态与荷载工…

作者头像 李华
网站建设 2026/9/6 20:32:53

基于Matlab的电机故障诊断:从振动信号到特征频率的完整流程

简介&#xff1a;一份基于MATLAB的电机故障诊断学习文档&#xff0c;面向电气工程、自动化专业学生及电机运维工程师。内容先阐述电机故障诊断的重要性&#xff0c;再系统梳理频谱分析法、Park矢量法、Clerk矢量法和小波分析法&#xff0c;重点针对三相鼠笼式异步电动机转子断条…

作者头像 李华
网站建设 2026/9/6 20:28:16

OTHR雷达数据处理仿真系统:坐标转换、关联与滤波的工程实战

简介&#xff1a;天波超视距雷达&#xff08;OTHR&#xff09;数据处理仿真系统设计与实现是一份PDF格式的专业参考文献&#xff0c;面向雷达数据处理、仿真系统开发及算法研究的科研与工程人员。内容围绕电离层时变、高频干扰导致虚警率高、检测概率不稳等问题&#xff0c;详述…

作者头像 李华