GithubHelp home page GithubHelp logo

nlyric's Introduction

NLyric

网易云音乐歌词自动搜索下载

可选择登录或免登陆下载,避免出现网易云音乐接口异常。

网易云音乐已屏蔽部分关键字,导致搜索出现异常,属于正常现象(网易云音乐客户端内很多歌曲名已经打上*号)。

New: Windows用户可以解压后双击"NLyric.Win.exe"启动GUI!!!

GUI Windows用户专属GUI。

自动下载 自动下载。

匹配专辑 自动匹配专辑。

用户选项 在非完全精确匹配到的情况下,提供用户选项,并且按照匹配程度排序并高亮显示。

自动更新 再次运行时,自动判断本地歌词是否需要更新(比如网易云音乐上歌词更新了翻译,NLyric可以检测到)。

歌词混合 提供歌词混合模式,同时显示原始歌词与翻译歌词。

缓存结果 第一次运行后缓存搜索结果,加快以后运行速度(会在音频文件夹创建隐藏文件.nlyric,请勿删除)。

使用方式

  1. 下载压缩包(下载地址在下面),全部解压。

  2. 进入解压后的文件夹(内有NLyric.exe等文件),在文件夹内按住Shift,鼠标单击右键,选"在此处打开命令窗口"

  3. 输入命令"NLyric.exe -d 音乐文件夹 -a 网易云音乐账号 -p 网易云音乐密码"以登录模式启动,或输入命令"NLyric.exe -d 音乐文件夹"以免登录模式启动(NLyric不会保存您的账号密码或将您的账号密码发送到第三方,NLyric仅会调用网易云音乐官方API)

  4. 按照程序提示完成接下来的步骤

命令行参数:

Options:
  -d DIR         存放音乐的文件夹,可以是相对路径或者绝对路径  (Optional)
  -a STR         网易云音乐账号(邮箱/手机号)  (Optional)
  -p STR         网易云音乐密码  (Optional)
  --update-only  仅更新已有歌词  (Optional)
  --batch        使用Batch API(实验性)  (Optional)

例子:

NLyric.exe -d C:\Music -a [email protected] -p 123456 --batch

配置

配置文件是"Settings.json",自己修改即可

默认配置:

{ // 所有匹配都是忽略大小写的!!!
	"Search": { // 搜索设置,在每一次搜索生效。
		"AudioExtensions": [
			".aac",
			".ape",
			".flac",
			".m4a",
			".mp3",
			".ogg",
			".wav",
			".wma"
		], // 会被识别为歌曲的扩展名。
		"Separators": "|;,/\\&:", // 分隔符,用于分割歌手名。
		"WholeWordReplace": {}, // 前面是被替换的词,后面是要替换成的词,比如"A": "B",那么在搜索"A"的时候会替换为"B"来搜索。
		"Limit": 15 // 搜索结果数量。
	},
	"Fuzzy": { // 第一次搜不到或者匹配失败的情况下,是否进行模糊搜索与匹配。
		"TryIgnoringArtists": true, // 忽略艺术家。
		"TryIgnoringExtraInfo": true, // 忽略 括号/空格 + Cover/feat. 之后的内容,支持的括号类型在Filter.OpenBrackets里。
		"ExtraInfoStart": " ([{【〖", // 空格和左括号等之后的内容会被过滤,注意,不要随便修改这里的内容,可能导致过滤准确性降低。
		"Covers": [
			"Cover",
			"カバー"
		], // Cover的各种写法。
		"Featurings": [
			"feat.",
			"ft."
		] // Feat.的各种写法。
	},
	"Match": { // 匹配设置,在搜索到歌曲信息之后,程序会通过自己的算法再次确认是否匹配。
		"MinimumSimilarity": 0.65, // 匹配时的最小相似度,小于设定值的将不予显示,0~1。
		"CharReplace": {
			"\u00B7": "\u002e",
			"\u0387": "\u002e",
			"\u05BC": "\u002e",
			"\u2022": "\u002e",
			"\u2027": "\u002e",
			"\u2219": "\u002e",
			"\u22C5": "\u002e",
			"\u30FB": "\u002e",
			"\uFF65": "\u002e",
			// .
			"\uFF0A": "\u002A",
			// *
			"\uFF01": "\u0021",
			// !
			"\uFF1A": "\u003A",
			// :
			"\u005B": "\u0028",
			"\u007B": "\u0028",
			"\u3010": "\u0028",
			"\u3016": "\u0028",
			// (
			"\u005D": "\u0029",
			"\u007D": "\u0029",
			"\u3011": "\u0029",
			"\u3017": "\u0029"
			// )
		} // 前面是被替换的字符,后面是要替换成的字符,只支持单个字符替换,意思就是一个文字,多个文字会报错。
	},
	"Lyric": {
		"Modes": [
			"Merged",
			"Raw",
			"Translated"
		], // 歌词模式,依次尝试每一个模式直到成功,Merged表示混合未翻译和翻译后歌词,Raw表示未翻译的歌词,Translated表示翻译后的歌词。
		"SimplifyTranslated": true, // 部分翻译后的歌词是繁体的,这个选项可以简体化翻译后的歌词。
		"Encoding": "utf-8",
		"AutoUpdate": true, // 是否自动更新由NLyric创建的歌词。
		"Overwriting": true // 是否覆盖非NLyric创建的歌词。
	}
}

下载

GitHub: .NET Framework版(Windows请下载这个) .NET Core版

AppVeyor: Build status

感谢

