如何从网页抓取视频资源:猫抓扩展离线下载完整指南
2026/9/7 19:54:59 网站建设 项目流程

如何从网页抓取视频资源:猫抓扩展离线下载完整指南

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

打开一门网课的播放页,右键菜单里干干净净——没有"视频另存为",页面上连<video>标签都是空的:真实数据走 MSE 管道直接喂给播放器,网络面板里只剩一屏blob:和几 MB 的.ts分片。猫抓(cat-catch)正是为此而生的浏览器资源嗅探扩展:它监听页面发出的每一个请求,把视频、音频、M3U8 等媒体资源筛出来列成清单,勾选即可预览、批量下载。

它凭什么抓得到:请求监听 + MediaSource 代理

猫抓是 Manifest V3 扩展,嗅探主干在 js/background.js:后台用webRequestonResponseStarted等钩子,按Content-TypeContent-Length从响应头识别媒体资源,按 URL 去重后按标签页分类入列。页面里则由内容脚本注入一个可隐藏的浮层面板,并代理MediaSource.prototype.addSourceBuffer(实现见 catch-script/catch.js)——blob 播放的 HLS 流数据正是从这里被拦下来逐段捕获的。M3U8 解析器是独立页面 m3u8.html,解析逻辑在 js/m3u8.js。

从安装到第一次下载

装法两种:应用商店里搜"猫抓"(Chrome、Edge 官方商店均有);或源码安装——git clone https://gitcode.com/GitHub_Trending/ca/cat-catch,到扩展管理页打开"开发者模式",点"加载已解压的扩展程序"选中该目录。装好后打开任意视频页面,让视频播几秒,点工具栏上的猫爪图标:弹出窗口的"当前页面"标签就是嗅探结果,每条资源列出文件名、类型、大小,后面挂着播放、下载、二维码按钮。勾选几条,点"批量下载",浏览器原生保存对话框逐条弹出。点单条资源还能在预览页试播;带#blob:的条目走的是页面浮层面板里的"捕获"通道。

拆开讲 M3U8 解析器:分片、密钥、合并

流程很短:解析器先请求播放列表,用内置 hls.js 解析出.ts分片 URL 与#EXT-X-KEY指向的密钥,按线程并发拉取分片,AES-128 内容在本地解密,最后经 mux.js 转封装成 mp4。核心参数集中在解析页面上:

参数作用常见取值
线程数并发下载分片的任务数1~10,网络不稳时调低
重试次数单个分片失败后的自动重下0~5
请求头 / Referer带原页面的鉴权信息请求分片403 时从资源行复制填入
密钥手动指定 AES 密钥(hex)加密流缺密钥时必填

最典型的坑:分片请求被服务器校验 Referer,解析页拿到 403、合并出的文件打不开。回资源行把原页面的请求头和 Referer 原样贴进解析器重跑一次,基本就能过;仍失败的加密流,再手动补密钥。

三种人的用法

学生:网课章节页播放后打开猫抓,列表里最大的视频条目就是课程本体;勾选整学期资源批量下载,离线补课不再看网络脸色。

内容创作者:设置页可配正则过滤,只留需要的 mp3、webm;先用预览页过一遍再下载,坏素材省得入库。

流媒体工程师:解析器页直接展示分片清单、时长与大小,配合预览功能验证合并结果;MPD(DASH)资源走同目录的 mpd.html 通道,结构一目了然。

跑稳了:高频问题对照

现象原因解法
列表为空页面还没发起媒体请求让视频播放数秒,或手动刷新重嗅探
只抓到 blob 资源、点不动数据走 MSE 管道,不是直链用页面上的猫抓浮层面板"捕获",完成后点"下载已捕获的数据"
M3U8 解析 403分片接口校验 Referer / 请求头填入来源页面的请求头与 Referer 重跑
下载慢、分片失败多并发过高触发限流调低线程数,开重试次数
合并文件无音轨或音画不同步选错分轨 / 密钥错误重新选正确码流,核对加密流密钥

边界与社区

只下载你拥有版权或已获授权的内容——这一点 README 写得很直白,法律责任由使用者自担。隐私方面:资源列表、配置全部存在本地,数据不回传,无跟踪器;网站方也不满可以提交 Issue,把域名加入"避免抓取列表"。仓库长期接受 Issue 与 PR;十种语言的文案在 _locales/ 目录,翻译也走这里(项目为 GPL v3)。下一次播放网页视频时,点开工具栏那只猫爪,先看看列表里藏了什么。

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

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

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

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

立即咨询