news 2026/9/7 16:08:39

Cat-Catch:支持 HLS/DASH 合并下载的浏览器资源嗅探扩展

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cat-Catch:支持 HLS/DASH 合并下载的浏览器资源嗅探扩展

Cat-Catch:支持 HLS/DASH 合并下载的浏览器资源嗅探扩展

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

Cat-Catch(猫抓)是一个采用 GPL-3.0 协议开源的网页视频下载类浏览器扩展,当前版本 2.7.2。它通过拦截页面网络请求,把视频、音频、图片资源整理成可筛选的列表,并支持直链下载与 HLS(M3U8)、DASH 流媒体合并,全程在本地处理数据,不带跟踪器。

拆解请求拦截与媒体识别链路

猫抓的工作流程分四层。第一层是请求捕获:扩展以 Manifest V3 形式运行,js/background.js中的 Service Worker 监听页面的所有网络响应,按 MIME 类型、URL 后缀和响应头中的 Content-Length 做初步归类;同时注入到每个页面的catch-script/catch.js会处理 iframe 内嵌播放、移除 sandbox 限制,保证动态加载的资源不被漏掉。第二层是资源识别与去重:捕获到的候选资源进入background.jsfindMedia过滤逻辑,按类型、大小规则(支持>100 KB500-1000 MB这类表达式)筛出最终列表,并可通过正则做二次匹配。第三层是流媒体解析:对 M3U8 播放列表走js/m3u8.js的专用管线,对 MPD 清单走js/mpd.js(基于 mpd-parser)。第四层是下载执行:js/downloader.js负责分片并发拉取、进度回传,必要时把数据流转发给 ffmpeg 处理。

模块职责对应文件
资源嗅探核心页面内捕获请求、处理 iframe、维护捕获开关catch-script/catch.js
后台消息中枢请求过滤、媒体判定、命令路由js/background.js
M3U8 解析器播放列表解析、加密处理、分片合并js/m3u8.js
下载管理器并发下载、进度监控、ffmpeg 对接js/downloader.js
弹出界面资源列表渲染、预览、批量操作js/popup.js

解析 M3U8 流媒体的处理管线:

  1. 拉取并解析播放列表,枚举全部分片(segment)
  2. 识别加密标签,自动获取或按用户输入补全 AES-128 密钥
  3. 以多线程并发下载分片,默认 6 线程
  4. 解密并依序合并,可按需转换为 MP4 格式
  5. 出错自动重试,完成后自动剔除已下载成功的切片

安装并下载第一个视频

  1. 应用商店:在 Chrome / Edge / Firefox 官方商店搜索 Cat-Catch 安装;或从源码安装:git clone https://gitcode.com/GitHub_Trending/ca/cat-catch,在扩展管理页打开"开发者模式"后"加载已解压的扩展程序"。
  2. 捕获资源:打开含视频的目标页面,播放视频,点击工具栏的猫抓图标,面板会列出当前页捕获到的全部媒体资源。
  3. 完成下载:勾选目标文件,点击下载即可保存到本地;M3U8 链接可粘贴进插件自带的解析器页面完成合并。

三个真实使用切片

保存一门网课的完整视频列表(直链类)

  • 触发条件:页面以 MP4 等常规格式加载,资源在播放后才出现在网络请求中。
  • 操作步骤:播放视频等待几秒;打开猫抓面板按大小或格式筛选;勾选需要的高清分片;批量下载。
  • 产物与注意:得到若干独立视频文件。若列表为空,多为资源懒加载,需先播放再捕获;带 Referer 校验的直链在外部播放器中可能打不开,属正常现象。

合并一场直播回放为离线 MP4(HLS 类)

  • 触发条件:视频由.m3u8播放列表 + 多分片组成,直接下载只能拿到列表文件。
  • 操作步骤:复制播放列表地址或从面板打开 M3U8 解析器;粘贴链接解析,核对分片数与时长;按需设置线程数与输出格式;开始合并。
  • 产物与注意:得到单个 MP4/合并文件。遇到一次性签名 URL 时,解析器可尝试从已捕获的缓存读取数据;部分列表带 EXT-X-BYTERANGE 标签,2.6.8 起已支持合并。

提取一个网页里的全部图片(批量类)

  • 触发条件:页面图片以<img>或背景图形式加载,数量较多。
  • 操作步骤:完整滚动页面触发全部加载;打开面板切换到图片类型筛选;按大小表达式(如>100 KB)过滤掉图标;批量保存。
  • 产物与注意:得到图片文件集合。注意区分缩略图与原图,同名不同尺寸的图建议按大小字段二次核对。

列出猫抓覆盖不到的边界

  • 带 DRM(Widevine、PlayReady 等)保护的正版流不在支持范围内,扩展不提供任何解密绕行。
  • WebRTC 直播依赖脚本重放录制(catch-script/recorder.js),对部分平台握手流程不稳定。
  • DASH(MPD)支持相对较新,多码流多音轨的复杂清单下,码流组合选择能力有限。
  • Firefox 与移动端(Edge Android 等)的兼容是持续修补中的状态,个别功能以 Chromium 上体验为准。

排查嗅探与下载故障

现象大概率原因处理方式
面板列表为空或缺资源资源懒加载,未播放不触发请求先播放视频,等待数秒后刷新捕获
M3U8 部分分片 403分片 URL 为一次性签名用已捕获缓存重新解析;2.7.1 起出错自动重试
预览窗口无法播放资源带 Referer/防盗链校验改用直链复制或浏览器原生播放确认
合并速度低于预期并发过高导致连接被限流降低线程数,或交给 aria2 / 本地程序接管
  • M3U8 下载线程数默认 6(m3u8.html中可见),弱网下可先调到 2-4 观察成功率。
  • 过滤大小支持表达式与区间,例如>100 KB500-1000 MB,可直接用来剔除缩略图。
  • 各参数的完整默认值以项目文档和设置页为准。

定位核心目录与参与入口

  • catch-script/:页面侧嗅探脚本,含 WebRTC 录制逻辑
  • js/:后台、解析器、下载器与 UI 主逻辑
  • _locales/:10 种语言的界面文案(zh_CN、en、es、ja、ko、ru 等)
  • lib/:第三方库(hls.js、mux.js、mpd-parser 等)
  • README.md、CHANGELOG.md:安装说明与逐版本变更记录

问题反馈与功能建议通过仓库 Issue 提交,代码或翻译改进可提交 PR;网站运营方也可按 README 中"版权保护与拒绝抓取声明"的格式提交 Opt-Out 申请。

Cat-Catch 的定位始终是本地优先的媒体资源嗅探与下载工具,能力边界如上所述,使用请遵守内容版权。更多说明见 README.md。

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

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

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

放大器频率补偿实战:从相位裕度到密勒补偿

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 16:06:01

家装公司AI智能体落地指南:从售前咨询到测试集设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 16:05:38

React Native美食日记应用开发实战:从数据库设计到性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 16:04:09

离线OCR+本地大模型:Windows环境下的OCR-10结构化字段提取方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华