猫抓 Cat-Catch:网页视频下载嗅探实战指南,带避坑清单
【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
想找一段网页视频下载下来,页面偏偏不给下载按钮,右键另存为只存到一页 HTML 代码。猫抓(Cat-Catch)是个浏览器媒体资源嗅探扩展:它盯着页面发出的每个网络请求,把 MP4、M3U8 流媒体、音频挑出来列成清单,点一下就能存到本地,数据全程留在你的浏览器里,不往任何远程服务器发。
它最核心的三个用途:
- 把网页里播的 MP4/WebM 视频、MP3/AAC 音频挑出来,下载成完整文件
- 把 M3U8/MPD 这种切成几十上百个分片的流媒体合并成一个可播放文件
- 网页直播没有文件 URL 时,把流实时录下来存本地
📦 三步装好猫抓
- 打开 Chrome / Edge / Firefox 对应的扩展商店
- 搜索「猫抓」或「Cat-Catch」
- 点「添加到浏览器」,装完即生效
提醒一句:猫抓是开源项目,商店里出现过塞广告代码的二改版本,装之前认准官方开发者页面。想从源码装的话:
git clone https://gitcode.com/GitHub_Trending/ca/cat-catch然后到扩展管理页打开「开发者模式」,点「加载已解压的扩展程序」,选中 clone 下来的文件夹即可。
有一个硬性门槛:Chromium 内核 93 以上才能跑(manifest.json 里写着"minimum_chrome_version": "93"),文档建议 104 以上才能体验完整功能,内核更老的浏览器别硬试。
🎬 首次上手:把网页视频存到本地
这是最普通的视频下载场景——网页上正在播一个 MP4,想原样存下来:
- 打开视频页面,先点一下播放。这一步是让媒体请求真正发出去,之后随时可以暂停
- 点工具栏猫抓图标,「当前页面」页签就是抓到的资源列表:每一行标着文件名、大小、MIME 类型
- 选中目标那条 MP4,面板会显示时长和分辨率;再点播放图标在弹层里预览,确认是想要的内容
- 点下载按钮,文件进浏览器默认下载目录,弹层提示「已保存到硬盘」
坑:列表里只有图片和 .js、翻不到视频?多半是媒体请求还没发出——滚动页面或点播放让它加载,再回面板看。
面板底部一排按钮负责批量操作:全选/反选、复制拿链接、清空列表,还有「模拟手机」换 User-Agent 重新请求、「自动下载」免确认直接存。
🛠 进阶技巧:M3U8合并、过滤规则、录直播
把 M3U8 分片合并成一个完整文件
很多站点把片子切成几十上百个 TS 分片,直接下只得到一堆碎片。猫抓的解析器负责把它们收拢:
- 在资源列表选中那条 M3U8,点行尾的解析图标,「M3U8 解析器」页面打开
- 顶部直接显示切片总数、总时长、分辨率,下面列出全部分片
- 调下载线程数(默认 6,可自己填);加密的流在密钥栏填自定义密钥(16 进制或 base64),或直接上传密钥文件
- 点「合并下载」,产物是一个完整 MP4;只要声音的话勾「只要音频」,单抽出音轨
坑:加密流不给 Key 是解不出来的,合并完只能得到坏文件。解析器里填自定义密钥或上传 Key 文件,实在没有 Key 就勾「跳过解密」先存下原始分片。
正则过滤规则:只留视频
列表里混着缩略图、JS 请求很碍眼。设置页可以配正则:
- 正则匹配(白名单):URL 命中正则才进列表,比如只留
.mp4 - 屏蔽资源(黑名单):命中的直接丢弃,把带
preview的缩略图 URL 排掉最实用
坑:正则匹配的是完整请求 URL 而不是文件名,查询参数里的.、?记得转义,写之前用设置页的「正则测试」跑一遍。
录直播:没有文件,就把流录下来
网页直播走 WebRTC 时根本没有文件 URL。猫抓代理页面的RTCPeerConnection,用 MediaRecorder 把收到的流实时录成 WebM,录完存本地。
坑:录制跟着播放走,30 分钟的直播要挂 30 分钟,中途关页面就只剩半成品。
⚙️ 实现机制:从请求监听到资源列表
chrome.webRequest后台监听每个网络请求 → 取 URL 后缀和响应头 Content-Type → 和内置类型、后缀规则、你自定义的正则比对 → 命中就挂进弹层列表;M3U8 再交给 hls.js 拆分片、合并下载。
- 请求捕获和规则匹配写在 js/background.js(service worker)
- 页面内的浮层由 catch-script/catch.js 注入
- M3U8 解析、分片列表和合并下载在 js/m3u8.js
- WebRTC 代理与 MediaRecorder 录制在 catch-script/webrtc.js
❓ 自诊清单:卡住了先对号入座
抓不到视频,页面明明在播可能原因:媒体请求还没发出(很多站点点了播放才加载),或流带 DRM 保护。 解法:先点播放再打开面板;DRM 加密的流抓不到,换清晰度或换源。
列表是空的,扩展没反应可能原因:扩展被暂停了,或 Chromium 内核低于 93。 解法:面板里把启用开关打开;地址栏输chrome://version查内核版本,低于 93 的换新版浏览器。
M3U8 合并完打不开可能原因:只下了部分分片,或加密流忘了给密钥。 解法:回解析器把「下载范围」设成全部分片,补上密钥或勾「跳过解密」重新合并。 如果提示 SAMPLE-AES-CTR 加密「目前无法处理」,那这条流猫抓本身就解不了,换源。
H.265 编码的分片预览不了可能原因:HEVC/H.265 切片不支持本地预览,只支持在线 ffmpeg 转码。 解法:走「ffmpeg 转码 / mp4 格式」的在线转换路径,文件大时提示等待属正常,别当卡死。
下一步就一个动作:打开扩展商店搜「猫抓」点安装,再打开任意带视频的页面点一下播放,清单就出来了。丑话说在前头:只下载你自己有版权或已获授权的内容,这是使用这条工具的底线。
【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考