大家好啊,我是你们的折腾小助手阿木,最近阿木在整理网易云第三期一专一首歌歌单,之前阿木有研究如何通过跑python程序下载网易云专辑歌曲和单曲歌曲,但大家的歌单可能动辄就是以百计数,一首一首下载不仅麻烦还有可能漏下,过程非常耗人,阿木之前也很头疼这个问题,在网上搜到的方法要么是直接在电脑端网易云下载缓存文件通过ncm程序转换(网易云下载缓存文件本身就有歌曲数量限制),要么下载的歌曲不是无损音乐而且还不能下载完整会员歌曲。最近,阿木在GitHub上找到了一个项目,可以完美解决歌单下载问题,给大家分享一下这个项目的部署以及注意问题。(tips:无论是什么方法自部署都需要你自己有网易云会员才能下载高音质会员歌曲哦。)

项目链接和准备工作

这次的项目我们需要准备一个本地能运行npm或者docker的环境,有关于npm环境和docke环境的部署b站上有很详尽的win部署教程,阿木在这里还是不班门弄斧了,因为阿木是直接使用家庭服务器飞牛云nas的docker环境部署项目(强烈推荐docker部署,两条命令,傻瓜操作),这里阿木建议大家可以在b站上找一下废弃电脑手机转nas或者linux系统安装docker环境的教程,一般半小时就能搞定,直接在自己win电脑本地部署也行,就是对电脑功耗有点大;服务器上部署记得一定要是国内服务器,不能是香港或者国外的的服务器(可能会造成下载失败或者封号)。以下是项目的Github地址,大家可以在Github中点一下收藏。

https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced

https://github.com/rong6/ncm-downloader

部署网易云音乐 API Enhanced

首先,我们需要自部署网易云音乐api服务,或者如果你能找到靠谱的公共api服务,也可以跳过这个步骤,但是你的网易云信息可能会暴露在公共服务器。我们这里在有docker环境的情况下,配置好docker的国内镜像源(有关教程可以直接搜索,或者在上期文章里部署的1panel里配置镜像源,复制黏贴到容器配置里保存即可),进入服务器(nas)命令面板,通过sudo -i进入管理员模式,然后在命令页面输入以下指令:

1、从 Docker Hub 拉取最新版本镜像指令等待下载完成:

docker pull moefurina/ncm-api:latest

2、运行容器指令:
docker run -d \
  --name ncm-api \
  -p 1633:3000 \
  moefurina/ncm-api:latest

注意,这里的【1633:3000】可以调整前面的【1633】端口字段,避免与服务器本身就占用的端口号冲突

如果这里命令板没有报错,那第一步就已经结束了,真正的难点还是win电脑docker环境部署,阿木有机会会在研究透彻以后出一期相关教程。(虽然相关教程挺多的

使用NCM-DOWNLOADER

这里首先我们直接下载项目作者打包好的python程序,完全不需要在自己电脑上配置python环境。exe程序下载地址在这,下载乃最新版就行
https://github.com/rong6/ncm-downloader/releases

接下来我们双击打开exe程序进入命令界面,我们完全不要理会原作者的教程说的进入网易云音乐 API服务后端扫码登录获取cookie(这个方法获取的cookie值不可用)

首先,我们输入你的家庭服务器路由地址加上:1633(或者你自己设置的端口号)到exe程序命令界面提示输入的api地址位置回车。接着,打开网易云音乐浏览器端,在网页按下F12键位调出控制台,选择控制台顶部network选项卡,登录网易云,在network选项卡左侧栏结果里找到music.163.com文件,点击,在右边的headers选项卡中找到Request Headers(请求头)中的cookie头,复制cookie项右边的值,黏贴到exe程序命令界面的cookie提示输入中,回车,这样就完成了cookie录入,如果你是网易云会员,你就能通过cookie调用会员歌曲音质api下载歌曲了

需要注意的是,由于api服务有不稳定的情况,或者NCM-DOWNLOADER本身的bug,可能导致出现歌单个别歌曲无法下载的情况,可以使用【https://github.com/Suxiaoqinx/Netease_url】项目下载缺失单曲,具体的部署教程该项目作者说明详细,不在赘述,现在,开始折腾你的本地听歌播放吧!