Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
m0_66418769
NeteaseCloudMusicApi
提交
e9fe4351
N
NeteaseCloudMusicApi
项目概览
m0_66418769
/
NeteaseCloudMusicApi
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NeteaseCloudMusicApi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e9fe4351
编写于
5月 17, 2020
作者:
B
binaryify
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
登录接口返回内容增加cookie字段,支持手动传入cookie
上级
96d0898c
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
48 addition
and
18 deletion
+48
-18
CHANGELOG.MD
CHANGELOG.MD
+3
-0
app.js
app.js
+1
-1
docs/README.md
docs/README.md
+16
-11
module/login.js
module/login.js
+10
-1
module/login_cellphone.js
module/login_cellphone.js
+13
-2
package.json
package.json
+1
-1
util/request.js
util/request.js
+4
-2
未找到文件。
CHANGELOG.MD
浏览文件 @
e9fe4351
# 更新日志
### 3.30.0 | 2020.05.17
-
登录接口返回内容增加
`cookie`
字段,支持手动传入cookie
### 3.29.1 | 2020.05.13
-
调整通知接口分页参数
[
#761
](
https://github.com/Binaryify/NeteaseCloudMusicApi/issues/761
)
...
...
app.js
浏览文件 @
e9fe4351
...
...
@@ -66,7 +66,7 @@ fs.readdirSync(path.join(__dirname, 'module')).reverse().forEach(file => {
let
question
=
require
(
path
.
join
(
__dirname
,
'
module
'
,
file
))
app
.
use
(
route
,
(
req
,
res
)
=>
{
let
query
=
Object
.
assign
({},
req
.
query
,
req
.
body
,
{
cookie
:
req
.
cookies
}
)
let
query
=
Object
.
assign
({},
{
cookie
:
req
.
cookies
},
req
.
query
,
req
.
body
)
question
(
query
,
request
)
.
then
(
answer
=>
{
console
.
log
(
'
[OK]
'
,
decodeURIComponent
(
req
.
originalUrl
))
...
...
docs/README.md
浏览文件 @
e9fe4351
...
...
@@ -293,7 +293,10 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
#### 1. 手机登录
**必选参数 :**
`phone`
: 手机号码
`password`
: 密码
**必选参数 :**
`phone`
: 手机号码
`password`
: 密码
**接口地址 :**
`/login/cellphone`
...
...
@@ -303,22 +306,26 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
#### 2. 邮箱登录
~~ 注意 : 此接口被网易和谐了 , 待修复 , 暂时使用手机登录 (2017.05.20)~~
**必选参数 :**
> 更新 : 此接口已经可以正常使用(2018.07.03)
`email`
: 163 网易邮箱
**必选参数 :**
`email`
: 163 网易邮箱
`password`
: 密码
**接口地址 :**
`/login`
**调用例子 :**
`/login?email=xxx@163.com&password=yyy`
返回数据如下图 :
![
登录
](
https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%99%BB%E5%BD%95.png
)
完成登录后 , 会在浏览器保存一个 Cookies 用作登录凭证 , 大部分 API 都需要用到这个
Cookies
Cookies,非跨域情况请求会自动带上 Cookies,跨域情况参考
`调用前须知`
v3.30.0后支持手动传入cookie,登录接口返回内容新增
`cookie`
字段,保存到本地后,get请求带上
`?cookie=xxx`
或者 post请求body带上
`cookie`
即可,如:
`/user/cloud?cookie=xxx`
或者
```
{
...,
cookie:"xxx"
}
```
#### 注意
...
...
@@ -921,9 +928,7 @@ tags: 歌单标签
说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口
, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url( 不需要登录 )
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
> 解决方案是当获取到音乐的 id 后,将
> https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的解决方案是当获取到音乐的 id 后,将 https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
**必选参数 :**
`id`
: 音乐 id
...
...
module/login.js
浏览文件 @
e9fe4351
...
...
@@ -9,7 +9,7 @@ module.exports = async (query, request) => {
password
:
crypto
.
createHash
(
'
md5
'
).
update
(
query
.
password
).
digest
(
'
hex
'
),
rememberLogin
:
'
true
'
}
cons
t
result
=
await
request
(
le
t
result
=
await
request
(
'
POST
'
,
`https://music.163.com/weapi/login`
,
data
,
{
crypto
:
'
weapi
'
,
ua
:
'
pc
'
,
cookie
:
query
.
cookie
,
proxy
:
query
.
proxy
}
)
...
...
@@ -23,5 +23,14 @@ module.exports = async (query, request) => {
}
}
}
if
(
result
.
body
.
code
===
200
)
{
result
=
{
status
:
200
,
body
:
{
...
result
.
body
,
cookie
:
result
.
cookie
.
join
(
'
;
'
)
}
}
}
return
result
}
\ No newline at end of file
module/login_cellphone.js
浏览文件 @
e9fe4351
...
...
@@ -2,7 +2,7 @@
const
crypto
=
require
(
'
crypto
'
)
module
.
exports
=
(
query
,
request
)
=>
{
module
.
exports
=
async
(
query
,
request
)
=>
{
query
.
cookie
.
os
=
'
pc
'
const
data
=
{
phone
:
query
.
phone
,
...
...
@@ -10,8 +10,19 @@ module.exports = (query, request) => {
password
:
crypto
.
createHash
(
'
md5
'
).
update
(
query
.
password
).
digest
(
'
hex
'
),
rememberLogin
:
'
true
'
}
return
request
(
let
result
=
await
request
(
'
POST
'
,
`https://music.163.com/weapi/login/cellphone`
,
data
,
{
crypto
:
'
weapi
'
,
ua
:
'
pc
'
,
cookie
:
query
.
cookie
,
proxy
:
query
.
proxy
}
)
if
(
result
.
body
.
code
===
200
)
{
result
=
{
status
:
200
,
body
:
{
...
result
.
body
,
cookie
:
result
.
cookie
.
join
(
'
;
'
)
}
}
}
return
result
}
package.json
浏览文件 @
e9fe4351
{
"name"
:
"NeteaseCloudMusicApi"
,
"version"
:
"3.
29.1
"
,
"version"
:
"3.
30.0
"
,
"description"
:
"网易云音乐 NodeJS 版 API"
,
"scripts"
:
{
"start"
:
"node app.js"
,
...
...
util/request.js
浏览文件 @
e9fe4351
...
...
@@ -40,7 +40,6 @@ const createRequest = (method, url, data, options) => {
if
(
url
.
includes
(
'
music.163.com
'
))
headers
[
'
Referer
'
]
=
'
https://music.163.com
'
// headers['X-Real-IP'] = '118.88.88.88'
if
(
typeof
options
.
cookie
===
'
object
'
)
headers
[
'
Cookie
'
]
=
Object
.
keys
(
options
.
cookie
)
.
map
(
...
...
@@ -51,7 +50,10 @@ const createRequest = (method, url, data, options) => {
)
.
join
(
'
;
'
)
else
if
(
options
.
cookie
)
headers
[
'
Cookie
'
]
=
options
.
cookie
if
(
!
headers
[
'
Cookie
'
])
{
headers
[
'
Cookie
'
]
=
options
.
token
||
''
}
if
(
options
.
crypto
===
'
weapi
'
)
{
let
csrfToken
=
(
headers
[
'
Cookie
'
]
||
''
).
match
(
/_csrf=
([^
(;|$)
]
+
)
/
)
data
.
csrf_token
=
csrfToken
?
csrfToken
[
1
]
:
''
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录