ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

163MusicLyrics v7.3:把整个音乐目录变成批量歌词下载器,LRC / SRT 一次导出

163MusicLyrics v7.3:把整个音乐目录变成批量歌词下载器,LRC / SRT 一次导出

163MusicLyrics v7.3:把整个音乐目录变成批量歌词下载器,LRC / SRT 一次导出

【免费下载链接】163MusicLyrics云音乐歌词获取处理工具【网易云、QQ音乐】项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics

163MusicLyrics 是一款面向网易云音乐、QQ 音乐的歌词下载工具——你把歌曲链接或 ID 贴进去,它回给你一份时间戳对齐好的 LRC / SRT 文件。v7.3 这条线基于 Avalonia 重写,补上了 macOS 构建,Windows、Linux、Mac 三端都能跑。这一版的重心落在三件事上:目录扫描批量搜索、歌词文件批量保存、中文强制简繁转换,外加跟随系统 / 亮色 / 暗黑三档主题。你贴一条链接就能拿到第一份 LRC;指向一个文件夹,它会按 300 首一批、批间停 500ms 的节奏分批拉取,把被限频的概率压下来。

先问一句:你的歌词是从哪来的

如果你的音频散在一个本地文件夹里,给整批文件配歌词这件事过去只能靠"复制链接 → 进搜索框 → 存一个 → 再复制下一个",几首歌之后人就麻了。v7.3 想解决的就是这段重复劳动:

  • 整目录导入:批量搜索窗口里点"本地扫描",指一个音乐目录进去,工具自己识别歌曲文件、批量搜索,你只需要勾选想留的。
  • 批量落盘:选一个目标目录,LRC 或 SRT 文件按顺序一批写出,同名文件可选覆盖或自动加编号。
  • 中文统一出口:歌词里混着繁体或假名,在设置里选"强制简体"或"强制繁体",整份文件按你的习惯输出,不用逐段改。

适合的人群大致是:手里有一批本地音乐、需要成批配 LRC / SRT 的人;用 macOS 却想跑歌词工具的人;以及想自己接一个音乐平台或翻译服务、改点歌词处理逻辑的开发者。

逐个能力拆开看

模糊搜索:先列候选,再勾选保存

你输入一个歌名或歌手名,结果窗口会列出候选歌曲,带上歌手、专辑、时长三列。结果支持多选,勾选完直接批量保存,不用再逐个点开。打开"聚合模糊搜索"后,它会同时查网易云和 QQ 音乐,两边的结果汇在同一个窗口里。

目录扫描:一个文件夹进去,一批歌曲出来

"本地扫描"会自动识别目录里的音频文件,按"歌曲源 + 歌曲 ID"入列表。列表里每首歌可以单独勾选,状态列和备注列能看出单个失败的具体原因。请求侧有两条硬约束:批量请求按 300 首一批发送,批间暂停 500ms——这两个数写在cross-platform/MusicLyricApp/Models/Constants.cs的BatchQuerySize与SleepMsBetweenBatchQuery,目的是给服务端留点喘息,别一下子打太多。

批量保存:文件名带变量,同名不撞车

选定目标目录后,工具批量写出 LRC 或 SRT。文件名支持${name} - ${singer}这类变量,$fillLength可以给序号补零(例如把第 1 首补成001),文件按顺序落盘。同名文件两种策略:直接覆盖,或自动追加编号。无词的纯音乐默认跳过,不会给你留一堆空文件。

格式与中文:LRC / SRT 互转,简繁随你定

输出格式 LRC、SRT 二选一,也能互转。时间戳兼容[mm:ss]、[mm:ss.SSS]、[mm:ss:SSS]三种写法;毫秒留几位、用截位还是四舍五入,都可以单独配置。中文处理三选一:不处理、强制简体、强制繁体,保存前对整份文件生效。外语歌词可以接百度翻译或彩云小译,译文和原文按时间戳逐行对齐。

三步把第一个 LRC 跑出来

最短的可用路径不长:拿到程序、设好基础项、存下第一份文件。

  1. 克隆仓库后在cross-platform下构建运行,需要 .NET 9 运行时;也可以直接取 Release 页的发行包。
git clone https://gitcode.com/GitHub_Trending/16/163MusicLyrics cd cross-platform && dotnet run --project MusicLyricApp
  1. 主窗口里选搜索源(网易云或 QQ 音乐);要接翻译就在设置里填对应密钥;歌词是繁体的,打开"中文处理 → 强制简体"。
  2. 贴一条歌曲链接点"精确搜索"——单曲、专辑、歌单都能查——在预览里确认内容后,选一个目录保存,就拿到第一份 LRC。

想一次出一套发行包,仓库里cross-platform/publish.sh会对win-x86、win-x64、linux-x64、osx-x64、osx-arm64五个目标跑dotnet publish,产物是自包含单文件:

bash publish.sh <版本号>

给想动手的二次开发者

代码结构上,服务层和界面是解耦的:

  • ISearchService 管搜索,StorageService 管保存和配置读写。
  • 加一个音乐平台,只要实现 IMusicApi 然后挂到搜索源即可;已有的 NetEaseMusicApi、QQMusicApi 可以照着抄。
  • 歌词处理集中在 LyricUtils:LyricTimestamp负责解析三种时间戳,简繁转换走 ToolGood.Words,拼音走 hyjiacan.py4n。
  • 翻译走 ITranslateApi,百度、彩云已有实现,接自己的服务照抄一份就行。
  • 配置默认值和文件名元变量都定义在 Constants,批量参数BatchQuerySize/SleepMsBetweenBatchQuery也在里面。

依赖清单在 MusicLyricApp.csproj:Avalonia 11.3.0、CommunityToolkit.Mvvm 8.2.1、hyjiacan.py4n 4.0.0、ToolGood.Words 3.1.0.2、NLog 5.4.0、NTextCat 0.3.65。本地缓存(歌词和直链)放在配置目录下的cache子目录里,命中缓存就不用再打接口。

新旧版本横向对比

对比项旧 WinForms 版v7.3 跨平台版
支持系统仅 WindowsWindows、Linux、macOS
UI 框架WinFormsAvalonia 11,跟随系统 / 亮色 / 暗黑三档主题
配置文件Windows 本地存放系统用户配置目录,各平台按惯例自适应
批量搜索粘贴 ID 列表本地目录扫描 + 批量保存
产物形态需安装 .NET 环境publish.sh出五个目标的自包含单文件

从"能跑"到"能按目录跑",v7.3 把目录扫描、批量保存和三端支持一次补齐。完整变更清单见仓库 ChangeLog。

【免费下载链接】163MusicLyrics云音乐歌词获取处理工具【网易云、QQ音乐】项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进