Skip to content

cadeneo996/SyncFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

云盘秒传工具(百度 / 夸克 / 天翼 / 123 / 光鸭)

一个 Tampermonkey/Greasemonkey 用户脚本:

  • 在百度、夸克、天翼、123 网盘页面中导出秒传 JSON
  • 在光鸭盘页面导入秒传 JSON 到当前账号

当前脚本文件:云盘秒传工具.ts

支持站点

  • 夸克网盘:pan.quark.cndrive.quark.cn
  • 天翼云盘:cloud.189.cn
  • 123 网盘:123pan.com / 123pan.cn
  • 百度网盘:pan.baidu.com
  • 光鸭盘:guangyapan.com

能力范围(按站点)

  • 夸克
    • 个人盘:导出(支持勾选文件/文件夹,递归扫描)
    • 分享页:导出(支持勾选后导出;需要有效 Cookie)
  • 天翼
    • 个人盘:导出(缺失 MD5 时会尝试补全)
    • 分享页:导出(支持带提取码场景)
  • 123
    • 个人盘:导出(支持虚拟列表多选场景)
  • 百度
    • 个人盘:导出(支持勾选文件/文件夹,递归扫描)
  • 光鸭
    • 导入:将秒传 JSON 导入当前账号

主要功能

  • 生成秒传 JSON(导出)
    • 入口按钮:生成秒传JSON
    • 自动识别勾选文件/文件夹,递归扫描文件列表
    • 输出可复制、可下载 .json
    • 夸克/天翼分享场景可附带分享标题(可选写入 commonPath
  • 导入秒传 JSON(光鸭)
    • 入口按钮:导入秒传JSON
    • 支持粘贴 JSON 或选择本地 .json 文件
    • 选择文件后自动校验格式,不合法不写入输入框
    • 自动创建目录层级后再逐条秒传
  • 导入阶段统计
    • 显示“创建目录失败(未进入秒传)”和“进入秒传阶段”数量
    • 显示总结果:成功/失败,以及失败中有多少是目录创建失败
  • 失败明细分类
    • 接口调用失败
    • 秒传失败
    • 创建目录失败(未进入秒传)
    • 校验未通过(未提交接口)

安装与使用

1) 安装脚本

  1. 安装浏览器用户脚本扩展(Tampermonkey/Greasemonkey)
  2. 新建脚本并粘贴 云盘秒传工具.ts 全部内容
  3. 保存后刷新对应网盘页面

2) 导出秒传 JSON

  1. 在百度/夸克/天翼/123 页面勾选文件或文件夹
  2. 点击 生成秒传JSON
  3. 在结果弹窗中复制 JSON 或下载文件

夸克分享页首次使用时,如提示需要 Cookie,按弹窗说明粘贴浏览器请求 Cookie(脚本会保存到 GM 存储)。

3) 导入秒传 JSON(光鸭)

  1. 打开光鸭盘页面,点击 导入秒传JSON
  2. 粘贴 JSON 或选择 .json 文件
  3. 点击 开始导入
  4. 根据结果区和“分类明细”查看导入情况

JSON 格式

最小可用结构:

{
  "files": [
    {
      "path": "目录/文件.mp4",
      "etag": "32位十六进制MD5",
      "size": 123456
    }
  ]
}

说明:

  • path:文件相对路径(用于目录创建与文件名推导)
  • etag:必须是 32 位十六进制 MD5(脚本会做规范化与校验)
  • size:文件大小(数字)

导出结果还会包含:

  • scriptVersion:脚本版本号
  • totalFilesCount:导出文件总数
  • totalSize / formattedTotalSize:总大小(字节 / 可读格式)

导入规则(光鸭)

  • create_dir 返回 code=0code=159 视为成功
  • 其他 code 视为创建目录失败,当前条目跳过并计入“创建目录失败”
  • 目录创建失败不再中断整批导入,后续条目继续处理
  • 文件名违禁词错误(code=166)会跳过当前文件并继续后续导入

Token / Cookie

  • 光鸭导入 token
    • 脚本会优先读取页面存储中的 access_token
    • 读不到时会弹窗让你粘贴 token(支持带 Bearer 前缀),并保存到 GM 存储
    • 可通过 GM 菜单清除已保存 token
  • 夸克分享 Cookie
    • 夸克分享页导出依赖 Cookie(如 ctoken__puus__pus 等)
    • 首次或失效时会提示输入,可保存后复用

配置项

  • localStorage["guangya_etag_policy"]
    • skip(默认):
      • 导出时跳过 etag 为空条目
      • 导入时跳过无法识别为 MD5 的条目
    • empty:导出时保留条目并写空 etag
    • error:导出时遇到空 etag 直接报错
  • localStorage["guangya_123_use_toolbar"]
    • 默认开启(非 0):优先把按钮挂在 123 工具栏
  • GM 菜单项
    • [秒传工具] 清除当前网盘 access_token(GM 保存)

常见问题

  • 多选/虚拟列表下,担心没有把所有勾选项都读进来?

    • 123 等页面使用虚拟滚动时,视口外的行可能不在 DOM 里,仅靠勾选框扫描会漏项。
    • 脚本会额外从 React(Table / rowSelection) 读取完整的 selectedRowKeys,并与当前视口内的 DOM 勾选结果 合并去重,尽量对齐「已选择 N 项」。
    • 若控制台仍提示解析数量少于 N,可先滚动列表让选中行进入视口,或刷新页面后重试。
  • 不刷新页面重新勾选后,为什么会带上上一次选中?

    • 已修复。当前无可识别复选框时会先清空旧状态,避免沿用上次勾选结果。
  • 为什么“阶段统计”和“秒传结果”数字看起来不同?

    • 阶段统计会单列“创建目录失败(未进入秒传)”。
    • 总结果 = 秒传阶段结果 + 创建目录失败条目。
  • 导入时提示没有 access_token?

    • 脚本会先尝试页面存储;若未取到会弹窗要求粘贴 token,并可保存到 GM 存储。
  • 夸克分享页提示 Cookie 无效 / 无法得到 etag?

    • 这通常是 Cookie 过期或不完整导致。重新按弹窗更新 Cookie 后重试。
    • 若遇到接口限频,也可能暂时拿不到 etag,可稍后再试。

注意事项

  • 本项目/脚本仅供学习研究参考,请勿用于任何未经授权或违反平台规则的用途
  • 仅在你有权限访问/导入相关资源时使用
  • 接口与页面结构变化可能导致按钮挂载或数据抓取异常
  • 建议先用少量样本验证再进行大规模导入

About

流畅同步

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages