ZonyLrcToolsX首頁、文檔和下載- 歌詞下載工具- Development details

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。

由於網易云音樂的限制,要想獲取完整的歌單信息,必須掃碼登錄程序,還是以最上面的為例,我需要下載歌單內的歌詞數據,就必須掃碼之後程序才會執行。

image-20230328223155280

從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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *