猫抓 Cat-Catch:浏览器资源嗅探与 M3U8 合并下载完整指南
【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
在视频网站上想存下一个视频,右键"另存为"却只能存到半截网页,或者只拿到一份 m3u8 播放列表?猫抓(cat-catch)是一款开源的浏览器资源嗅探扩展,它在页面加载时替你记下所有媒体请求,把视频、音频、图片整理成清单供你挑选下载,还能把 m3u8 流媒体解析合并成完整的 mp4。全程在本机完成,数据不出电脑。
拿到并装好它:应用商店、源码与 CRX 三种安装途径
装之前先确认浏览器版本:1.0.17 之后的版本需要 Chromium 内核 93 以上,低于 93 只能用 1.0.16;想要完整功能,建议104 以上。
🛒 应用商店安装
- 在 Chrome、Edge 或 Firefox 的官方扩展商店搜索"猫抓",认准开发者信息后安装。
- Firefox 商店需要非国区网络才能访问。
商店里出现过别人注入广告代码后上架的"伪猫抓",猫抓是开源项目,装之前花十秒核对一下开发者信息,别贪快装错包。Edge Android 有对应版本,用手机扫码即可安装。
📂 源码加载安装
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/ca/cat-catch - 打开浏览器扩展管理页面,开启"开发者模式"。
- 点"加载已解压的扩展程序",选中刚才克隆下来的文件夹。
这条路适合想逐行核对代码、或者想第一时间体验新版本的人。
📦 CRX 打包文件安装
- 从项目 Releases 页面把 .crx 文件右键另存为到本地。
- 开启扩展管理页面的"开发者模式",把 crx 文件直接拖进去。
适合想把版本固定在某一个号的场景——商店版会自动更新,而 crx 装完就停在你选的版本。
上手主流程:打开视频页,到文件落盘的完整链路
以"保存一个社交平台的短视频"为主线,走一遍最常用的流程。
第一步:让资源先"露面"。打开视频页面并完整播放一遍。嗅探的前提是浏览器真的去请求了数据,播过的片段对应的请求才会被记录下来。
第二步:打开猫抓查看资源清单。点工具栏上的猫抓图标,弹窗分三个标签页:
- 当前页面:本页面捕获到的资源,每条显示文件名和大小,勾选后展开标题、MIME 类型、时长、分辨率和完整地址
- 其他页面:同标签页里其他来源捕获的资源
- 媒体控制 / 其他功能:播放速度、画中画、截图,以及 M3U8 解析器、MPD 解析等入口
第三步:挑对文件。列表里点播放图标先预览,确认时长和分辨率对得上,再看文件大小做交叉判断——文件小得离谱的一般不是正片。想省掉肉眼找的过程,就用底部的搜索框输入关键词,或者用"筛选"过滤类型。
第四步:下载。勾选目标后按"下载所选",文件进入浏览器的默认下载目录(位置在浏览器"下载内容"设置里改)。
它是怎么做到的?一句话:内容脚本在页面还没开始渲染时就进场,把此后发出的每个网络请求都过一遍筛子。js/content-script.js 在页面加载最早期注入,catch-script/catch.js 负责记录和过滤,把视频、音频这类媒体请求从杂七杂八的接口里挑出来。类比一下:网站像一条马路,猫抓就是在路口放个登记员,每辆车(请求)都记个名,然后只放行长得像货车的(媒体资源)。
M3U8 解析器:把切片流合并成完整 mp4
直播和很多点播站不直接发完整视频,而是把内容切成一段段 TS 小分片,用一份 m3u8 清单按顺序播放。直接下载 m3u8 链接只会拿到清单本身。js/m3u8.js 内置的解析器就是干这个的。
操作链路:在资源列表里找到 m3u8 地址(或在解析器里手动粘贴),点解析。界面顶部显示分片总数、总时长、分辨率,下面列出每一段 TS 的完整地址。调好参数后点"合并下载",即可得到完整文件。
关键参数说明:
- 下载线程数 / 下载范围:控制并发数,或只下载部分分片(比如只要前几段)
- mp4 格式:合并时直接封装成 mp4,而不是保留原始 ts
- 只要音频:仅提取音轨,文件体积大幅缩小
- 跳过解密 / 自定义密钥(16 进制或 base64)/ 偏移量 IV / 上传 Key:处理 AES 加密的 HLS 流;流带加密时把密钥填进"自定义密钥"栏再合并
- 调用 m3u8DL 下载 / 复制 m3u8DL 命令:把活儿交给外部下载器,浏览器直接合并大流比较吃内存,外部工具接手更稳
- 本地 m3u8 / 指纹 m3u8 / ts 列表:把解析结果另存到本地或导出分片列表,方便交给其他工具
- HEVC/H.265 分片:可发送在线 ffmpeg 转码,浏览器自己搞不定硬解时用它
弹窗里还有 MPD(DASH 流)解析器和 JSON 格式化查看器,遇到 DASH 流或想检查接口返回数据时可以顺手用上。
进阶功能与外部工具配合
主线之外还有几个值得知道的开关,点到为止:
- 自动下载:开启后新捕获的资源自动下载,适合固定来源的周期性抓取
- 模拟手机:把用户代理切换成移动端后重载页面,对付"只给手机看"的资源
- 复制所选 / 全选 / 反选:批量圈定范围;"复制所选"能把多个地址一次拷进剪贴板,交给 Aria2 这类下载管理器
- 录制脚本:把一串操作步骤录下来重复执行,减少手工点击
- 深度搜索 / 缓存捕获:从已捕获内容和浏览器缓存里再翻一遍资源
- 侧边栏模式:Chromium 下可把猫抓固定到侧边栏,边看页面边操作列表
- 媒体控制:播放速度调节、画中画、截图、循环播放
- 唤起第三方工具:支持 m3u8DL 自定义协议、Aria2 RPC(可填下载目录)、发送在线 ffmpeg 转封装
下载相关的逻辑集中在 js/downloader.js,弹窗交互在 js/popup.js,行为对不上预期时直接翻这两处。
出问题时怎么办:现象、原因与解决办法
- 抓不到资源→ 常见原因有三种:资源是滚动或点击后才加载的(先把页面滚到底再刷新);资源只向移动端 UA 下发(点"模拟手机"切换代理后重载);内容受 DRM 保护(这种抓不到属正常)。还不行就用深度搜索再找一遍。
- 下载中断或失败→ 扩展检测到失败会自动启用下载器重试;M3U8 合并遇到坏分片可以单独重下该分片。大文件挑网络稳定的时段做。
- 下载的文件去哪了→ 默认在浏览器下载目录,改位置去浏览器"下载内容"设置里调。
- 内存占用偏高→ 捕获了大量资源后关一下弹窗即可释放。
- 更新→ 商店安装的由浏览器自动更新;源码或 CRX 装的,在新版本发布后重新克隆或拖入新 crx 再加载一次。
关于数据:采集和解析全部在本地完成,没有跟踪器,也不往远程服务器发数据。版权方面一句话:只下载你拥有版权或已获授权的内容,其余风险由使用者自行承担。网站运营方若不希望域名被嗅探,可在仓库提交标题为[Opt-Out Request] 你的域名的 Issue 并附域名与联系邮箱,核实后域名会加入"避免抓取列表"。
小结
猫抓把"从网页里把媒体拿出来"拆成三步:看清单、预览确认、下载;遇到 m3u8 流就交给内置解析器合并。功能不花哨,但覆盖得全,代码完全公开。
核心模块位置:
- 资源嗅探核心:catch-script/catch.js
- 页面注入脚本:js/content-script.js
- M3U8 解析器:js/m3u8.js
- 下载器:js/downloader.js
- 弹窗界面:js/popup.js
- WebRTC 录制:catch-script/webrtc.js
【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考