news 2026/10/11 4:42:45

猫抓 cat-catch 完整指南:三步装好这款浏览器资源嗅探扩展,视频和 m3u8 流一网打尽

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
猫抓 cat-catch 完整指南:三步装好这款浏览器资源嗅探扩展,视频和 m3u8 流一网打尽

猫抓 cat-catch 完整指南:三步装好这款浏览器资源嗅探扩展,视频和 m3u8 流一网打尽

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

在网页里看视频,却找不到播放地址;想保存一段直播回放,却被 m3u8 分片挡在门外。cat-catch(猫抓)就是为这类场景做的浏览器资源嗅探扩展:打开任意网页,点一下扩展图标,页面加载过的视频、m3u8 流地址、图片会被自动筛出来,挑中的资源可以直接下载,m3u8 还能合并、转码、录制。

它的思路其实不复杂:内容脚本在页面加载早期就注入进去,后台脚本盯着所有网络请求做初步筛选,列表完全在你本地生成。整篇文章按"装好它、用它、看懂它"的顺序展开,中途会反复强调两件事——只从官方渠道安装,以及确认你的内核版本够不够。

装猫抓的三条路:商店、开发者模式还是离线包

方式适合谁步骤
应用商店普通用户Chrome / Edge 各自商店搜索 "cat-catch";Firefox 在 AMO 安装(需非中国大陆 IP);Edge Android 用手机访问商店,或直接扫仓库里自带的二维码 README/edgeqrcode.png
源码(开发者模式)想审计代码或本地调试的人克隆仓库,在扩展管理页开启开发者模式后加载解压目录
.crx 离线包已拿到官方发布包的人在 Releases 页右键"另存为"下载,拖进扩展管理页即可