混合歌词的思路参考了 EHfive/Some-js-script-for-FB2

nlyric's People

Contributors

wwh1004 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nlyric's Issues

两个版本都遇到了“Newtonsoft.Json.JsonReaderException”错误

windows 10 ltsc 1809英文版,两个版本都遇到了下面的错误:
Type:
Newtonsoft.Json.JsonReaderException
Message:
Unexpected character encountered while parsing value: L. Path '', line 0, position 0.
Source:
Newtonsoft.Json
StackTrace:
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
at NLyric.Ncm.NcmApi.GetAlbumAsync(Int32 id) in C:\projects\nlyric\NLyric\Ncm\NcmApi.cs:line 55
at NLyric.Ncm.CloudMusic.GetTracksAsync(Int32 albumId) in C:\projects\nlyric\NLyric\Ncm\CloudMusic.cs:line 52
at NLyric.CliWorker.GetTracksAsync(NcmAlbum ncmAlbum) in C:\projects\nlyric\NLyric\CliWorker.cs:line 229
at NLyric.CliWorker.MapToAsync(Track track, Album album, String audioPath) in C:\projects\nlyric\NLyric\CliWorker.cs:line 202
at NLyric.CliWorker.TryGetMusicId(String audioPath) in C:\projects\nlyric\NLyric\CliWorker.cs:line 82
TargetSite:
Boolean ParseValue()

大佬可以加一个歌单歌词下载吗?

大佬可以考虑下歌单歌词下载吗。
既然已经登录了,也就可以获取歌单了
获取歌单歌词就不用再通过搜索获取ID了,但是文件名的话可以通过模糊匹配或者根据163的命名法来写
仅是建议,大佬如果不方便的话就忽略吧

无法找到歌曲ID错误

Screenshot 2021-11-17 192354
所有的歌曲都是这样 可以选择专辑或者输入专辑ID,但是找不到音乐ID,也没有任何机会手动输入音乐ID

当手动填写歌曲网易云id后,下载歌词有误

当手动填写歌曲网易云id后,下载歌词有误。经检查,所有歌词都是第一个输入id的歌曲的歌词
推测可能是配置文件"name"使用的是MP3文件属性内的名字而不是文件名,导致下载时歌词按照字典遍历到第一个空字符串就下载该歌词
建议配置文件中"name"用文件属性中的命名方法改为用文件名命名的方法

[BUG]当.nlyric为空时报错

在做++版的时候调试遇到了这个bug,以为是自己代码写错,调试发现是在读取.nlyric时出错,.nlyric为空时报了错,删除后就OK了

[BUG] 目前已知的歌曲歌词错误

Salt Is My Sugar (TheFatRat Remix)
最后两句只获取到了翻译歌词并且掉了两句

[02:59.14]宝贝如果你在听你一定懂得
[03:08.29]你最好倾听这些然后点燃我内心的光芒
原曲歌词截图:
image

2.HandClap
时间严重出错

[17:36.00]Too many troubles, all these lovers got you losing control 「这些暧昧情人麻烦不断 让你失去了理智」
[37:02.00]Somebody save your soul cause you've been sinning in this city I know 「我知道你曾在这座城市无恶不作 直到有人将你灵魂救赎」
[26:31.00]That I can make your hands clap 「我能让你情不自禁雀跃鼓掌」

原曲歌词截图
image

无法下载歌词

Windows平台,按照你给的步骤,会显示匹配文件信息,以及获取到了对应歌曲的id,但是它不显示下载歌词文件成功。(实际上确实没有下载歌词文件)我想请问一下这个是什么问题呢?

卡在选择123上

$ ./NLyric.exe -d ../../music.stable/Jacky\ Cheung\ -\ Music\ Collections\ 1985-2019\ AAC/张学友-1994-饿狼传说/
程序会自动过滤相似度为0的结果与歌词未被收集的结果!!!
登录可避免出现大部分API错误!!!当前是免登录状态,若软件出错请尝试登录!!!
强烈建议登录使用软件:"NLyric.exe -d C:\Music -a [email protected] -p 123456"

开始获取文件"01 春风秋雨.m4a"的网易云音乐ID。
开始搜索专辑"Name:饿狼传说 | Artists:张学友"。
正在尝试带艺术家搜索,结果可能将过少!
专辑匹配成功!
歌曲匹配成功!
已获取文件"01 春风秋雨.m4a"的网易云音乐ID: 190267。

开始获取文件"02 饿狼传说.m4a"的网易云音乐ID。
歌曲匹配成功!
已获取文件"02 饿狼传说.m4a"的网易云音乐ID: 190270。

开始获取文件"03 这一次意外.m4a"的网易云音乐ID。
歌曲匹配成功!
已获取文件"03 这一次意外.m4a"的网易云音乐ID: 190272。

开始获取文件"04 来来回回.m4a"的网易云音乐ID。
歌曲匹配成功!
已获取文件"04 来来回回.m4a"的网易云音乐ID: 190274。

开始获取文件"05 只有你不知道.m4a"的网易云音乐ID。
歌曲匹配成功!
已获取文件"05 只有你不知道.m4a"的网易云音乐ID: 190276。

开始获取文件"06 非常夏日 .m4a"的网易云音乐ID。
请手动输入1,2,3...选择匹配的项,若不存在,请直接按下回车键。
对比项:非常夏日 by 张学友

  1. Name:非常夏日 | Artists:张学友,王菲 | Id:190279 (s:1.00)

1

然后卡住了,不往下走了

最好能自动跳过,或者默认选择1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.