用户数据目录与存储结构
程序的所有持久化数据存储在用户数据目录中。目录路径由 platformdirs 库根据操作系统自动决定。
目录位置
%LOCALAPPDATA%/Miku_oso/BiliDanmakuSender/
通常为 C:\Users\<用户名>\AppData\Local\Miku_oso\BiliDanmakuSender\
~/Library/Application Support/Miku_oso/BiliDanmakuSender/
~/.local/share/Miku_oso/BiliDanmakuSender/
程序首次运行时会自动创建该目录。
文件结构
BiliDanmakuSender/
├── config.json # 运行时配置(发送、监视、主题、校验)
├── accounts.json # 加密的账号凭证(Fernet 加密)
├── history.db # SQLite 数据库(弹幕发送与核销记录)
└── logs/ # 日志目录
├── latest.log # 应用日志(自动轮转)
└── ...
config.json
存储所有运行时配置,包括发送节奏、监视参数、主题外观、校验规则等。
- 格式:JSON
- 编码:UTF-8
- 写入时机:控件写回后 800 毫秒自动保存;窗口关闭时兜底保存一次
- 安全性:不含敏感信息,可直接查看和手动编辑
accounts.json
存储所有已保存账号的 B 站凭证(SESSDATA、bili_jct)。
- 格式:JSON(Fernet 加密后的密文)
- 写入时机:添加/删除/切换账号时
- 安全性:内容已加密,无法直接读取。解密密钥存储在系统密钥环 (Keyring) 中
history.db
存储弹幕的发送与核销记录,用于断点续传查重、存活率验证与任务级对账。
- 格式:SQLite(WAL 模式)
- ORM:Peewee
- 存储内容:弹幕的内容与样式指纹、目标视频、发送与核销状态、时间戳、归属任务;以及任务本身的目标、标题与运行状态
- 查询:支持按 BV 号、内容、状态搜索
logs/
存放应用运行日志。日志文件自动轮转,不会无限增长。
备份与迁移
备份
直接复制整个 BiliDanmakuSender 目录即可备份所有数据。
迁移到新机器
- 复制整个目录到新机器的对应位置。
config.json和history.db可直接使用。accounts.json需要在新机器上也有对应的 Keyring 密钥才能解密。如果没有,需要重新添加账号。
Keyring 绑定
accounts.json 的加密密钥存储在本机的系统密钥环中。直接拷贝文件到另一台机器将无法解密,需要重新输入凭证。
跨版本
history.db 会自动升级,旧库可直接使用。旧版 config.json 不做迁移,升级后回退为默认值;需要保留的取值在设置页改回。
磁盘空间
| 文件 | 典型大小 | 增长趋势 |
|---|---|---|
| config.json | < 1 KB | 固定 |
| accounts.json | < 5 KB | 随账号数线性增长 |
| history.db | 数 MB ~ 数十 MB | 随发送记录线性增长 |
| logs/ | 数 MB | 自动轮转,有上限 |