源码安装的具体操作只有三步:

  1. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/ca/cat-catch
  2. 打开扩展管理页面(如chrome://extensions),开启右上角开发者模式
  3. 点加载已解压的扩展程序,选中仓库根目录(即包含 manifest.json 的那个文件夹)

⚠️ 有一点必须提前说:cat-catch 是完全开源的,任何人下载、修改后都能重新上架商店,市面上已经出现过多款塞了广告甚至恶意代码的伪猫抓。装完顺手看一眼列表里有没有莫名多出的资源项,扩展描述是否与官方一致,能省掉不少麻烦。所有安装地址以官方文档和官方发布渠道为准。

另外,仓库里同时放着 manifest.firefox.json,Firefox 版走的是 Manifest V2 的background.scripts加载方式,和 Chromium 侧的 service worker 模式不同,跨浏览器使用或看源码时留意一下这个差异。

低于哪个内核版本,功能会被裁剪

官方给的门槛分三层:1.0.17 之后的版本要求Chromium 内核 93 及以上(manifest.json 里的"minimum_chrome_version": "93"与此一致);低于 93 只能用 1.0.16;想要完整功能则建议104 及以上。

光记数字没意义,关键是低于门槛时你会少掉什么:

  • 93~103 之间:能装上、能嗅探、能下载,但 2.5.3 版本起数据从storage.local迁到了storage.session(要求 Chrome 104 以上),2.2.3 加入的新版录制脚本 recorder2.js 也同样要 104+,这两块在旧内核上不可用;
  • Firefox 单独算:2.4.6 起要求 Firefox 113+,2.5.7 起升级到 Manifest V3,深度搜索、缓存录制这类脚本功能需要 Firefox 128+;
  • Chromium 114 以下:2.6.3 修复过因缺少sidePanelAPI 导致整个扩展不可用的问题,太老的 114 以下版本建议升级。

好在你不用自己判断——扩展在低版本环境会主动隐藏不支持的功能按钮,看不见的按钮基本就是被裁剪掉的能力。

弹出页里有哪些标签和按钮

点击图标打开的弹出页(也可在设置里改成侧边栏模式)是日常使用的主要界面,顶部是四个标签:当前页面(本标签页嗅到的资源)、其他页面(其余标签页)、媒体控制 / 设置、疑似密钥(深度搜索得到的候选解密密钥)。

列表下方是一整排工具:正则筛选、按扩展名过滤、删除重复文件名、排序;功能按钮包括视频录制、WebRTC 流录制、屏幕捕获、深度搜索、缓存捕获、模拟手机 UA、自动下载;对选中资源可以下载、复制、全选/反选、发送给 ffmpeg 在线合并、清空列表。

还有一块容易被忽略的媒体控制面板:对页面里正在播的视频做倍速、画中画、全屏、截图、循环、静音、音量与进度调节,甚至支持跨标签页选择媒体源。

m3u8 解析器:加密流、直播回放都交给它

遇到 HLS 流媒体(尤其是加密的直播/点播),点资源上的 m3u8 解析入口会打开一个专门的解析页:

这个页面接收一组 URL 参数来继承任务上下文:m3u8 地址、自定义请求头、Referer 备用来源、页面标题、自定义文件名、来源标签页(用来回 popup 取密钥)、是否自动下载、下载完是否关页、重试次数、是否发往 ffmpeg。解析器支持在线合并下载、边下边存(适合直播录制)、ffmpeg 转码、按时间范围或逐切片勾选下载、隐藏已下载成功的切片。底层解析靠 hls.js,AES-128 加密流由 m3u8-decrypt.js 里的 AESDecryptor 负责解密。

💡 深度搜索找到疑似密钥后,会直接出现在弹出页的「疑似密钥」标签里,你只需手动填进解析器验证,不用自己翻源码。

嗅探到资源的背后发生了什么

后台脚本 js/background.js 挂了三类网络监听:请求发出时(onSendHeaders)先存下请求头并做一次正则初筛;服务器返回第一个字节时(onResponseStarted)携带响应头,能更准确地判断资源类型;请求失败时(onErrorOccurred)清掉对应的临时缓存。

Manifest V3 的 service worker 有个老问题:闲置约 5 分钟后会被强制终止,监听一旦断掉就"瞎"了。代码里的应对手段很直白——注册两个空的 webNavigation 监听、用一条 HeartBeat 长连接做心跳、再定时调用chrome.runtime.getPlatformInfo,让 worker 尽量保持唤醒。嗅到的资源先暂存在内存 Map 里,由chrome.alarms定时任务批量落盘到storage.session(低版本退回storage.local)。另外,js/content-script.js 以document_start、all_frames: true注入所有 http/https 页面,保证页面还没开始拉资源时脚本就已经就位。

数据都去哪儿了:隐私承诺的底气

官方承诺:扩展收集的所有信息都在本地存储和处理,不发送到任何远程服务器,不含任何跟踪器。

对照代码可以确认这条承诺不是空话:嗅探到的请求头、资源数据放在内存 Map(G.requestHeaders、G.urlMap)里,最终只写入浏览器本地 storage;manifest.json 声明的权限(tabs、webRequest、downloads、storage、alarms等)全部服务于本地功能,文件里没有配置任何远程服务端点;host_permissions里的<all_urls>只用来"看"你访问了哪些资源,而不是把数据传出去。换句话说,它需要的权限和它做的事是对得上的。

谁有权拒绝被嗅探:合规边界与 Opt-Out 流程

官方对使用边界的态度很明确:本扩展仅供下载用户拥有版权或已获授权的视频,禁止用于未经许可抓取受版权保护的内容;用户自行承担全部法律责任,工具按"原样"提供,开发者不承担任何直接或间接责任。

如果你是网站运营方,不希望被 cat-catch 抓取,流程很简单:

  1. 在本仓库新建一个 Issue;
  2. 标题使用固定格式:[Opt-Out Request] 你的网站域名(如[Opt-Out Request] example.com);
  3. 正文附上网站域名和联系人邮箱,供必要时核实身份。

有效请求会在后续版本更新中被加入「避免抓取列表」。开源项目的发版有周期,这里需要一点耐心等待。不想全局等待的话,扩展自身在 js/options.js 的屏蔽网址配置里支持白名单/黑名单两种模式,后台侧对应blockUrlSet的跳过逻辑,命中即不再处理该页请求。

GPL-3.0 对二次开发者意味着什么

许可证演进史只有一句话能讲清:1.0 版是 MIT,2.0 版起改为 GPL v3(根目录 LICENSE 即 GNU GPL v3 全文)。作者的意图也写在 README 里——希望基于 cat-catch 源码开发的衍生扩展保持开源。也就是说,如果你二开并对外分发,就要按 GPL v3 的义务开源你的修改,闭源分发这条路走不通。

核心能力建立在几个成熟开源库之上,lib/ 目录里各有对应文件,完整信息见 lib/third-party-libraries.md:

依赖在 cat-catch 里干什么
hls.js解析 m3u8 分片清单与媒体信息
mux.jsTS 转 MP4 的封装/转码
mpd-parserDASH/MPD 清单解析
jQuery + jquery.json-viewerDOM 操作与 JSON 查看
StreamSaver.js流式写文件,实现边下边存
MQTT.jsMQTT 协议推送支持
jquery.qrcode资源二维码生成

界面文案则通过 _locales/ 目录支持简中、繁中、英语、俄语、西语、日语、韩语、葡语、法语、土耳其语、越南语共 11 种语言。

装完之后建议做两件事:先去设置页把不希望被嗅探的站点加进屏蔽列表,再拿一个自己有版权的试看源完整走一遍"嗅探—m3u8 解析—下载"流程,确认内核版本没有卡掉任何按钮。记住最后一条底线:它抓得到,不等于你能下。

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

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

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

GitHub日榜深度解读:从排名机制到开源项目筛选的完整指南

平时逛 GitHub 吗&#xff1f;如果你是个开发者&#xff0c;GitHub 热榜日榜基本上就是每天必看的东西。2026年10月8号的这份日榜&#xff0c;我照例完整刷了一遍&#xff0c;越看越觉得很多东西值得聊。热榜这个东西&#xff0c;表面上是个“今日流行项目合集”&#xff0c;但…

作者头像 李华
网站建设 2026/10/11 4:38:12

桌面端AI编程工具实战:从需求描述到可运行代码的完整指南

1. 从一条早报说起&#xff1a;桌面端AI编程工具到底在解决什么问题早上刷到一条消息&#xff0c;说OpenAI发布了Windows版的Codex应用。我第一反应不是“又多了一个工具”&#xff0c;而是“终于有人把这件事往前推了一步”。为什么这么说&#xff1f;因为过去一年多&#xff…

作者头像 李华
网站建设 2026/10/11 4:36:24

开发者技术雷达:GitHub趋势的深度解构与工作流渗透分析

1. 这份周报不是“新闻简报”&#xff0c;而是一份开发者自己的技术雷达扫描仪你点开GitHub Trending页面&#xff0c;刷到第5页就失去耐心——语言分类太粗、star增长曲线看不真切、新项目描述像营销话术、老项目突然爆火却找不到原因。这不是你的问题&#xff0c;是原始数据没…

作者头像 李华
网站建设 2026/10/11 4:35:23

基于Spring Boot的校园综合服务系统设计与实现详解

做校园类信息系统的同学应该都有同感&#xff1a;需求本身不复杂&#xff0c;但角色、场景、流程一多&#xff0c;系统就很容易从“一个简单的CRUD”膨胀成“一团乱麻”。最近把之前带过的某高校校园平台综合服务系统完整重构了一遍&#xff0c;基座用的就是Spring Boot。这个系…

作者头像 李华