使用NCM Dump php版本解锁网易云加密黑胶音乐(支持输出flac,mp3)

倾丞(Jochen) · 3个月前
2021-8-22 · 程序分享 · 627 · 0

用过网易云音乐的小伙伴们应该都知道网易云最高品质是“黑胶音质”,和QQ音乐的SQ品质一样,音频源文件是经过官方加密的,你只能在各家的平台进行播放,比如网易云就是ncm加密格式,于是便出现了NCM Dump这个概念,最近我的朋友安杰对原版进行了优化,我测试下来效果很好,也协助指正了一些BUG。

针对原项目(ncmdump)进行了修改完善 在其原有代码基础上修复并增加了一些功能:

[add] 批量Dump
[fix] 玄学报错(缺少ogg3库引入)
[fix] flac格式无法写入封面图片
[add] mp3,flac格式写入歌曲元数据(歌曲名,艺术家/音乐家,专辑名)
[优化] 返回机制从echo改为return,class类库中终于不再直接输出内容
[优化] 更新了getid3类库

需要的拓展/需要开启的函数/依赖软件

  • php_openssl (不是很清楚 应该是用于解密)
  • php_exif (操作图像文件)
  • shell_exec (getid3库操作metaflac)
  • exec (用于操作文件)
  • metaflac (用于写入flac格式元数据 在CLI安装 yum install flac -y / apt install flac -y) (感谢倾丞(Jochen)指出此处描述错误 包名为flac而非先前版本的metaflac)

下面将进行纯php环境与宝塔面板两种情况的使用说明(当然,因为我懒,所以说纯php环境基本在划水)

准备工作

由于使用该程序需要开启一些危险的php函数,如果你是生产模式服务器运行该程序,建议安装另一个版本的PHP,比如我这里就选择了PHP7.0

我的服务器环境 Linux CentOS 7.9.2009 x86_64

一.纯CLI+PHP环境操作(宝塔面板请直接翻至二)

这里以部署在 /home 目录为例

cd /home      //进入安装目录

从Github仓库拉取项目

gh repo clone airline12138/ncmdump_php

或者

git clone https://github.com/airline12138/ncmdump_php.git

如果上面的命令卡在连接到host的话可以 Ctrl + C 后尝试下面的几条命令

git clone https://github.com.cnpmjs.org/airline12138/ncmdump_php.git

或者

git clone https://hub.fastgit.org/airline12138/ncmdump_php.git

提示拉取成功后ls列出全部文件与目录

ls      //这一步其实有点画蛇添足

使用vi编辑器编辑dump.php,当然你要是有vim编辑器也可以

如果你对vi编辑器操作存在疑惑,可以参考这篇文章

vi dump.php

a        //进入vi编辑器编辑模式

输入“a”进入编辑模式,比如这里修改dump后的ncm文件输出文件夹名称为 ncm_flac (若默认可直接忽略这几步)

按ESC退出编辑模式

:wq     //保存并且退出

php_openssl 拓展一般都会有

php_exif 拓展一般都会有

开启禁用的两个函数

在对应php安装目录下的ect文件夹中找到php.ini,查找字符“disable_functions”在这个配置项内删去shell_exe 与 exec

Tip:请检查您的PHP-CLI版本是否为您安装拓展开启函数的版本(若您只有一个PHP版本可忽略)

可以参考这篇文章

最后一步安装metaflac

这里有一段小插曲~

一开始安杰给我的metaflac包名是metaflac,然后我就算更换EPEL也是无法找到软件包,一番周折下来发现metaflac的软件包名居然是flac,哭叽叽——————————

yum install flac -y

至此,准备工作全部完整,请转至 三.食用方法

二.宝塔面板+PHP环境(面向小白的保姆级教程)

首先从Github下载源码压缩包上传至服务器 /home 目录

若您需要修改批量输出文件夹则编辑dump.php(若默认可无视这一步)

检查PHP命令行版本(PHP-CLI版本)是否为你需要运行的php版本

在 php管理>禁用函数 中删去shell_execexec

php_openssl,exec一般无需手动安装

安装metaflac

yum update && yum install flac -y

至此,准备工作全部完成

三.使用方法

单文件dump

cd /home/ncmdump_php-master       //进入程序目录
php ncm.php <filepath> <dealwithid3>

 

批量dump(文件夹内所有歌曲)

cd /home/ncmdump_php-master       //进入程序目录
php dump.php

 需手动修改PHP文件中的输入NCM路径,输出NCM路径,输出dump后文件路径

我出现error是因为程序没有自动创建文件夹,新版本会解决这个bug的,只需要手动创建好文件夹即可

当看到Successfully dumped说明运行成功了,在output目录或你设置的dump目录下可以找到flac或mp3格式的音频文件,只需要下载就可以播放啦!

虽然网易云音乐黑胶品质一般也只是 44.1Khz/48Khz 16bits 320kbps,但是如果你对音质需求没有这么高,用普通耳机播放的话还是完全能听的。

当然,像我这个HIFI爱好者当然是喜欢更棒的音源的

August 22,2021 21:12:50
阅读627
撰写评论
心随我意 路行千里
可爱 啥也不是 啥也不会 懒癌晚期 江苏靓仔 二次元 二刺螈
个人档
admin@qcmoe.com
最新评论
倾丞(Jochen)
@空城:好的
6小时前
空城
嘿嘿,域名备案了。 要麻烦你更新一下友...
17小时前
倾丞(Jochen)
@752084830:已添加贵站友链至-...
2周前
752084830
@752084830:头像地址:http...
2周前
752084830
名称:King 地址:https://...
2周前
倾丞(Jochen)
@啾咪の阿网:欢迎...
4周前
啾咪の阿网
谢谢~我archlinux kde已经原...
4周前
倾丞(Jochen)
@空城:已修改
1个月前
空城
嘿嘿,要麻烦你的小手给我更新一下友链信息...
2个月前
倾丞(Jochen)
@空城:中秋节快乐!
2个月前