歌词永不丢失:YesPlayMusic数据库备份与恢复完全指南
你是否曾遇到过这样的情况:精心收藏的歌曲歌词在重装软件后全部消失,或是系统意外崩溃导致辛苦整理的歌词数据付诸东流?作为一款基于Electron的高质量音乐播放器,YesPlayMusic不仅提供出色的音乐播放体验,更通过内置的数据库系统src/utils/db.js自动缓存歌词数据。本文将详细介绍如何保护这些珍贵的歌词数据,通过手动备份与恢复操作,确保你的歌词库万无一失。
歌词数据存储原理
YesPlayMusic采用Dexie.js构建本地数据库系统,将歌词数据存储在名为lyric的表中。数据库定义位于src/utils/db.js第8-12行:
db.version(4).stores({
trackDetail: '&id, updateTime',
lyric: '&id, updateTime', // 歌词数据表
album: '&id, updateTime',
});
每个歌词记录包含三个核心字段:
id: 歌曲唯一标识符lyrics: 歌词文本内容(包含时间轴信息)updateTime: 最后更新时间戳
这种结构确保了歌词数据的高效存储与快速检索,同时通过updateTime字段实现数据更新管理。
手动备份歌词数据库
虽然YesPlayMusic未提供图形化备份功能,但我们可以通过以下步骤手动导出歌词数据:
-
打开开发者工具
在YesPlayMusic窗口中按下Ctrl+Shift+I(Windows/Linux)或Cmd+Opt+I(Mac)打开开发者工具 -
进入Console选项卡
在控制台中输入以下代码并执行:
// 导出所有歌词数据
db.lyric.toArray().then(lyrics => {
const dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(lyrics));
const downloadAnchorNode = document.createElement('a');
downloadAnchorNode.setAttribute("href", dataStr);
downloadAnchorNode.setAttribute("download", `yesplaymusic-lyrics-${new Date().toISOString().slice(0,10)}.json`);
document.body.appendChild(downloadAnchorNode);
downloadAnchorNode.click();
downloadAnchorNode.remove();
});
- 保存备份文件
浏览器将自动下载一个JSON文件,建议将其命名为yesplaymusic-lyrics-YYYY-MM-DD.json并存储在安全位置
歌词数据恢复操作
当你需要恢复歌词数据时,可按以下步骤操作:
-
准备备份文件
确保之前备份的JSON文件可访问,建议将其复制到容易找到的位置 -
打开开发者工具
同样通过Ctrl+Shift+I或Cmd+Opt+I打开开发者工具 -
导入歌词数据
在Console中执行以下代码,然后选择备份的JSON文件:
// 创建文件选择对话框
const input = document.createElement('input');
input.type = 'file';
input.accept = '.json';
input.onchange = e => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = event => {
try {
const lyrics = JSON.parse(event.target.result);
// 批量导入歌词数据
db.lyric.bulkPut(lyrics).then(() => {
alert(`成功恢复 ${lyrics.length} 条歌词数据`);
});
} catch (err) {
alert('导入失败:' + err.message);
}
};
reader.readAsText(file);
};
document.body.appendChild(input);
input.click();
input.remove();
- 验证恢复结果
重启YesPlayMusic后,播放已恢复歌词的歌曲,验证歌词是否正确显示
自动化备份方案
对于高级用户,可通过以下方法实现歌词数据的自动备份:
Windows任务计划程序
创建批处理脚本定期导出歌词数据,然后通过任务计划程序设置自动执行
macOS Automator
使用Automator创建定期执行的工作流,结合AppleScript实现自动备份
Linux Cron任务
编写bash脚本,通过cron定时任务实现自动备份:
#!/bin/bash
# yesplaymusic-lyrics-backup.sh
BACKUP_DIR="$HOME/Documents/YesPlayMusic-Backups"
mkdir -p "$BACKUP_DIR"
# 使用electron远程调试执行备份命令
# 需要启用YesPlayMusic的远程调试功能
curl -X POST http://localhost:9222/json/new
# 此处需要更复杂的调试协议交互,建议普通用户使用手动备份方式
注意事项与最佳实践
-
定期备份频率
建议每周至少备份一次歌词数据,对于频繁添加新歌的用户,可考虑每3天备份一次 -
备份存储位置
最好将备份文件存储在云同步目录(如OneDrive、Dropbox)或外部存储设备中,避免系统故障导致备份文件丢失 -
备份验证
定期抽查备份文件内容,确保备份数据完整有效 -
版本兼容性
重大版本更新前建议进行一次完整备份,不同版本间数据库结构可能存在差异(参见src/utils/db.js中的版本控制代码) -
隐私保护
歌词备份文件可能包含你的音乐偏好信息,请勿随意分享给他人
通过以上方法,你可以确保YesPlayMusic中的歌词数据安全可靠,再也不用担心意外丢失辛苦积累的歌词信息。定期备份虽然需要一点时间投入,但相比重新整理歌词的麻烦,这种预防措施无疑是值得的。
如果你在操作过程中遇到任何问题,可查阅项目官方文档或提交issue寻求帮助。保护数据安全,让音乐聆听体验更加安心!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




