Coder Social home page Coder Social logo

unblockneteasemusic's Introduction

UnblockNeteaseMusic

一个基于 koa 的网易云音乐的代理,用于海外解锁及替换版权歌曲的播放地址

  1. 替换版权曲目播放地址
  2. 禁止客户端更新

NPM

依赖

  1. Node.js 8.x+
  2. Nginx with subs-filter module configured.

注意

从 2.0 版本开始,本代理仅支持与 nginx 一同部署。standalone 分支已停止更新,无法使用。

Ubuntu/Debian 用户请注意

请使用 npm config get prefix 命令查看 npm 的默认目录,如果为 /usr 将导致无法正常安装。

请按照以下官方教程修复。 Fixing npm permissions

使用方法

  1. 安装 Node.js
  2. 安装本代理 sudo npm install unblock-netease-music -g
  3. 后台运行 nohup unblockneteasemusic &
  4. 完成!

手动匹配歌曲

Get it on App Store

Screen 1 Screen 2 Screen 3

配置参数

unblockneteasemusic -h

  Usage: unblockneteasemusic [options]


  Options:

    -V, --version          output the version number
    -p, --port <port>      Specific server port.
    -f, --force-ip <ip>    Force the netease server ip.
    -r, --rewrite-url      Rewrite music download url, let client download file through proxy.
    --username <username>  The username of Web API.
    --password <password>  The password of Web API.
    --database-path        Specific the path to store database file.
    -v, --verbose          Display errors.
    -h, --help             output usage information

支持客户端

向 hosts 文件中添加一行:<Server IP> music.163.com

OSX 用户

旧版本客户端 1.4.3

直接使用。 下载链接

最新客户端

配合插件使用,详见 NeteaseMusicPlugin

Windows 用户

请务必不要更新客户端到 2.0.2 以上的版本。 下载链接 已无法使用。

Linux 用户

直接使用。

其他用户

新版客户端现在可以使用该代理解决海外限制,但是无法替换版权歌曲的播放地址。

预览

Screenshot

感谢

  1. 这个项目最初的想法及实现来源于 EraserKing 的 CloudMusicGear.
  2. 感谢 yanunon 的 API 文档 API documents.
  3. 感谢 Chion82 的配置文件
  4. 感谢 NeteaseCloudMusicApi

License

GPLv3

unblockneteasemusic's People

Contributors

itjesse avatar legendtang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unblockneteasemusic's Issues

关于安装的问题

您好,打扰了,想咨询您一下,我安装的时候老是显示root用户没有权限,导致无法安装,之后我在网上查找了一下,加了--unsafe-perm这个选项后可以安装了。
但是运行时又有如下提示,我尝试安装了一下sqlite,也不行,不知道该怎么办了,谢谢您了
root@vultr:~# unblockneteasemusic --username mht --password 950226
Web API enabled.
/usr/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31
throw new Error('Please install sqlite3 package manually');
^

Error: Please install sqlite3 package manually
at new ConnectionManager (/usr/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31:15)
at new SqliteDialect (/usr/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/index.js:14:30)
at new Sequelize (/usr/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/sequelize.js:233:20)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/models/index.js:30:19)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/controllers/modify/dead.js:8:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/controllers/modify/player.js:12:13)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/controllers/modify/index.js:7:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/controllers/index.js:8:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/unblock-netease-music/dist/app.js:39:20)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)

OS X 客户端版本

README 中P.S. 请务必不要更新客户端到 1.2.3 以上的版本。应该是1.4.3吧?

network error

我用 Linode 架设的 server,使用 Windows client v1.9.4
是我没有设置好?还是 Linode 不能用?

