以前我没得选,现在我只想做个坏人

解锁网易云音乐歌单版权地区限制|使用Proxifier|开机自启动Shell

    碎碎念     GFW·碎碎念·翻墙·科学上网

  1. 1、安装项目运行环境(Node.js)
  2. 2、下载项目|两种方法
  3. 3.1、方法1代理模式(亲测可用)
  4. 3.2、方法2Hosts模式(亲测失效)
  5. 4、设置开机自动运行程序

那天我像往常一样打开网易云音乐,点击首页那张之前创建的中岛美雪的歌单,然后看到了这个:

不见图请翻墙

满屏的灰色打破了我镇定的情绪。

我决定开始行动。


一顿搜索之后发现了这个解决方案:UnblockNeteaseMusic ,赞美作者:nondanee

它的思路是:

  1. 使用 QQ / 虾米 / 百度 / 酷狗 / 酷我 / 咪咕 / JOOX 音源替换变灰歌曲链接
  2. 为请求增加 X-Real-IP 参数解锁海外版权限制。(因为有些歌曲在国外是可以正常听的)

下面是教程正文


1、安装项目运行环境(Node.js)

Windows

Download | Node.js
下载 .msi 安装包并安装

macOS

Download | Node.js
下载 .pkg 安装包并安装

Linux

Installing Node.js via package manager | Node.js

当然用 macOS 的 Homebrew,Windows 的 Scoop 等包管理器安装也可以,根据个人喜好选择即可。

Android 平台的终端模拟器如 Termux,NeoTerm 等也可以安装 Node.js,教程非常多,请善用搜索引擎。

2、下载项目|两种方法

  1. 使用 Git 克隆

  2. 1
    2
    git clone https://github.com/nondanee/UnblockNeteaseMusic.git #克隆项目仓库
    cd UnblockNeteaseMusic #进入项目根目录
  3. 手动下载源码压缩包:在项目首页点击 Clone or download 绿色按钮,选择 Download ZIP 并解压

P.S. 项目不需要安装任何依赖(前端同学不要手快npm install或者yarn)。

使用此项目存在两种方法,或者说两种模式。下面分别介绍:

3.1、方法1代理模式(亲测可用)

首先配置Proxifier

添加一个后面用到的Proxies:只需要填Addresss Port Protocol,其他的空着。

不见图请翻墙

然后添加一个Rules:注意那个+按钮,点击后选择网易云音乐,然后Applications框里就会出现内容。我们的内容或许不同,没问题。其他地方和我这边保持一致即可。Action选择你在上一步添加的那个。

*.music.126.net;*.music.163.com;mam.netease.com;api.iplay.163.com

不见图请翻墙

接着Rules右边的 DNS 部分,选择Resolve hostname through proxy,其余地方默认即可。

最后,在命令行启动作者的项目:node app.js

现在我们打开网易云客户端会发现,已经可以听因为版权而灰掉的音乐了~

不见图请翻墙

3.2、方法2Hosts模式(亲测失效)

因此不做介绍,感兴趣点击这里了解。

4、设置开机自动运行程序

有没有觉得每次开机都要跑到项目目录下,然后命令行运行node app.js,很烦人?

觉得“没有”的同学,可以关掉本页面了~

思路是写一个shell脚本,脚本里是运行项目的命令,然后在系统设置开机时自动运行此shell脚本。下面是过程:

  1. 在作者项目目录下新建launch.sh文件,然后写下此脚本:

  2. 1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh 
    cd /Users/xxxxxx/UnblockNeteaseMusic # 这一行是cd到作者项目的目录,你那边肯定和我的路径不一样,不能照抄。
    nohup node app.js -p 8080:8081 & # 注意有个 -p 8080:8081
    exit # 必须加上此命令,目的是正常退出当前shell。原因请看这篇文章:https://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html

    #你会注意到上面有个nohup命令,它是让命令行程序可以运行在后台的工具(因为一般在终端运行脚本时,得保持终端开启。关掉终端意味着结束脚本运行。但nohup让脚本可以在终端关闭后可以持续运行。)

    #P.S. 貌似OSX系统自带有nohup命令,无需安装。
  3. 赋予此脚本管理员权限:sudo chmod 777 launch.sh

  4. 打开系统设置、用户与群组、登录项:添加上面那个脚本进来。不见图请翻墙

  5. 右键此脚本文件,点击“显示简介”,设置“打开方式”为自己的终端程序(iTerm也行)。

  6. 重启测试。

所有的折腾(一晚上+中午两小时)都是值得的。(比如可以水一篇博客23333)

更新

2020-2-24:此更新仅建议开发者浏览,因为对普通用户来说这其实有点折腾。

对于「4」,现在有了更优雅的解决方法,那就是神奇的命令行工具:pm2

  1. 使用npm(开头安装完Node.js后就已经有了)安装pm2npm install pm2 -g

  2. 命令行cd到插件根目录(比如我的):cd /Users/shuirong/UnblockNeteaseMusic

  3. 创建一个 launch.sh文件,并将下列内容复制进去:

  4. 1
    2
    3
    #!/bin/sh 
    cd /Users/shuirong/More/UnblockNeteaseMusic #这个路径换成你自己的
    node app.js -p 8082:8081
  5. 使用pm2来启动它:pm2 start bash ./launch.sh

  6. 启动pm2的钩子:pm2 startup

  7. 这时很可能pm2会展示给你几行英文,注意这么一句:copy/paste the following command:,那么就需要你粘贴复制它下面的命令,然后在命令行运行即可。这一步的教程也可以看这里

  8. 最后将状态保存起来:pm2 save

  9. ok

现在可以关掉终端,甚至重启电脑测试下了(亲测可行)。(对了,使用此方法时别忘了将步骤「4」在系统设置的东西取消掉哦~)

page PV:  ・  site PV:  ・  site UV: