如果你想把自己多年积累的 QQ 空间动态、照片、视频、评论和留言整理成可以离线保存的资料,GitHub 上的 QzoneArchive(空间归档)提供了一条偏本地化的路径。它不是把数据上传到第三方网盘,而是通过 QQ 空间移动端互动列表接口读取当前账号可见的互动记录,再将内容保存到本地应用数据目录。本文依据仓库 README、代码目录和 v1.0.3 Release 整理,重点介绍它能做什么、怎样工作以及使用时不能忽略的边界。

截至 2026 年 9 月 2 日核对,仓库主分支最近提交为 b42a0fa,GitHub 页面显示约 2.9k stars、265 forks,最新 Release 为 v1.0.3。当前仓库采用 GPLv3 许可证,项目说明和下载入口均以作者的 GitHub 仓库为准。
QzoneArchive 解决的是哪类归档需求
QzoneArchive 将 QQ 空间里的内容按“本人动态”“好友动态”和“留言”等类别整理,目标是把分散在社交页面中的历史资料变成可以在本地浏览、搜索和备份的档案。README 列出的功能包括还原动态正文、图片、视频、点赞用户和评论回复,并提供互动排行榜、媒体时光轴和暗色模式。
- 断点续传:归档任务中断后可以从上次位置继续,已处理内容不会因为一次暂停而全部重来。
- 频率保护:程序按 README 的说明限制请求频率,每 10 分钟最多请求 300 页;触发限制后会安全暂停并等待倒计时。
- 本地优先:归档数据以 SQLite 保存在本地应用数据目录,项目说明称不会上传到第三方服务器。
- 离线导出:可按分类或选中内容导出独立 HTML 文件,适合长期保存或离线阅读。
- 媒体整理:照片和视频可以按年份在媒体时光轴中浏览,视频支持按需缓存。
- 跨平台:仓库同时面向 Windows、macOS、Linux 桌面端和 Android 移动端。
从 GitHub 仓库看项目结构与技术栈
仓库采用前端与 Rust 后端分层。src/ 目录放置 Vue 页面、通用组件、Pinia stores、布局和工具类型;src-tauri/ 负责 Tauri 入口、QQ 登录、QQ 空间请求以及归档引擎和数据库;src-tauri/capabilities/ 用于 Tauri 权限配置。这样的目录划分让界面交互、登录凭证处理、网络请求和本地持久化各自有明确位置。

| 层次 | 仓库采用的技术 | 作用 |
|---|---|---|
| 桌面与移动框架 | Tauri 2 | 承载桌面窗口与 Android 构建流程 |
| 前端 | Vue 3、TypeScript、Vite | 实现仪表盘、归档内容、媒体时光轴、任务和设置页面 |
| UI 与状态 | PrimeVue 4、Pinia | 提供组件和前端状态管理 |
| 本地数据 | SQLite(rusqlite) | 保存归档内容与任务状态 |
| 网络层 | reqwest(rustls-tls) | 处理 QQ 空间相关请求 |
归档原理:互动列表决定了可恢复范围
项目 README 说明,数据来源是 QQ 空间移动端互动列表接口 mobile.qzone.qq.com/get_feeds。这个接口返回当前账号收到的互动通知,程序从中提取动态正文、媒体和互动内容,再写入本地数据库。因此,QzoneArchive 能恢复的不是“QQ 空间服务器上的全部历史”,而是当前账号互动列表里能看到的记录。
一个非常重要的限制是:没有被点赞或评论过的动态不会出现在互动列表中,README 明确表示这类内容无法通过当前方式恢复。首次归档前应先理解这个边界,不能把软件宣传成无条件找回所有已删除或不可见资料的工具。
登录方式与隐私边界
桌面端提供网页登录方式:程序打开独立窗口加载 QQ 登录页,再通过 WebView Cookie API 提取登录凭证;同时支持二维码登录流程,README 称二维码方式全程不接触密码。仓库说明还写明,登录 Cookie 只保存在 Rust 后端内存中,不写入控制台或日志。
这并不意味着可以忽略安全责任。使用时应从仓库或作者明确提供的 Release 获取程序,不要把 QQ Cookie、二维码或账号资料交给来路不明的第三方程序;归档内容涉及个人和好友的隐私,也应只处理本人或已获得授权的账号。项目与腾讯、QQ、QQ 空间及其关联主体没有隶属、授权或合作关系,使用者需要自行判断合法性和风险。
开发环境、构建命令与 v1.0.3 下载形态
如果你准备从源码运行,README 列出的前置条件是 Rust 1.77+、Node.js 20+;Windows 需要 WebView2(Windows 10+ 通常已自带),Android 构建还需要 Android Studio、Android SDK 和 NDK。常用开发命令如下:
# 安装前端依赖
npm install
# 启动桌面端开发环境
npm run tauri dev
# 启动 Android 开发环境
npm run tauri android dev
构建时可使用 npm run tauri:build:windows 生成 Windows NSIS 安装包,或使用 npm run tauri:build:windows:all 同时构建 NSIS 与 MSI。Android 构建命令为 npm run tauri android build。v1.0.3 Release 页面当前提供 Windows 安装程序、macOS DMG、Linux 的 deb、rpm、AppImage、NixOS 压缩包以及 Android APK 等构建产物;具体文件和下载状态会随 Release 更新。
如果只是普通使用者,优先查看 GitHub Release 的平台安装包;如果需要审计代码、修改归档逻辑或参与开发,再按 README 的 Rust、Node.js 和 Android 工具链要求配置环境。
使用过程中需要留意的风险
- 账号切换:归档过程中不要切换 QQ 客户端账号,仓库提示这样做可能带来冻结风险。
- 请求限制:出现频繁提示时建议换时间段继续,断点续传可以降低重复请求。
- 视频地址:QQ 视频签名存在时效性,链接失效后需要重新归档以更新视频地址。
- 备份策略:默认数据库位于应用数据目录,重要资料仍应额外复制到可靠存储介质。
- 权限与授权:只归档本人或已获得授权的内容,并注意评论、照片和互动用户信息可能包含他人隐私。
GPLv3 许可与适用人群
QzoneArchive 采用 GPLv3 许可证。你可以在遵守许可证义务的前提下研究、修改和再分发代码,但不能把仓库的独立开源许可、软件免责声明或 QQ 相关商标关系混为一谈。对个人用户,它适合做 QQ 空间资料的本地整理和长期备份;对开发者,它也提供了一个 Rust + Tauri + Vue 的跨平台应用案例,可用于研究登录流程、任务管理、SQLite 归档和 HTML 导出。
不适合的场景同样明确:如果你需要恢复没有互动记录的全部动态、绕过平台权限、批量处理未授权账号,或者希望得到官方级别的数据恢复保证,QzoneArchive 都不能替代这些能力。更稳妥的做法是先用少量、已获授权的资料测试流程,再决定是否进行完整归档。
相关链接
- GitHub 仓库:https://github.com/Gaoshu705/QzoneArchive
- 最新 Release(v1.0.3):https://github.com/Gaoshu705/QzoneArchive/releases/tag/v1.0.3
- 详细使用教程(README 提供):https://www.bilibili.com/video/BV1p7MZ6xEfk
- GPLv3 许可证:https://github.com/Gaoshu705/QzoneArchive/blob/main/LICENSE












暂无评论内容