ZonyLrcToolX 4 是一個基於CEF 的跨平台歌詞下載工具。
🚧 當前版本正在開發當中。
🚧 如果你想查看可以工作的代碼,請切換到dev 分支。
工具會執行每日構建動作,請訪問 Release 頁面進行下載。
Windows 用戶請在軟件目錄當中,按住Shift + 右鍵呼出菜單,然後選擇PowerShell/命令提示符/Windows 終端,根據下述說明執行命令即可。
macOS 和Linux 用戶請打開終端,切換到軟件目錄,一樣執行命令即可。
子命令
下載功能
子命令為 download
,可用於下載歌詞數據和專輯圖像,支持多個下載器進行下載。
.\ZonyLrcTools.Cli.exe download -d|dir <WAIT_SCAN_DIRECTORY> [-l|--lyric] [-a|--album] [-n|--number] .\ZonyLrcTools.Cli.exe download -h|--help
例子
# 下载歌词 .\ZonyLrcTools.Cli.exe download -d "C:\歌曲目录" -l -n 2 # 下载专辑封面 .\ZonyLrcTools.Cli.exe download -d "C:\歌曲目录" -a -n 2
指定歌曲文件源
目前程序支持從本地目錄、CSV 文件、網易云歌單獲取歌曲數據,然後下載LRC 歌詞數據。
指定歌詞源的參數是 -sc|--scanner
,可以通過這個參數指定歌曲信息的來源。它擁有以下選值,默認情況下是 local
。
-sc local # 从目录获取歌曲信息。 -sc netease # 从网易云歌单获取歌曲信息。 -sc csv # 从 CSV 文件获取歌曲信息。
從網易云歌單獲取歌曲數據
完整的命令如下:
.\ZonyLrcTools.Cli.exe download -sc netease -o "D:\TempFiles" -s "7224428149" -l
其中 -sc
參數用於指定歌詞信息的來源是網易云歌單; -o
參數指定的是歌詞文件的輸出目錄,請盡量使用絕對路徑; -s
參數指定的的是歌單的ID,該ID 可以從網頁版的網易云音樂獲得。
例如獲取地址 https://music.163.com/#/playlist?id=158010361 的歌單信息,那麼歌單ID 就應該傳遞158010361。
由於網易云音樂的限制,要想獲取完整的歌單信息,必須掃碼登錄程序,還是以最上面的為例,我需要下載歌單內的歌詞數據,就必須掃碼之後程序才會執行。
從CSV 文件獲取歌曲數據
應 Issue 126 的請求,增加了從CSV 獲取歌曲信息的方式。這樣可以在沒有原始歌曲的情況下載歌詞數據。
示例命令:
.\ZonyLrcTools.Cli.exe download -sc csv -o "D:\TempFiles" -f "D:\TempFiles\demo.csv" -l
其中 -f
參數用於指定csv 文件的路徑,csv 文件的格式應該如下所示,保證第一行是列信息,一共要包含兩列。
Song,Artist
刀马旦,李玟
发如雪,周杰伦
说书人,寅子
爱的供养,张国荣
七里香,周杰伦
加密格式轉換
子命令為 util
,可用於轉換部分加密歌曲,僅供個人研究學習使用,思路與源碼都來自於網絡。
具體支持的格式請參考項目 MusicDecrypto,本工具僅做一個集成,替換掉原本自己的一些實現。現在不需要指定對應的類型參數,程序會自動根據文件後綴選擇適合的解密算法。
命令只需要一個參數 -s
,指定需要轉換的文件夾或者是文件路徑。
.\ZonyLrcTools.Cli.exe util -s D:\CloudMusic
配置文件
程序的所有的配置信息,都在 config.yaml
進行更改,下面標註了各個配置的說明。
其中是否開啟的可選項為 true
或者 false
,等同於中文的是和否。
globalOption: # 允许扫描的歌曲文件后缀名。 supportFileExtensions: - '*.mp3' - '*.flac' - '*.wav' # 网络代理服务设置,仅支持 HTTP 代理。 networkOptions: isEnable: false # 是否启用代理。 ip: 127.0.0.1 # 代理服务 IP 地址。 port: 4780 # 代理服务端口号。 updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。 # 下载器的相关参数配置。 provider: # 标签扫描器的相关参数配置。 tag: # 支持的标签扫描器。 plugin: - name: Taglib # 基于 Taglib 库的标签扫描器。 priority: 1 # 优先级,升序排列。 - name: FileName # 基于文件名的标签扫描器。 priority: 2 # 基于文件名扫描器的扩展参数。 extensions: # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 # 自己的需求进行调整。 regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" # 歌曲标签屏蔽字典替换功能。 blockWord: isEnable: false # 是否启用屏蔽字典。 filePath: 'BlockWords.json' # 屏蔽字典的路径。 # 歌词下载器的相关参数配置。 lyric: # 支持的歌词下载器。 plugin: - name: NetEase # 基于网易云音乐的歌词下载器。 priority: 1 # 优先级,升序排列,改为 -1 时禁用。 depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 - name: QQ # 基于 QQ 音乐的歌词下载器。 priority: 2 # depth: 10 # 暂时不支持。 - name: KuGou # 基于酷狗音乐的歌词下载器。 priority: 3 depth: 10 - name: KuWo # 基于酷我音乐的歌词下载器。 priority: 4 depth: 10 # 歌词下载的一些共有配置参数。 config: isOneLine: true # 双语歌词是否合并为一行展示。 lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 isEnableTranslation: true # 是否启用翻译歌词。 isOnlyOutputTranslation: false # 是否只输出翻译歌词。 isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 fileEncoding: 'utf-8' # 歌词文件的编码格式。
支持的編碼格式
詳細信息請參考: MSDN Encoding 列表,使用 identifier and name
作為參數值填入 config.yaml
文件當中的 fileEncoding
。
針對UTF-8 BOM 格式,程序進行了特殊處理,請在
fileEncoding
裡面填寫”utf-8-bom” 以支持。
支持的歌詞源
歌詞源 | 默認優先級 |
---|---|
網易云音樂 | 1 |
QQ 音樂 | 2 |
酷狗音樂 | 3 |
酷我音樂 | 4 |
屏蔽字典
屏蔽字典適用於網易云音樂歌詞下載,針對某些單詞,網易云音樂使用了* 號進行屏蔽,這個時候可以使用屏蔽字典,設置歌曲名的關鍵詞替換。例如有一首歌曲叫做 Fucking ABC ,這個時候網易云實際的名字是 Fu**ing ,用戶只需要在屏蔽字典加入替換邏輯即可,例如:
{ "Fuckking": "Fu****ing" }
屏蔽字典默認路徑為程序所在目錄的 BlockWords.json 文件,用戶可以在 appsettings.json 文件中配置其他路徑。
#ZonyLrcToolsX首頁文檔和下載 #歌詞下載工具 #Development details