1. 免配置登录 用 Playwright 驱动你电脑上的 Edge(不额外下载浏览器内核),弹出窗口扫码即可。登录哪个 QQ 就下载哪个 QQ 的相册,没有填 QQ 号的输入框,代码里也没有“指定他人账号”这个入口。账号靠三处信息自动确认:登录 Cookie 里的 uin、地址栏里的 user.qzone.qq.com/<QQ号>、页面内的登录变量;三处都拿不到就继续等待,不会误判成“已登录”去请求别的账号。
2. 相册挑着下 列出全部相册的编号、名字和张数,然后:回车=全部,1,3,5、2-6、1,4-7 都支持,q 取消。输错会让你重输,连错 5 次按“全部”处理。只读取你选中的相册,没选的不浪费请求。
3. 原图三层保障(这是整个工具的重点)
| 层 | 做法 | | ------ | --------------------------------------------------------------------------------------------------------------------- | | 字段层 | 按 16 个已知原图字段依次取(rawdownloadurl、originurl、bigurl 等),不会拿缩略图字段充数 | | URL 层 | 对明显的缩略图链接做保守改写(经验规则,失败也无害) | | 文件层 | 下载后解析真实像素(JPEG/PNG/GIF/BMP/WEBP 头部)+ 体积;短边 <600px 或 <40KB 判为疑似,扔进疑似缩略图\,不删 |
4. 下载不易断 每个图片地址最多试 2 次,最多 8 个候选地址,按「是否达标 → 是否原图字段 → 短边像素 → 体积」打分择优;响应小于 512 字节或魔数不对直接判无效。文件先写 .part 再原子改名,断电不会留半张图;同名文件已存在就跳过——所以中途失败重跑不会重复下载。并发固定 4 线程,是刻意压低的(避免触发风控)。
5. 下载报告 qqzonephotos\下载报告.txt:开头写明本次账号,每个相册的原图/疑似/跳过/失败统计,逐张明细(相册、序号、宽、高、字节数、取自哪个字段、文件名),结尾有作者签名。
6. 隐私:授权用完即清 登录态只在“读相册清单”时有意义,清单到手立刻:清浏览器 Cookie + 存储 + 权限 → 删磁盘 Cookie 库 → 关浏览器;进程退出再扫一遍;下次启动先清上次残留。硬盘上任何时候都不该有可用凭证。代价是每次都要重新扫码,这是有意的取舍。
7. 两个自检入口 --check 不弹窗,检查 Python 运行时、CA 证书、Playwright 驱动、Edge 是否可用;--logout 单独清一次登录态(正常情况下用不到)。
功能边界(避免期待错位)
- 纯下载工具:不改、不删你 QQ 空间里的任何东西 - 只下图片,视频跳过 - 早年上传的照片腾讯可能只留了压缩版,拿不到真原图 - 640×480 的老照片可能被误判进 疑似缩略图\,移回去即可 - 接口由腾讯控制,随时可能变,失效就得改代码 - 需要 Windows + Edge;脚本版还要 Python
实测规模参考:一次跑完 15 个相册、5088 张、约 12 GB,失败 0 张。