Install
FastNow / SiteAssetDL

Published:

Version: 1.0.0+259699d

Summary: 嗅探页面图片/视频/音频/字体/字幕资源。懒加载深度扫描、并发批量下载、流式直写硬盘、原生压缩打包、多格式导出。悬浮按钮与窗口可拖动,适配触摸与桌面设备。

Homepage: https://github.com/fastnow/UserJs

Support: https://github.com/fastnow/UserJs/issues

License: MIT

Antifeature: unspecified

SiteAssetDL — 站点资源嗅探与批量下载

一键嗅探当前页面的 图片 / 视频 / 音频 / 字体 / 字幕 资源,懒加载深度扫描、并发批量下载、流式直写硬盘、原生 ZIP 打包、多格式导出。

版本 1.0.0 · 许可 MIT · 作者 FastNow Studio
运行位置 所有站点(@match *://*/*,document-start)


它能做什么

打开任意网页,右下角出现「嗅探」悬浮按钮,点开即得到整站资源清单:缩略图、文件名、体积、尺寸、来源渠道一目了然。勾选后可直接打包 ZIP、流式写入本地文件夹,或导出成 aria2 / wget / curl / CSV / JSON 等格式。

核心特性

深度嗅探

  • 七路采集:Performance 资源计时 + PerformanceObserver 实时增量 + DOM 元素 + data-* 懒加载属性 + CSS @font-face / url() + <style> 内联 + 计算样式背景图
  • 内置 60+ 常见懒加载属性名(data-src / data-original / data-lazy-src / data-ks-lazyload…),并对含 src / img / url / bg / thumb 等关键词的自定义属性做启发式匹配
  • 深度扫描:强制「解冻」占位图(自动替换为真实地址并备份原值)、自动滚动触发懒加载、可选追踪无限滚动、等待网络空闲后二次采集,扫描完自动还原页面
  • 智能识别占位图与 1×1 像素空图,过滤 script / xhr / fetch / beacon 等噪声请求
  • 支持 srcset 解析并自动挑最高权重项、data: 内联资源、SVG <image>/<use>、<track> 字幕、<source> 多码率
  • 悬停图片即时预览、点击放大(左右方向键切换)、「定位」按钮滚动到页面中对应元素
  • SPA 友好:监听 urlchange / popstate / hashchange 与 pushState / replaceState,换页自动清空重采

筛选与管理

  • 类型标签(全部 / 图片 / 视频 / 音频 / 字体 / 字幕)各带实时计数
  • 关键词搜索(文件名、URL、alt)、按来源筛选(已加载 / 懒加载 / CSS 背景)
  • 进阶筛选:宽度下限、体积区间、域名包含、关键词排除(逗号分隔)、仅懒加载
  • 5 种排序:智能(大图优先)、体积升降、最新加载、文件名
  • 批量选择:全选 / 反选 / 仅图片 / 仅大图(≥1000px)/ 仅懒加载 / 仅重复项
  • 重复资源识别(同类型 + 同体积 + 同尺寸)一键移除
  • 「探测大小」用 HEAD 请求补全真实体积与 MIME 类型,并据此修正分类

下载与导出

  • 打包 ZIP:并发队列(1–16)下载 + 浏览器原生 CompressionStream 压缩,智能模式自动跳过已压缩格式(jpg/mp4/mp3/woff2…)
  • 存到文件夹:File System Access API 流式直写磁盘,边下边写,适合超大文件
  • 逐个下载:优先 GM_download,失败自动回退到 GM_xmlhttpRequest
  • 实时进度条:已完成数 / 字节数 / 速度 / 剩余时间,失败自动重试(0–5 次)、连续失败自动降速,403/404/410 判定为永久失败不重试
  • 一键「重试失败 N」
  • 导出格式:URL 列表 (.txt)、aria2 输入文件、wget 脚本、curl 脚本、Markdown、CSV(带 BOM)、JSON;均自动带上 Referer
  • 复制选中 URL / 文件名到剪贴板

界面与体验

  • Shadow DOM 隔离,不污染页面样式;浅色 / 深色 / 跟随系统三档主题
  • 悬浮按钮与窗口均可拖动、边角可缩放,位置自动记忆
  • 触摸端适配(Pointer Events + pointer: coarse 检测),手机平板同样可拖拽
  • 按类型或按域名分组显示,虚拟滚动分块渲染,上千条不卡
  • 快捷键:Alt+S 开关面板、Esc 关闭 / 退出预览、Ctrl/Cmd+A 全选、←/→ 切换预览
  • 任务完成系统通知;高级用户可通过 window.__snifferPro 调用内部 API

安装

  1. 安装 Tampermonkey / Violentmonkey / Greasemonkey 等用户脚本管理器
  2. 打开本脚本安装链接,确认安装
  3. 首次安装后刷新目标页面,document-start 脚本才能完成采集

使用方法

  1. 打开目标网页,点右下角「嗅探」按钮(或按 Alt+S)
  2. 需要挖懒加载内容时点「深度扫描」;只想要 CSS 背景图可在设置里单独开关
  3. 用标签页 / 搜索 / 筛选框缩小范围,配合「批量选择」勾选
  4. 点「打包 ZIP」或「存到文件夹」,等待进度条完成
  5. 只想拿链接:选「导出…」挑一个格式

设置项说明

项目 说明
下载并发数 1–16,越高越快,但可能被站点限流;连续失败会自动降速
失败重试次数 0–5
ZIP 压缩 智能(推荐)/ 不压缩(最快)/ 全部压缩(最小)
分组显示 不分组 / 按类型 / 按域名
主题 跟随系统 / 浅色 / 深色
扫描 CSS 背景图 关闭可减少无关图标干扰
深度扫描时强制解冻 把占位图替换成真实地址,扫描后自动还原
深度扫描时自动滚动 模拟滚动触发懒加载
追踪无限滚动 到底部仍继续尝试加载更多(耗时更长)
去重时忽略 URL 参数 同一资源的 ?w=800 与 ?w=1200 视为同一条
悬停快速预览 鼠标移到缩略图上放大
记住窗口位置 记住面板位置与尺寸
任务完成后通知 打包 / 保存完成时弹系统通知

设置保存在脚本管理器存储中,换页面、重启浏览器均保留。

权限说明

权限 用途
GM_download 逐个下载文件
GM_xmlhttpRequest 抓取二进制资源、HEAD 探测体积,绕过页面 CORS 限制
GM_setValue / GM_getValue 保存偏好设置
GM_setClipboard 复制 URL / 文件名
GM_notification 任务完成通知
unsafeWindow 暴露 __snifferPro 调试接口
window.onurlchange 监听 SPA 换页
@connect * 资源可能来自任意 CDN

脚本不向任何第三方服务器上传数据,只在你的浏览器内下载与打包。

已知限制

  • 受同源策略与防盗链影响,部分资源需在原页面上下文才能下载;已默认带上 Referer
  • 「存到文件夹」依赖 File System Access API,仅 Chromium 系浏览器支持,其他浏览器请用打包 ZIP 或逐个下载
  • ZIP 单个压缩包最多 65535 个文件
  • 需要登录或有签名时效的 URL,过期后无法下载,建议及时导出
  • DRM 保护的流媒体(如加密 m3u8/mpd)只能拿到索引文件,不会解密合并

免责声明

请仅下载你拥有权利或站点允许下载的资源,遵守目标网站的 robots 与服务条款,勿用于商业侵权用途。


© FastNow Studio · MIT License · https://github.com/fastnow/UserJs

Rating: 0