文章
56
微语
55
评论
256
Do you like me?
395
最新微语
倾丞(Jochen) 2个月前
真正能让你变强的东西,其核心困难是无法回...
倾丞(Jochen) 4个月前
不辩、不劝、不争
倾丞(Jochen) 4个月前
“人生的终极目标是穷尽一生去浪漫。看日落...
倾丞(Jochen) 5个月前
失去人性,失去很多;失去兽性,失去一切
倾丞(Jochen) 9个月前
我不相信成熟能让我们所谓接受任何东西,成...
老板说只要我们努力工作,明年他就可以换玛莎拉蒂了。

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

倾丞(Jochen) · 3年前
2021-8-22 · 程序分享 · 2.9k · 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      //进入安装目录
JavaScript

从Github仓库拉取项目

gh repo clone airline12138/ncmdump_php
Markup

或者

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

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

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

或者

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

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

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

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

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

vi dump.php
Markup

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

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

按ESC退出编辑模式

:wq     //保存并且退出
Markup

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
Markup

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

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

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

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

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

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

php_openssl,exec一般无需手动安装

安装metaflac

yum update && yum install flac -y
Markup

至此,准备工作全部完成

三.使用方法

单文件dump

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

 

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

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

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

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

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

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

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

August 22,2021 21:12:50
阅读2.9k
撰写评论
心随我意 路行千里
可爱 艺术家 江苏靓仔 二次元 哲学家
个人档
qc#gov.moe ,#=@
最新评论
Donnie Rason
World's Best Neck Ma...
2周前
倾丞(Jochen)
@小张:好的,正在构建[smilies8...
4周前
老虎
不需要纠结那么多其实平时的时候或者大部分...
1个月前
小张
早上中午晚上好,麻烦兄弟给换一下链接,夏...
1个月前
Qicloud
光的艺术
2个月前
书签网
抵制预制菜,还的是江西小炒
4个月前
7Wate
摄影让一瞬间成为永恒。
5个月前
倾丞(Jochen)
@小饿:是的,我...
5个月前
小饿
“你要拍好人像就不能只拍人,要拍树是另一...
5个月前
倾丞(Jochen)
@AW:好滴 ٩(•̤̀ᵕ•̤́๑)ᵒᵏ...
5个月前