/NeteaseMusicCacheDecoder

Netease Music cache decoder, build by Electron with Node.js

Primary LanguageJavaScriptMIT LicenseMIT

网易云音乐缓存解码器 NeteaseMusicCacheDecoder

简介

将网易云音乐的缓存文件,转换为可以播放的MP3音乐。可以根据缓存音乐名(音乐ID)按照一定规则为音乐自动重命名。并且更新音乐的元数据,例如歌手与专辑信息、专辑封面。添加云音乐识别码(163 key),可以被云音乐识别,以查看歌词和评论。

项目基于Nodejs+Electron构建,除了Windows系统,MacOS和Linux也支持了。MacOS版本可以自动定位缓存目录,极大简化了操作。

项目仅用于技术交流,希望大家多支持正版音乐!

最新版本

v3.4.1 修复版本,更新于北京时间2020年8月2日

安装说明

Windows版本

解压下载的压缩包到任何位置(不建议在系统目录下),双击NeteaseMusicCacheDecoder.exe即可开始使用。

macOS版本

解压下载的压缩包,将里面的两个文件(NeteaseMusicCacheDecodersettings.json)复制到其他目录下,只要不是解压产生的目录就可以。双击NeteaseMusicCacheDecoder,会弹出信任警告,提示程序从Github中下载。此时,点击“打开”即可正常使用。

使用说明

基本说明&注意事项

  • 网易云音乐的缓存后缀名是uc(Windows)或uc!(macOS)。只有这两个后缀名的文件才会被转换。
  • 自动命名依赖于缓存文件文件名中的ID部分,如果ID有误,获取的信息一定不正确。
  • 如果缓存文件不是按照音乐ID命名或者无法获取到音乐信息,将按照缓存原始文件名命名。
  • 自动命名的默认方式是歌手名 - 歌曲名.mp3,点击规则右侧的重置按钮可以重置为默认方式。
  • 自动命名时会自动填写歌曲元数据。
  • 自动命名以及歌曲元数据自动填写都需要联网。
  • 已经失效的音乐,很大可能无法获得音乐信息。
  • 转换过程不会校验音乐数据是否完整:部分缓存的音乐转换完也可能无法播放。
  • macOS版本中,在选择缓存目录时可能会弹出窗口询问“是否允许访问日历”,选择允许或不允许均可。程序并不需要访问日历相关内容。

如果只要转换一个文件...

  • 使用“单文件处理”选项卡
  • 选择待转换的缓存文件,后缀名是uc(Windows)或uc!(macOS)。macOS如果勾选下方的在网易云音乐默认缓存路径下检索,选择缓存文件时,会优先在云音乐默认的缓存目录下选择
  • 选择音乐准备写入的目录
  • 决定音乐的文件名(手动输入/自动获取)
  • 点击“开始转换”

如果需要转换很多文件...

  • 使用“批量处理”选项卡
  • 选择待转换的缓存文件所在的目录。macOS如果勾选下方的在网易云音乐默认缓存路径下检索,选择缓存目录时,会先跳转到缓存目录
  • 选择音乐准备写入的目录
  • 决定音乐的文件名(按照缓存文件名/自动获取)
  • 点击“开始转换”

如果只想转换缓存目录下,几首我想要的音乐...

  • 使用“批量处理”选项卡
  • 选择待转换的缓存文件所在的目录。macOS如果勾选下方的在网易云音乐默认缓存路径下检索,选择缓存目录时,会先跳转到缓存目录
  • 选择音乐准备写入的目录
  • 决定音乐的文件名(按照缓存文件名/自动获取)
  • 点击“扫描缓存文件”
  • 在下方显示的缓存文件列表中,根据歌曲的信息,找到需要转换的一首音乐,点击该行右侧的“转换此文件”即可完成转换

更新

  • 当有新版本时,“关于”选项卡右侧将会有叹号图标显示。在“关于”选项卡中可以浏览新版本信息,并选择更新。
  • 更新包会根据系统下载对应版本的压缩包,下载后按照前述的安装方法做一次就可以(相当于使用新的App)。
  • 如果需要保留先前的设置,将上一版本的settings.json替换到新的目录中(非建议操作,settings.json可能会发生变化)。
  • 没有新版本时,不会有任何提示。

自动获取

