ZonyLrcToolsX歌詞下載工具
ZonyLrcToolX 4 是一個(gè)基于 CEF 的跨平臺(tái)歌詞下載工具。
?? 當(dāng)前版本正在開(kāi)發(fā)當(dāng)中。
?? 如果你想查看可以工作的代碼,請(qǐng)切換到 dev 分支。
下載
工具會(huì)執(zhí)行每日構(gòu)建動(dòng)作,請(qǐng)?jiān)L問(wèn) Release 頁(yè)面進(jìn)行下載。
用法
Windows 用戶(hù)請(qǐng)?jiān)谲浖夸洰?dāng)中,按住 Shift + 右鍵呼出菜單,然后選擇 PowerShell/命令提示符/Windows 終端,根據(jù)下述說(shuō)明執(zhí)行命令即可。
macOS 和 Linux 用戶(hù)請(qǐng)打開(kāi)終端,切換到軟件目錄,一樣執(zhí)行命令即可。
子命令
下載功能
子命令為 download,可用于下載歌詞數(shù)據(jù)和專(zhuān)輯圖像,支持多個(gè)下載器進(jìn)行下載。
.\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 # 下載專(zhuān)輯封面 .\ZonyLrcTools.Cli.exe download -d "C:\歌曲目錄" -a -n 2
指定歌曲文件源
目前程序支持從本地目錄、CSV 文件、網(wǎng)易云歌單獲取歌曲數(shù)據(jù),然后下載 LRC 歌詞數(shù)據(jù)。
指定歌詞源的參數(shù)是 -sc|--scanner,可以通過(guò)這個(gè)參數(shù)指定歌曲信息的來(lái)源。它擁有以下選值,默認(rèn)情況下是 local。
-sc local # 從目錄獲取歌曲信息。 -sc netease # 從網(wǎng)易云歌單獲取歌曲信息。 -sc csv # 從 CSV 文件獲取歌曲信息。
從網(wǎng)易云歌單獲取歌曲數(shù)據(jù)
完整的命令如下:
.\ZonyLrcTools.Cli.exe download -sc netease -o "D:\TempFiles" -s "7224428149" -l
其中 -sc 參數(shù)用于指定歌詞信息的來(lái)源是網(wǎng)易云歌單; -o 參數(shù)指定的是歌詞文件的輸出目錄,請(qǐng)盡量使用絕對(duì)路徑; -s 參數(shù)指定的的是歌單的 ID,該 ID 可以從網(wǎng)頁(yè)版的網(wǎng)易云音樂(lè)獲得。
例如獲取地址 https://music.163.com/#/playlist?id=158010361 的歌單信息,那么歌單 ID 就應(yīng)該傳遞 158010361。
由于網(wǎng)易云音樂(lè)的限制,要想獲取完整的歌單信息,必須掃碼登錄程序,還是以最上面的為例,我需要下載歌單內(nèi)的歌詞數(shù)據(jù),就必須掃碼之后程序才會(huì)執(zhí)行。
從 CSV 文件獲取歌曲數(shù)據(jù)
應(yīng) Issue 126 的請(qǐng)求,增加了從 CSV 獲取歌曲信息的方式。這樣可以在沒(méi)有原始歌曲的情況下載歌詞數(shù)據(jù)。
示例命令:
.\ZonyLrcTools.Cli.exe download -sc csv -o "D:\TempFiles" -f "D:\TempFiles\demo.csv" -l
其中 -f 參數(shù)用于指定 csv 文件的路徑,csv 文件的格式應(yīng)該如下所示,保證第一行是列信息,一共要包含兩列。
Song,Artist
刀馬旦,李玟
發(fā)如雪,周杰倫
說(shuō)書(shū)人,寅子
愛(ài)的供養(yǎng),張國(guó)榮
七里香,周杰倫
加密格式轉(zhuǎn)換
子命令為 util,可用于轉(zhuǎn)換部分加密歌曲,僅供個(gè)人研究學(xué)習(xí)使用,思路與源碼都來(lái)自于網(wǎng)絡(luò)。
具體支持的格式請(qǐng)參考項(xiàng)目 MusicDecrypto,本工具僅做一個(gè)集成,替換掉原本自己的一些實(shí)現(xiàn)。現(xiàn)在不需要指定對(duì)應(yīng)的類(lèi)型參數(shù),程序會(huì)自動(dòng)根據(jù)文件后綴選擇適合的解密算法。
命令只需要一個(gè)參數(shù) -s,指定需要轉(zhuǎn)換的文件夾或者是文件路徑。
.\ZonyLrcTools.Cli.exe util -s D:\CloudMusic
配置文件
程序的所有的配置信息,都在 config.yaml 進(jìn)行更改,下面標(biāo)注了各個(gè)配置的說(shuō)明。
其中是否開(kāi)啟的可選項(xiàng)為 true 或者 false,等同于中文的是和否。
globalOption: # 允許掃描的歌曲文件后綴名。 supportFileExtensions: - '*.mp3' - '*.flac' - '*.wav' # 網(wǎng)絡(luò)代理服務(wù)設(shè)置,僅支持 HTTP 代理。 networkOptions: isEnable: false # 是否啟用代理。 ip: 127.0.0.1 # 代理服務(wù) IP 地址。 port: 4780 # 代理服務(wù)端口號(hào)。 updateUrl: https://api.myzony.com/lrc-tools/update # 更新檢查地址。 # 下載器的相關(guān)參數(shù)配置。 provider: # 標(biāo)簽掃描器的相關(guān)參數(shù)配置。 tag: # 支持的標(biāo)簽掃描器。 plugin: - name: Taglib # 基于 Taglib 庫(kù)的標(biāo)簽掃描器。 priority: 1 # 優(yōu)先級(jí),升序排列。 - name: FileName # 基于文件名的標(biāo)簽掃描器。 priority: 2 # 基于文件名掃描器的擴(kuò)展參數(shù)。 extensions: # 正則表達(dá)式,用于匹配文件名中的作者信息和歌曲信息,可根據(jù) # 自己的需求進(jìn)行調(diào)整。 regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" # 歌曲標(biāo)簽屏蔽字典替換功能。 blockWord: isEnable: false # 是否啟用屏蔽字典。 filePath: 'BlockWords.json' # 屏蔽字典的路徑。 # 歌詞下載器的相關(guān)參數(shù)配置。 lyric: # 支持的歌詞下載器。 plugin: - name: NetEase # 基于網(wǎng)易云音樂(lè)的歌詞下載器。 priority: 1 # 優(yōu)先級(jí),升序排列,改為 -1 時(shí)禁用。 depth: 10 # 搜索深度,值越大搜索結(jié)果越多,但搜索時(shí)間越長(zhǎng)。 - name: QQ # 基于 QQ 音樂(lè)的歌詞下載器。 priority: 2 # depth: 10 # 暫時(shí)不支持。 - name: KuGou # 基于酷狗音樂(lè)的歌詞下載器。 priority: 3 depth: 10 - name: KuWo # 基于酷我音樂(lè)的歌詞下載器。 priority: 4 depth: 10 # 歌詞下載的一些共有配置參數(shù)。 config: isOneLine: true # 雙語(yǔ)歌詞是否合并為一行展示。 lineBreak: "\n" # 換行符的類(lèi)型,記得使用雙引號(hào)指定。 isEnableTranslation: true # 是否啟用翻譯歌詞。 isOnlyOutputTranslation: false # 是否只輸出翻譯歌詞。 isSkipExistLyricFiles: false # 如果歌詞文件已經(jīng)存在,是否跳過(guò)這些文件。 fileEncoding: 'utf-8' # 歌詞文件的編碼格式。
支持的編碼格式
詳細(xì)信息請(qǐng)參考: MSDN Encoding 列表,使用 identifier and name 作為參數(shù)值填入 config.yaml 文件當(dāng)中的 fileEncoding。
針對(duì) UTF-8 BOM 格式,程序進(jìn)行了特殊處理,請(qǐng)?jiān)?span>
fileEncoding里面填寫(xiě) "utf-8-bom" 以支持。
支持的歌詞源
| 歌詞源 | 默認(rèn)優(yōu)先級(jí) |
|---|---|
| 網(wǎng)易云音樂(lè) | 1 |
| QQ 音樂(lè) | 2 |
| 酷狗音樂(lè) | 3 |
| 酷我音樂(lè) | 4 |
屏蔽字典
屏蔽字典適用于網(wǎng)易云音樂(lè)歌詞下載,針對(duì)某些單詞,網(wǎng)易云音樂(lè)使用了 * 號(hào)進(jìn)行屏蔽,這個(gè)時(shí)候可以使用屏蔽字典,設(shè)置歌曲名的關(guān)鍵詞替換。例如有一首歌曲叫做 Fucking ABC ,這個(gè)時(shí)候網(wǎng)易云實(shí)際的名字是 Fu**ing ,用戶(hù)只需要在屏蔽字典加入替換邏輯即可,例如:
{
"Fuckking": "Fu****ing"
}
屏蔽字典默認(rèn)路徑為程序所在目錄的 BlockWords.json 文件,用戶(hù)可以在 appsettings.json 文件中配置其他路徑。
