网易云音乐ncm转mp3

网易云音乐ncm转mp3

网易云音乐有些要vip才能听的音乐,即使你开会员下载了,会员过期后也听不了(因为你下载的是网易的加密格式.ncm而不是普通的.mp3),所以我们将它转成mp3传到《我的音乐云盘》中,就可以听了,也可以在其他播放器中播放了。

github有好几个工具,我使用的是go版本的,它的用法很简单:

./ncmdump-darwin-amd64 xxxx.ncm

但如果ncm很多,用上边的方法自己一首一首的转太麻烦,所以我就写了段代码读取我的网易云音乐目录中的所有.ncm文件,并判断这些ncm文件是否已经有同名的.mp3文件,如果有说明已经转换过了,如果没有我就调用转换工具进行转换(我用的是我熟悉的php,你可以用你自己熟悉的语言来写):

<?php
    $arr = glob('/Users/bruce/Music/网易云音乐/*.ncm');
    foreach ($arr as $val){
        $mp3 = substr($val, 0 , -4).'.mp3';
        if(file_exists($mp3)){
            continue;
        }
        $val = str_replace(' ','\\ ', $val);
        $val = str_replace("'","\\'", $val);
        $val = strtr($val, ['('=>'\\(', ')'=>'\\)']);

        // echo "$val\n";
        exec('/Users/bruce/Softwares/网易ncm转mp3/ncmdump-darwin-amd64 '.$val);
    }

以下是执行结果:

[email protected]'s MBP > php ./ncm2mp3.php
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/孙楠,韩红 - 美丽的神话.mp3
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/张学友 - 情系半生.mp3
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/张敬轩 - 断点.mp3
2019/07/31 15:27:07 Adding music name
2019/07/31 15:27:07 Adding album name
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/张敬轩,麦家瑜 - 石径.mp3
2019/07/31 15:27:07 Adding music name
2019/07/31 15:27:07 Adding album name
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/李克勤 - 爱不释手.mp3
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/谢安琪 - 喜帖街.mp3
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/谢安琪 - 年度之歌.mp3
2019/07/31 15:27:07 Adding artist
2019/07/31 15:27:07 /Users/bruce/Music/网易云音乐/陈奕迅 - 落花流水.mp3
2019/07/31 15:27:07 Adding music name
2019/07/31 15:27:07 Adding album name
2019/07/31 15:27:07 Adding artist

但要注意,Mac版的转换之后有可能有乱码,这是因为音乐是在Win上添加的信息,它的文字编码在Mac上会乱码而这个转换工具没有做处理,目前我是自己修改这个信息:
Xnip2019-07-31_22-49-21

可以用Music Tag Editor Pro这个软件来修改这些信息:
Xnip2019-07-31_22-49-44

几个工具的不同语言不同平台版本(我用的go语言-macOS版):
ncmdump-win/android-c++
ncmdump-gui-win-C#
ncmdump-python
ncmdump-golang(Linux/Mac会比较方便)
网易云音乐ncm文件格式解析

打赏

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
xiebruceZen Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of
Zen
Guest

请问这段Golang代码怎么用?

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

网易云音乐ncm转mp3