root@debian:~# unblockneteasemusic -p 8123 -k -q -r
Rewrite music download url.
Finding copyright music on Kugou.
Finding copyright music on QQ Music.
Listening on port 8123
QQ Music module is ready.
  <-- POST http://music.163.com/eapi/subcount
  <-- POST http://music.163.com/eapi/batch
  xxx POST http://music.163.com/eapi/subcount 500 15ms -

  Error: getaddrinfo ENOTFOUND 223.252.199.7http 223.252.199.7http:80
      at errnoException (dns.js:28:10)
      at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

  xxx POST http://music.163.com/eapi/batch 500 10ms -

  Error: getaddrinfo ENOTFOUND 223.252.199.7http 223.252.199.7http:80
      at errnoException (dns.js:28:10)
      at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

TypeError: Cannot read property 'code' of undefined

Got this error message after start NeteaseMusic client

output:

Please set the username and password to enable the Web API.
sequelize deprecated String based operators are now deprecated. Please use Symbol based operators for better security, read more at http://docs.sequelizejs.com/manual/tutorial/querying.html#operators ../../../usr/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/sequelize.js:236:13
Listening on port 8123
<-- POST /api/linux/forward
Parse body failed.
Modify failed.
--> POST /api/linux/forward 200 814ms 1.39kb
<-- POST /api/linux/forward
<-- POST /api/linux/forward
<-- POST /api/linux/forward
xxx POST /api/linux/forward 500 550ms -

TypeError: Cannot read property 'code' of undefined
at Function.fixJsonData (/usr/lib/node_modules/unblock-netease-music/dist/utils/netease/index.js:101:14)
at errorHandler (/usr/lib/node_modules/unblock-netease-music/dist/app.js:58:32)
at dispatch (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:44:32)
at next (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:45:18)
at exports.proxy (/usr/lib/node_modules/unblock-netease-music/dist/middleware/proxy/index.js:59:11)
at

Parse body failed.
Modify failed.
--> POST /api/linux/forward 200 548ms 250b
xxx POST /api/linux/forward 500 551ms -

TypeError: Cannot read property 'code' of undefined
at Function.fixJsonData (/usr/lib/node_modules/unblock-netease-music/dist/utils/netease/index.js:101:14)
at errorHandler (/usr/lib/node_modules/unblock-netease-music/dist/app.js:58:32)
at dispatch (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:44:32)
at next (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:45:18)
at exports.proxy (/usr/lib/node_modules/unblock-netease-music/dist/middleware/proxy/index.js:59:11)
at

<-- POST /api/linux/forward
xxx POST /api/linux/forward 500 721ms -

TypeError: Cannot read property 'code' of undefined
at Function.fixJsonData (/usr/lib/node_modules/unblock-netease-music/dist/utils/netease/index.js:101:14)
at errorHandler (/usr/lib/node_modules/unblock-netease-music/dist/app.js:58:32)
at dispatch (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:44:32)
at next (/usr/lib/node_modules/unblock-netease-music/node_modules/koa-router/node_modules/koa-compose/index.js:45:18)
at exports.proxy (/usr/lib/node_modules/unblock-netease-music/dist/middleware/proxy/index.js:59:11)
at

Ubuntu 17.04

这个东东怎么用?

执行unblockneteasemusic的时候。。。

unblockneteasemusic --username AndyChen2005121 --password ******
Web API enabled.
/usr/local/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31
throw new Error('Please install sqlite3 package manually');
^

Error: Please install sqlite3 package manually
at new ConnectionManager (/usr/local/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31:15)
at new SqliteDialect (/usr/local/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/dialects/sqlite/index.js:14:30)
at new Sequelize (/usr/local/lib/node_modules/unblock-netease-music/node_modules/sequelize/lib/sequelize.js:233:20)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/models/index.js:30:19)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/controllers/modify/dead.js:8:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/controllers/modify/player.js:12:13)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/controllers/modify/index.js:7:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/controllers/index.js:8:15)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/unblock-netease-music/dist/app.js:39:20)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)

这是怎么回事?我按照 #15 中你说明的方法弄了弄,装了sqlite3, 用npm重装了这个项目,还是卡在这个问题。
求教!!!

HTTP 403: dl.stream.qqmusic.qq.com