自动获取提供8种可以使用的歌曲属性:歌手名、歌曲名、专辑名、歌曲ID、附加名、发行公司、曲目ID、唱片ID。指定的规则需要避免多首音乐对应同一个名称的情况,否则后转换的音乐会覆盖掉之前转换的音乐。自动命名的默认方式是歌手名 - 歌曲名.mp3,一般情况下不会发生重复。可能会发生重复的情况可能是,一首音乐具有多个版本。请注意此种情况下音乐的区别。

举例:《名侦探柯南》的主题旋律

属性 版本1 版本2
音乐ID 28188343 28188284
歌曲名 「名探偵コナン」メイン・テーマ 「名探偵コナン」メイン・テーマ
歌手名 大野克夫 大野克夫
专辑名 「名探偵コナン」オリジナルサウンドトラック2 「名探偵コナン」オリジナルサウンドトラック1
附加名
发行公司 ポリドール ポリドール
曲目ID 36 1
唱片ID 1 1

两个版本名称完全相同,但是隶属于不同专辑,风格不同。这种情况需要添加其他属性(如专辑)进行区分。 名称中含有音乐ID可以保证不重复。含有专辑名、歌手名和歌曲名,重复概率非常低。

附加名

附加名就是音乐的别名,反映在云音乐中是歌曲后面跟随的灰色小字,例如:仓木麻衣的PUZZLE,给出的附加名是:映画「名探偵コナン 漆黒の追跡者(チェイサー)」EDテーマ(电影《名侦探柯南 漆黑的追踪者》片尾曲)。附加名如果存在,会用小括号括起来。上面的例子会命名为:倉木麻衣 - PUZZLE(映画「名探偵コナン 漆黒の追跡者(チェイサー)」EDテーマ).mp3

附加名通常是对音乐的辅助说明,比如它的出处、使用场景,通常会使文件名很长。另外,有一类“XXX最热XX”也是附加名,使用时要慎重。

歌曲元数据

歌曲元数据是用于描述歌曲属性的数据,比如歌曲的艺术家、隶属的专辑、封面的图片等等。

支持的元数据信息:

  • 歌手/艺术家artist
  • 专辑album
  • 歌曲名/标题title
  • 轨道号trackNumber
  • 版权信息copyright
  • 歌曲封面cover
  • 备注comment,用于云音乐识别为下载音乐

开发计划

  • 多语言支持(英语&繁体中文)
  • 优化提示信息(现在部分提示信息来自于Nodejs,这些信息对于非IT工作者并不易于理解)
  • 歌曲元数据更新(如封面图片)
  • 转换的歌曲可以被云音乐识别
  • 歌曲数据查看
  • 检测音乐完整性
  • 自动检测缓存目录(对于Windows)
  • 简易播放器(可以试听解码音乐,功能很基本,并不是设计用来播放音乐的)
  • 自动命名冲突解决

何时能上线嘛...社畜的加班生活你们都懂得

更新历史

v3.4.1

  • 修复:批量转换的扫描模式下,目标路径使用的不是批量页面上的路径。

v3.4.0 选择性转换需要的音乐

  • 当缓存文件特别多的时候,可以通过扫描路径下的缓存,通过获取到的音乐信息,只转换需要的音乐

v3.3.0 更新音乐元数据

  • 自动获取音乐名称的时候同步更新音乐元数据
  • 通过自动获取名称的音乐可以被网易云音乐识别为已下载音乐
  • 解决音乐名称中包含特殊字符的情况

v3.2.0 增加简体中文和英文的多语言支持

  • 增加简体中文和英文的多语言支持
  • 增加手动检查更新的功能
  • 检查更新的URL更新,解决部分网络情况下无法访问更新URL的问题

v3.1.0 使用Electron全新构建的App

  • 解决V2版本下获取音乐名称有误的问题
  • Mac上也可以使用了
  • 界面重新设计,更现代
  • 可以自定义音乐命名规则
  • 自动检查更新,不错过新功能

声明

本程序为免费程序,分享请注明出处,尊重开发者劳动。本程序传播过程中造成的任何形式的后果与开发者无关。

云音乐识别码(163 key)的构造方法参考了nondanee的163marker项目(https://github.com/nondanee/163marker)

项目地址

Github:https://github.com/lchloride/NeteaseMusicCacheDecoder

如有问题请在issue中留言。