本项目包含一系列 Node.js 脚本,用于管理和更新本地音乐文件的元数据,特别是封面图片。
- 自动封面更新: 从 QQ 音乐和 iTunes 上为您的
.mp3和.flac文件查找并嵌入高质量的专辑封面。 - 智能信息解析: 优先从文件名中解析歌曲信息(支持
歌手 - 歌名、歌名 (歌手)等多种格式),失败时回退到文件元数据。 - 批量处理: 支持对单个目录或包含多个子目录的根目录进行批量操作。
- 演习模式: 提供
--dry-run模式,可以在不修改任何文件的情况下预览操作结果。
在运行任何脚本之前,请确保已安装所有必需的依赖项。在项目根目录下运行:
npm install此脚本用于处理单个文件夹内的所有支持的音频文件。
用途:
为指定目录下的所有 .mp3 和 .flac 文件查找并嵌入封面。它会处理该目录以及其下的 CD* 子目录。
命令格式:
node scripts/music/update_cover_art.js <目录路径> [--dry-run]参数说明:
<目录路径>: 必需。您想要处理的音乐文件夹路径,例如"./华语精选/周杰伦"。--dry-run: 可选。如果使用此参数,脚本将只显示它会做什么,但不会下载图片或修改任何文件。
示例:
# 对 "周杰伦" 文件夹进行实际的封面更新
node scripts/music/update_cover_art.js "/Volumes/Music/华语精选/周杰伦"
# 演习模式,查看脚本将如何处理 "林俊杰" 文件夹
node scripts/music/update_cover_art.js "/Volumes/Music/华语精选/林俊杰" --dry-run此脚本是 update_cover_art.js 的“总开关”,可以一次性处理多个子目录。
用途:
自动扫描一个根目录下的所有子目录,并对每个子目录执行封面更新操作。例如,您可以指定 华语精选 目录,它会自动处理里面的“周杰伦”、“王菲”、“陈奕迅”等所有文件夹。
命令格式:
node scripts/music/batch_update_covers.js <根目录路径> [--dry-run]参数说明:
<根目录路径>: 必需。包含多个歌手或专辑子目录的顶层文件夹,例如"/Volumes/Music/华语精选/"。--dry-run: 可选。为所有子目录的处理启用演习模式。
示例:
# 对 "华语精选" 目录下的所有文件夹执行封面更新
node scripts/music/batch_update_covers.js "/Volumes/Music/华语精选/"
# 演习模式,预览对 "欧美流行" 目录下所有文件夹的处理计划
node scripts/music/batch_update_covers.js "/Volumes/Music/欧美流行/" --dry-run此脚本用于从网易云音乐获取指定歌单的歌曲列表。
用途:
连接到网易云音乐 API,拉取一个硬编码在脚本中的歌单(默认为“云音乐热歌榜”)的所有歌曲信息,并将其保存为 hot_songs.json 文件。
命令格式:
node scripts/music/hot_songs.js注意:
- 此脚本目前没有命令行参数,歌单 ID 是在代码中写死的。
- 运行后会在脚本所在目录生成一个
hot_songs.json文件。