refactor: split downloader into modules
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
一个基于 Node.js 的网易云音乐命令行下载工具,支持单曲、歌单、专辑及批量下载,并可同步保存歌词、封面和歌曲标签。
|
||||
|
||||
项目采用单文件实现,核心功能仅依赖 Node.js 内置模块。`node-id3`、`ffmpeg` 和本地音频播放器均为可选依赖。
|
||||
项目采用 CommonJS 模块化结构,核心功能仅依赖 Node.js 内置模块。`node-id3`、`ffmpeg` 和本地音频播放器均为可选依赖。
|
||||
|
||||
## 功能特性
|
||||
|
||||
@@ -45,6 +45,24 @@ node 163_music_downloader.js
|
||||
|
||||
不带参数运行时会进入中文交互菜单,可搜索、下载和管理歌曲。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```text
|
||||
163_music_downloader.js # 命令行入口与交互菜单
|
||||
lib/
|
||||
catalog.js # 搜索与歌单接口
|
||||
config.js # 应用配置、路径和默认值
|
||||
downloader.js # 单曲下载主流程与重试
|
||||
history.js # 下载历史读写
|
||||
lyrics.js # 歌词获取、合并和制作信息解析
|
||||
metadata.js # 网易云歌曲/专辑元数据与专辑目录
|
||||
network.js # HTTP 请求和文件下载
|
||||
pause.js # 批量任务暂停状态
|
||||
quality.js # 音质解析与交互选择
|
||||
tagging.js # 封面及音频标签写入
|
||||
utils.js # 文件名、目录大小等通用工具
|
||||
```
|
||||
|
||||
## 命令行模式
|
||||
|
||||
直接下载一个或多个歌曲 ID:
|
||||
@@ -123,6 +141,7 @@ node 163_music_downloader.js 347230 --level=hires --no-cover
|
||||
## 输出文件
|
||||
|
||||
- 音频和 `.lrc` 歌词保存在 `paths.downloadDir` 指定的目录
|
||||
- 下载专辑时,专辑图片会保存为对应专辑目录下的 `cover.jpg`
|
||||
- 下载历史保存在 `paths.historyFile` 指定的 JSON 文件中,默认最多保留 500 条
|
||||
- 交互菜单修改的音质设置保存在 `paths.runtimeConfigFile` 指定的文件中
|
||||
- 删除操作会先将文件移动到 `paths.trashDir`,而不是永久删除
|
||||
|
||||
Reference in New Issue
Block a user