一个基于 Chrome / Edge Manifest V3 的浏览器扩展,用来捕获“当前标签页里真实加载过”的媒体资源,并提供分类查看、下载、流媒体分析和页面内悬浮面板。
它更像“当前页媒体助手”,不是全站爬虫。
- 嗅探当前页面里实际请求过的音频、视频、图片和部分其他可下载资源。
- 在弹窗里按
视频 / 图片 / 音频 / 其他分类展示结果。 - 对普通直链资源直接下载。
- 对
blob:资源走页面内抓取,再转成可下载内容。 - 识别
m3u8、mpd、ts、m4s这类流媒体相关资源。 - 分析 HLS / DASH 索引文件,给出索引类型、分片/变体数量、是否加密、直播/点播等信息。
- 自动生成适合 PowerShell 使用的
ffmpeg命令,方便把流媒体索引交给ffmpeg拉流。 - 支持把资源列表固定成页面右上角的悬浮面板,边浏览边下载。
- 支持按类别开关捕获,并为当前标签页显示资源数量徽标。
这个扩展不是靠单一手段抓资源,而是把几条链路叠在一起做:
background.js 里通过 chrome.webRequest 监听当前标签页的请求完成事件:
- 读取 URL、
Content-Type、Content-Length - 尝试记录
Referer - 按标签页维护资源列表
- 自动判断资源分类和下载模式
这条链路适合抓“浏览器真实发出去并成功返回”的资源,是最稳定的一层。
有些站点的资源不会完整暴露给扩展隔离环境,所以 page-bridge.js 会直接注入页面主世界,补抓这些线索:
- 劫持
fetch - 劫持
XMLHttpRequest - 劫持
HTMLMediaElement.src - 劫持
HTMLSourceElement.src - 劫持
Audio()构造 - 劫持
URL.createObjectURL()
这样可以捕获页面脚本自己发起的请求、运行时设置的媒体地址,以及 blob: 资源来源。
content.js 会扫描页面已有元素,并持续监听后续变化:
- 扫描
audio、video、img、source、a[href] - 用
MutationObserver监控异步插入和属性变更 - 把新增媒体线索继续上报给后台
这条链路主要补“已经挂到 DOM 上,但不一定走标准媒体请求识别”的资源。
扩展不会对所有资源都用同一种下载方式,而是按类型分流:
- 普通小文件:优先抓成 Data URL 再下载
- 大文件:直接走浏览器下载
blob:资源:回到页面上下文里fetch后再下载m3u8/mpd:允许下载索引文件本身,但会提示更推荐分析或复制ffmpeg命令ts/m4s:识别为流媒体分片,只下载单个切片
这样做的原因是:不同资源的可访问性不同,尤其是 blob:、跨上下文请求和流媒体索引,不能用一种方式硬套。
后台会把 m3u8 或 mpd 文本抓回来做轻量解析:
- HLS:识别主索引 / 媒体列表、变体数量、分片数量、目标分片时长、分辨率、码率、是否加密、直播/点播
- DASH:识别表示层数量、
AdaptationSet数量、SegmentTemplate、时间线、时长、是否加密、直播/点播
分析结果会缓存一段时间,并结合 Referer、Origin、User-Agent 生成一条可直接执行的 ffmpeg 命令。
这个项目能做:
- 抓当前标签页已经加载过的媒体资源
- 帮你定位真实媒体地址
- 帮你分析流媒体索引
- 帮你生成后续命令
这个项目不能做:
- 不是全站爬虫
- 不是 DRM 绕过工具
- 不能自动破解鉴权
- 不能去水印
- 目前不会自动把 HLS / DASH 合并成最终视频文件
如果目标站点强依赖登录态、页面环境、签名参数或播放器运行时上下文,离开原页面后仍然可能下载失败。
当前规则主要覆盖常见媒体后缀和响应类型,例如:
- 音频:
mp3、wav、flac、m4a、ogg、aac、wma、opus - 视频/流媒体:
mp4、webm、mkv、mov、avi、m3u8、ts、m4s、mpd - 图片:
jpg、jpeg、png、gif、webp、bmp、svg、avif - 其他:当前额外对部分站点放开
zip、rar
manifest.json:扩展清单和权限配置shared.js:公共规则、媒体识别、下载模式判断、消息常量background.js:后台状态管理、网络监听、下载执行、流媒体分析page-bridge.js:页面主世界桥接,补抓 fetch/XHR/blob 线索content.js:DOM 扫描、页面悬浮面板、页面内抓取兜底popup.htmlpopup.js:弹窗界面、分类展示、下载、分析和设置
- 打开 Chrome 或 Edge 扩展管理页。
- 开启“开发者模式”。
- 选择“加载已解压的扩展程序”。
- 选择当前项目目录。
- 打开目标页面并让媒体真实加载出来。
- 点击浏览器工具栏里的扩展图标。
- 在弹窗里按分类查看资源。
- 普通资源直接点“下载”。
- 遇到
m3u8或mpd时,优先点“分析”或“复制 ffmpeg”。 - 如果想边浏览边看结果,可以点“固定到页面”。
- 找页面里真实播放的音频或视频地址
- 抓图片、封面、播放器加载的媒体文件
- 调试站点媒体请求流程
- 快速拿到
m3u8/mpd后交给ffmpeg
请只对你有权访问、下载和使用的资源使用本工具,并自行遵守目标网站服务条款、版权要求和相关法律法规。