数据统计
总安装量
277
近 24 小时
+0
用户评分
-
广告
描述
版本
评分0
权限说明
提取并下载豆包页面中的无水印原始图片,支持批量下载和缩略图预览
加载中…
一个运行在豆包网页上的用户脚本,用于提取当前页面中可匹配到的原始图片,并提供预览、单张下载和批量下载功能。 借鉴了https://scriptcat.org/zh-CN/script-show-page/7835 作者辻弌20的插件
当前版本:1.6.0
doubao-fixed.user.js 的完整内容复制进去,保存脚本。脚本的匹配范围是:
https://www.doubao.com/*
首次打开页面时,脚本需要等待页面数据返回并完成图片匹配。如果列表暂时为空,可以等待片刻,或重新打开素材列表。
脚本不会把所有曾经访问过的对话图片一直保留在列表中。它会根据当前页面中的图片元素建立索引,并将网络数据中找到的图片与当前页面进行匹配:
缩略图使用脚本识别到的原始图片地址加载。点击缩略图会打开预览层,点击关闭按钮、预览层空白区域或按 Esc 可以关闭预览。
下载时脚本优先使用用户脚本管理器提供的 GM_download 接口,并根据图片地址生成文件名,例如:
IMG_20260914_153000.PNG
脚本会根据地址中的扩展名识别 PNG、JPG、WEBP 和 HEIC。如果无法识别扩展名,默认使用 PNG。
localStorage 中,仅用于恢复按钮位置。脚本元数据中声明了以下权限:
| 权限 | 用途 |
|---|---|
GM_download |
使用用户脚本管理器下载图片,并设置文件名。 |
unsafeWindow |
访问豆包页面自身的 window 对象,以便拦截页面数据和网络请求。 |
@connect * |
允许 GM_download 访问图片实际所在的域名。 |
脚本还使用浏览器的 localStorage 保存浮动按钮位置。
先确认当前对话确实包含图片,然后等待页面数据加载完成。如果仍然为空,可以刷新豆包页面后重新打开列表。
刷新页面并等待当前对话完成加载。脚本会在路由变化时清理旧数据,并根据当前页面的图片元素重新匹配。
脚本只能使用网络响应中实际提供的原始图片地址。如果当前图片没有返回可识别的原始地址,下载结果会退回到当前可用的图片地址。
拖动浮动按钮到合适位置即可。位置会被保存,之后打开页面会继续使用该位置。
请先勾选至少一张图片。如果浏览器或用户脚本管理器限制了多个下载,还需要在对应设置中允许批量下载。
主要模块及职责如下:
| 模块或函数 | 职责 |
|---|---|
imageStore |
保存图片列表、原始地址映射、待匹配图片和文件名缓存。 |
observeCurrentPageImages() |
监听当前页面图片元素的增加、删除和地址变化。 |
processImageItem() |
从响应对象中提取图片原始地址。 |
walkImagePayload() |
遍历 JSON 数据,查找图片对象。 |
installNetworkHooks() |
安装 JSON、Fetch 和 XHR 数据拦截。 |
downloadFile() |
下载单张图片。 |
batchDownload() |
按选择顺序逐张下载图片。 |
UI_CSS、UI_HTML |
定义界面样式和 HTML 模板。 |
createUI()、bindUIEvents() |
创建 Shadow DOM 界面并绑定交互。 |
installDownloadHooks() |
改写页面图片和链接的下载地址。 |
initializeEarly()、initializeDOM() |
分别完成早期拦截和页面界面初始化。 |
1.6.0