当前位置: 首页 > 软件库 > 应用工具 > 下载工具 >

ZonyLrcToolsX

歌词下载工具
授权协议 MIT
开发语言 C#
所属分类 应用工具、 下载工具
软件类型 开源软件
地区 不详
投 递 者 甘学潞
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 文件中配置其他路径。

 

 相关资料
  • 然而,下载URL与paremeters有一些有趣的地方,它看起来如下所示: (在url中,'&\;‘实际上没有'\',但我把它放在帖子中,以避免将其转义为'&')。 那么这里是什么情况;我是否有3个参数h、e、gd,或者我有一个参数h,其值,或者我有以下3个参数值对:,,(我认为是这样,而且似乎是一个bug)? 为了形成一个正确的http请求,我需要清楚地知道参数、名称和值是什么,但是我有一个令人

  • 歌词 插件 最新更新,扩展性能稍微有点提升了, 不多说了,更多敬请查看首页 http://luochunzong.sinaapp.com/?p=84 js 文件的地址: http://lcz.github.io/lrc/javascripts/lrc.mini.js 多行的: 单行 的:

  • 本文向大家介绍使用Python下载歌词并嵌入歌曲文件中的实现代码,包括了使用Python下载歌词并嵌入歌曲文件中的实现代码的使用技巧和注意事项,需要的朋友参考一下 使用python扫描本地音乐并下载歌词 这次这个真的是干货哦,昨晚弄了半晚上,,,,从8点吃完饭就开始写,一直到了快12点才弄好,,,新手,伤不起呀。。。。 先简单的说下吧,百度提供了一个音乐搜索的api,你想百度请求类似于 的地址,百

  • 有没有人能提供一个例子或链接,说明如何从谷歌网站管理员工具API导出? 存储库中没有示例,似乎任何地方都没有可用的教程/示例 https://github.com/google/google-api-php-client 此代码连接到网站管理员工具。。如何从特定日期间隔下载?

  • 新的服务器实现 这里我们要新写一个 Twisted 版的服务器。然后,再来讨论一些 Deferred 的新功能。 在第九、十部分,我们提出了诗歌转换引擎这个概念。由于实现太过简单,因此我们用随机选择来模拟了可能会出现的转换失败的情景。但如果转换引擎位于服务器端,那么当服务器宕机就会出现真实的转换失败的情景了。 因此,在本节我们要实现一个诗歌样式转换服务器,然后在下一节,我们会重写诗歌下载客户端使用

  • 诗歌下载服务器 到目前为止,我们已经学习了大量关于诗歌下载客户端的Twisted的知识,接下来,我们使用Twisted重新实现我们的服务器端。得益于Twisted的抽象机制,接下来你会发现我们前面已经几乎学习到了所需的全部知识。其实现源码在twisted-server-1/fastpoetry.py中。之所以称其为fastpoetry是因为其传输诗歌并没有任何延迟。注意到,其代码量比客户端代码少多