资讯动态

163MusicLyrics:批量获取与处理音乐歌词的跨平台工具

发布时间:2026/10/29 19:48:03 来源:尧图企业网站定制
163MusicLyrics批量获取与处理音乐歌词的跨平台工具【免费下载链接】163MusicLyrics云音乐歌词获取处理工具【网易云、QQ音乐】项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics163MusicLyrics 是一款跨平台桌面应用能从网易云音乐、QQ 音乐批量拉取 LRC 歌词。它支持按单曲、专辑、歌单模糊搜索LRC ↔ SRT 格式互转以及逐字歌词。适合需要批量建立本地歌词库的音乐爱好者和字幕编辑。贴一个链接拿到歌词文件最短使用路径主界面就是一个长输入框。粘入歌曲页链接、纯数字 ID或者用逗号分隔的多个 ID点搜索后窗口会展示歌曲元信息、完整歌词预览以及试听直链的播放条。以粘入一条 QQ 音乐歌曲页链接为例返回的内容包括歌曲元数据、原文歌词和罗马音译写底部还会提示命中本地缓存说明这次没有再向平台发起请求。如果你只记得歌名的一部分勾上模糊选项。会弹出一个结果列表每行是歌曲名、歌手、专辑、时长、平台勾选后一次保存多首。批量模式扫整个目录或贴一批链接点右上角下载管理可以粘贴一批链接也可以点本地扫描直接指定音频文件所在目录。工具会把文件名当作歌曲 ID 逐条查询表格给出每首歌的状态Ready、歌词未收录或查询失败。勾选要保存的歌点保存选中即可导出。统一接口加缓存装饰两个平台是怎么被包住的两个平台的数据结构差别不小网易云用数字 IDQQ 音乐有内部 ID 和 mid 两套编号错误码也各说各话网易云返回 20001 代表需要登录QQ 音乐则是 0 表示成功。项目把这些差异都收进了一个IMusicApi接口public interface IMusicApi { SearchSourceEnum Source(); ResultVoPlaylistVo GetPlaylistVo(string playlistId); // 歌单 ResultVoAlbumVo GetAlbumVo(string albumId); // 专辑 Dictionarystring, ResultVoSongVo GetSongVo(string[] songIds); ResultVostring GetSongLink(string songId); // 试听直链 ResultVoLyricVo GetLyricVo(string id, string displayId, bool isVerbatim); ResultVoSearchResultVo Search(string keyword, SearchTypeEnum searchType); }NetEaseMusicApi和QQMusicApi是两个独立实现把各自特有的字段翻译成统一的SongVo、LyricVo。上层的SearchService按来源枚举取到对应实现全程不关心具体平台。第二层包装是MusicCacheableApi基类。两个实现类的方法最终都走一遍缓存public ResultVoT ProcessT(object keyPrefix, CacheType cacheType, string key, FuncResultVoT cacheFunc) { var cache QueryT(keyPrefix, cacheType, key); if (cache ! null) return new ResultVoT(cache); var res cacheFunc.Invoke(); if (res.IsSuccess()) DoCache(keyPrefix, cacheType, key, res.Data); return res; }几个值得注意的细节。只有成功结果才入缓存失败会原样抛回下次还会重试。批量查询时BatchQuery先逐条走缓存把未命中的 ID 挑出来才真正发请求网络调用量随批次下降。内存缓存之上还有一层磁盘缓存LocalSongCacheService查过的歌词落盘保存重启程序后重查同一首歌不再走网络。QQ 音乐的歌词头部还带着[offset:0]、[kana:]这类额外标记解析阶段会先把它们清掉再进入时间戳切分。翻译歌词对不上毫秒怎么办多语言歌词最麻烦的是对齐。原文和译文是两股独立的 LRC 流时间戳不一定毫秒级吻合。LyricUtils的处理分三步先按时间戳精确配对对没配上的译文行在可配置的精度误差窗口内重新查找并改写时间戳仍然缺的译文行按缺失规则处理——丢弃、用原文补、或留空行。不做这一步的话两股歌词只能硬叠在一起。译文行会比原文提前或滞后几秒交错模式下同一句的原文和译文互相跳位文件基本没法用。对齐完成之后原文和译文才敢安全合并进同一个文件。输出组合有三种组合模式效果交错原文与译文按时间顺序交替穿插合并同一时间戳的行拼成一行中间加分隔符独立每种语言的歌词各存一个文件语言判断也不靠平台声明。代码用 NTextCat 逐行识别语言后投票再决定是否要调翻译。开启翻译能力后会依次尝试彩云小译、百度翻译的接口中文歌词还可以输出成拼音由 py4n 库提供。用这个工具要付出的代价工具能力建立在两个平台的公开网页接口上代价很明确两个平台都需要你粘贴自己的登录态 Cookie部分内容不登录查不到Cookie 过期后相关查询会直接失败。翻译功能依赖彩云小译或百度翻译的密钥需要自己去申请不配就只能拿平台自带的原文、译文和罗马音。只支持网易云音乐和 QQ 音乐两家接入新平台要完整实现一套IMusicApi。取到的歌曲链接是试听级音源不是高清音频。接口逆向自网页端而非官方 SDK平台改字段时对应实现类要跟着修没有契约保证。另外有个事实要心里有数这是个人维护的开源项目老 WinForms 版本已归档在 archive-winform现在维护的代码在 cross-platform 目录。延伸还能找到什么想自己跑源码git clone https://gitcode.com/GitHub_Trending/16/163MusicLyrics构建入口是 cross-platform/MusicLyricApp。LRC ↔ SRT 转换是独立功能主菜单格式转换入口可单独使用字幕编辑场景直接可用。逐字歌词模式由 VerbatimLyricUtils 处理分别解析两家平台私有的时间戳格式。批量扫描、模糊搜索两条路径的代码都在 SearchService读这一处就能看懂查询主流程。【免费下载链接】163MusicLyrics云音乐歌词获取处理工具【网易云、QQ音乐】项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