QQ音乐可以正常解析 URL 可是连接后都返回 403
酷狗 fs.web.kugou.com 已无法使用

  <-- POST /eapi/song/enhance/player/url
Executing (default): SELECT `songId`, `plugin`, `name`, `artist`, `album`, `albumPic`, `hash`, `createdAt`, `updatedAt` FROM `Pairs` AS `Pair` WHERE `Pair`.`songId` = 522352195;
Song name: 连名带姓
Artist: 张惠妹
Album: 偷故事的人 
Search from QQ Music
Search from Kugou
No resource found from Kugou
Player API Injected
New URL is http://dl.stream.qqmusic.qq.com/M800002fJ0dO0rYvMp.mp3?vkey=8146B4375675C6374CD4FF1AE2D227168FC208724DA5F9DC3CC5D623C99B73FA89C81DEBF969C7DAF4527AA37B3EA3FF6A70ABBBD1E6FE56&guid=9375182813&uin=0&fromtag=30
  --> POST /eapi/song/enhance/player/url 200 5,427ms 317b

view-source:http://dl.stream.qqmusic.qq.com/M800002fJ0dO0rYvMp.mp3?vkey=8146B4375675C6374CD4FF1AE2D227168FC208724DA5F9DC3CC5D623C99B73FA89C81DEBF969C7DAF4527AA37B3EA3FF6A70ABBBD1E6FE56&guid=9375182813&uin=0&fromtag=30

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.11.2.2</center>
</body>
</html>

顺带一提,希望能从这里新增其他 plugins
https://github.com/listen1/listen1_chrome_extension/tree/master/js/provider

问题403

请问这是不是因为我在海外的关系?谢谢。
screenshot_2018-04-14_20-19-51

最新版无法安装

Google到解法了,安装时加上 --unsafe-perm 参数就解决了,不好意思还开个 issue 打扰 -_-


安装最新版 3.0.5 时,会进入这个无限 loop
untitled

New URL is null

有些歌曲直接连网易云可以正常播放,但是用代理就不能播
是不是伺服器在海外的关系?可是该代理不是能解决网易云的海外限制么

关于电脑版下载的问题

您好,感谢您的程序,我搭好服务端之后,windows版本2.02的网易云音乐已经可以在线听歌啦,谢谢您了,但是有个问题是,好像不能下载,显示收藏歌曲失败,无法下载,这个怎么处理呢,谢谢您了

#18 Still reproducible with 3.1.3

Hi,

I've upgraded to unblockneteasemusic 3.1.3 but it seems #18 is still reproducible from my side.

