猫抓 Cat-Catch:网页视频下载嗅探实战指南,带避坑清单
2026/9/7 8:56:05 网站建设 项目流程

猫抓 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 时,把流实时录下来存本地

📦 三步装好猫抓

  1. 打开 Chrome / Edge / Firefox 对应的扩展商店
  2. 搜索「猫抓」或「Cat-Catch」
  3. 点「添加到浏览器」,装完即生效

提醒一句:猫抓是开源项目,商店里出现过塞广告代码的二改版本,装之前认准官方开发者页面。想从源码装的话:

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

然后到扩展管理页打开「开发者模式」,点「加载已解压的扩展程序」,选中 clone 下来的文件夹即可。

有一个硬性门槛:Chromium 内核 93 以上才能跑(manifest.json 里写着"minimum_chrome_version": "93"),文档建议 104 以上才能体验完整功能,内核更老的浏览器别硬试。

🎬 首次上手:把网页视频存到本地

这是最普通的视频下载场景——网页上正在播一个 MP4,想原样存下来:

  1. 打开视频页面,先点一下播放。这一步是让媒体请求真正发出去,之后随时可以暂停
  2. 点工具栏猫抓图标,「当前页面」页签就是抓到的资源列表:每一行标着文件名、大小、MIME 类型
  3. 选中目标那条 MP4,面板会显示时长和分辨率;再点播放图标在弹层里预览,确认是想要的内容
  4. 点下载按钮,文件进浏览器默认下载目录,弹层提示「已保存到硬盘」

坑:列表里只有图片和 .js、翻不到视频?多半是媒体请求还没发出——滚动页面或点播放让它加载,再回面板看。

面板底部一排按钮负责批量操作:全选/反选、复制拿链接、清空列表,还有「模拟手机」换 User-Agent 重新请求、「自动下载」免确认直接存。

🛠 进阶技巧:M3U8合并、过滤规则、录直播

把 M3U8 分片合并成一个完整文件

很多站点把片子切成几十上百个 TS 分片,直接下只得到一堆碎片。猫抓的解析器负责把它们收拢:

  1. 在资源列表选中那条 M3U8,点行尾的解析图标,「M3U8 解析器」页面打开
  2. 顶部直接显示切片总数、总时长、分辨率,下面列出全部分片
  3. 调下载线程数(默认 6,可自己填);加密的流在密钥栏填自定义密钥(16 进制或 base64),或直接上传密钥文件
  4. 点「合并下载」,产物是一个完整 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询