$ unblockneteasemusic -p 64310 -v
Please set the username and password to enable the Web API.
sequelize deprecated String based operators are now deprecated. Please use Symbol based operators for better security, read more at http://docs.sequelizejs.com/manual/tutorial/querying.html#operators node_modules/sequelize/lib/sequelize.js:242:13
Listening on port 64310
Executing (default): CREATE TABLE IF NOT EXISTS `Recents` (`songId` INTEGER PRIMARY KEY, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Executing (default): CREATE TABLE IF NOT EXISTS `Pairs` (`songId` INTEGER PRIMARY KEY, `plugin` VARCHAR(255), `name` VARCHAR(255), `artist` VARCHAR(255), `album` VARCHAR(255), `albumPic` VARCHAR(255), `hash` VARCHAR(255), `createdAt` DATETIME, `updatedAt` DATETIME);
Executing (default): CREATE TABLE IF NOT EXISTS `Songs` (`songId` INTEGER PRIMARY KEY, `name` VARCHAR(255), `artist` VARCHAR(255), `album` VARCHAR(255), `albumPic` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Executing (default): PRAGMA INDEX_LIST(`Recents`)
Executing (default): PRAGMA INDEX_LIST(`Pairs`)
Executing (default): PRAGMA INDEX_LIST(`Songs`)
  <-- POST /eapi/song/enhance/player/url
Cannot get orignal response.
  xxx POST /eapi/song/enhance/player/url 500 100ms -

  Error: Error: StatusCodeError: 403 - {"type":"Buffer","data":[60,104,116,109,108,62,13,10,60,104,101,97,100,62,60,116,105,116,108,101,62,52,48,51,32,70,111,114,98,105,100,100,101,110,60,47,116,105,116,108,101,62,60,47,104,101,97,100,62,13,10,60,98,111,100,121,32,98,103,99,111,108,111,114,61,34,119,104,105,116,101,34,62,13,10,60,99,101,110,116,101,114,62,60,104,49,62,52,48,51,32,70,111,114,98,105,100,100,101,110,60,47,104,49,62,60,47,99,101,110,116,101,114,62,13,10,60,104,114,62,60,99,101,110,116,101,114,62,110,103,105,110,120,60,47,99,101,110,116,101,114,62,13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,10]}
      at _callee$ (/usr/lib/node_modules/unblock-netease-music/dist/middleware/proxy/index.js:100:19)
      at tryCatch (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as throw] (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:114:21)
      at step (/usr/lib/node_modules/unblock-netease-music/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at /usr/lib/node_modules/unblock-netease-music/node_modules/babel-runtime/helpers/asyncToGenerator.js:30:13
      at <anonymous>

  <-- POST /eapi/song/enhance/player/url
Cannot get orignal response.
  xxx POST /eapi/song/enhance/player/url 500 71ms -

  Error: Error: StatusCodeError: 403 - {"type":"Buffer","data":[60,104,116,109,108,62,13,10,60,104,101,97,100,62,60,116,105,116,108,101,62,52,48,51,32,70,111,114,98,105,100,100,101,110,60,47,116,105,116,108,101,62,60,47,104,101,97,100,62,13,10,60,98,111,100,121,32,98,103,99,111,108,111,114,61,34,119,104,105,116,101,34,62,13,10,60,99,101,110,116,101,114,62,60,104,49,62,52,48,51,32,70,111,114,98,105,100,100,101,110,60,47,104,49,62,60,47,99,101,110,116,101,114,62,13,10,60,104,114,62,60,99,101,110,116,101,114,62,110,103,105,110,120,60,47,99,101,110,116,101,114,62,13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,10]}
      at _callee$ (/usr/lib/node_modules/unblock-netease-music/dist/middleware/proxy/index.js:100:19)
      at tryCatch (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as throw] (/usr/lib/node_modules/unblock-netease-music/node_modules/regenerator-runtime/runtime.js:114:21)
      at step (/usr/lib/node_modules/unblock-netease-music/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at /usr/lib/node_modules/unblock-netease-music/node_modules/babel-runtime/helpers/asyncToGenerator.js:30:13
      at <anonymous>

[..omitted]
$ unblockneteasemusic --version
3.1.3

I'm using the macOS client, version 1.4.3.

Node and npm versions are as follows:

$ node -v
v8.11.1
$ npm -v
5.6.0

Windows 如何安装?

看起来在linux安装应该没问题 不过Windows那个安装nginx那一部分好像不怎么ok 有详细教程吗?
我使用的nginx是http://nginx-win.ecsds.eu
得到error: [emerg] "proxy_cache" zone "STATIC" is unknown

配置上的一些问题

自己能力不足,配了半天还是没有成功(nginx不熟悉),希望能咨询一下,不胜感激
1.nginx配置位置:一开始提示subs_filter之类参数不认,Google后知道需要添加Substitutions插件手动编译nginx,现在已经解决了。但是不知道放在哪里,直接内容替换/etc/nginx.conf肯定不行,将server部分插入/etc/nginx.conf似乎也不行,内容替换/etc/nginx/site-enabled/default也不对orz
2.本机调试,所以hosts写了127.0.0.1 music.163.com,但也许因为第一条原因没成功,现在访问music.163.com只有nginx欢迎页面。自然nginx并没有调用8123端口和插件一起工作。

题外话:最终是想在路由器上配好,让所有设备解除海外限制即可,请问可行性如何?比如安卓端

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.