網(wǎng)易云音樂API分析

網(wǎng)易云音樂API分析

1. 總覽

本文檔是通過對網(wǎng)易云音樂Android客戶端(1.5.2)的部分功能進(jìn)行分析得出的

在所有的交互中,均需要在cookie中添加這對鍵值appver=1.5.2;

(Update 2014-07-13) cookie中添加appver=2.0.2 referer設(shè)置為http://music.163.com

2. 搜索

POST http://music.163.com/api/search/get/

參數(shù)

s: 搜索詞

limit: 返回?cái)?shù)量

sub: 意義不明(非必須參數(shù));取值:false

type: 搜索類型;取值意義

1 單曲

10 專輯

100 歌手

1000 歌單

1002 用戶

offset: 偏移數(shù)量,用于分頁

MUSIC_U: 意義不明(非必須參數(shù))

示例

curl -d "s=玫瑰色的你&limit=20&type=1&offset=0" -b "appver=1.5.2;" http://music.163.com/api/search/get/

結(jié)果:

{

"code": 200,

"result": {

"songCount": 1,

"songs": [

{

"album": {

"status": 1,

"copyrightId": 0,

"name": "\u795e\u7684\u6e38\u620f",

"artist": {

"alias": [],

"picUrl": null,

"id": 0,

"name": ""

},

"publishTime": 1344528000000,

"id": 32311,

"size": 10

},

"status": 1,

"copyrightId": 0,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"mvid": 5102,

"alias": [],

"artists": [

{

"alias": [],

"picUrl": null,

"id": 10557,

"name": "\u5f20\u60ac"

}

],

"duration": 297927,

"id": 326695

}

]

}

}

3. 獲取歌手專輯列表

GET http://music.163.com/api/artist/albums/[artist_id]/

其中artist_id用歌手id替換

參數(shù)

offset: 偏移數(shù)量,用于分頁

limit: 返回?cái)?shù)量

示例

curl -b "appver=1.5.2;" "http://music.163.com/api/artist/albums/10557?offset=0&limit=3"

結(jié)果:

{

"hotAlbums": [

{

"status": 1,

"blurPicUrl": "http://p2.music.126.net/mic-HzsY8tNY6DD1eHzdlg==/612427976714915.jpg",

"commentThreadId": "R_AL_3_2263047",

"description": "",

"tags": "",

"briefDesc": "",

"artist": {

"img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",

"name": "\u5f20\u60ac",

"briefDesc": "",

"albumSize": 8,

"img1v1Id": 0,

"alias": [

"\u7126\u5b89\u6ea5"

],

"picId": 168225279065170,

"picUrl": "http://p1.music.126.net/F7i_-eBbuhpBXodY5U2oTw==/168225279065170.jpg",

"id": 10557

},

"companyId": 0,

"publishTime": 1349366400007,

"name": "\u795e\u7684\u6e38\u620f \u5de1\u6f14\u7cbe\u534e\u5b9e\u5f55",

"alias": [],

"picId": 612427976714915,

"copyrightId": 0,

"picUrl": "http://p1.music.126.net/mic-HzsY8tNY6DD1eHzdlg==/612427976714915.jpg",

"company": "\u7d22\u5c3c\u97f3\u4e50",

"songs": null,

"type": null,

"id": 2263047,

"size": 7

},

...

],

"more": true,

"code": 200,

"artist": {

"img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",

"name": "\u5f20\u60ac",

"briefDesc": "",

"albumSize": 8,

"img1v1Id": 0,

"alias": [

"\u7126\u5b89\u6ea5"

],

"picId": 168225279065170,

"picUrl": "http://p1.music.126.net/F7i_-eBbuhpBXodY5U2oTw==/168225279065170.jpg",

"id": 10557

}

}

4. 獲取專輯音樂列表

GET http://music.163.com/api/album/[album_id]/

其中album_id用專輯id替換

示例

curl -b "appver=1.5.2;" "http://music.163.com/api/album/32311/"

結(jié)果:

{

"album": {

"alias": [

"Games We Play"

],

"artist": {

"albumSize": 8,

"alias": [

"\u7126\u5b89\u6ea5"

],

"briefDesc": "",

"id": 10557,

"img1v1Id": 0,

"img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",

"name": "\u5f20\u60ac",

"picId": 168225279065170,

"picUrl": "http://p1.music.126.net/F7i_-eBbuhpBXodY5U2oTw==/168225279065170.jpg"

},

"blurPicUrl": "http://p1.music.126.net/cdoUJ2yO5LRuJhGeIsRdjQ==/46179488380332.jpg",

"briefDesc": "",

"commentThreadId": "R_AL_3_32311",

"company": "\u7d22\u5c3c\u97f3\u4e50\u5a31\u4e50",

"companyId": 0,

"copyrightId": 0,

"description": "2012...\n\n",

"id": 32311,

"info": {

"commentCount": 1,

"comments": null,

"latestLikedUsers": null,

"liked": false,

"likedCount": 0,

"shareCount": 2,

"threadId": "R_AL_3_32311"

},

"name": "\u795e\u7684\u6e38\u620f",

"picId": 46179488380332,

"picUrl": "http://p1.music.126.net/cdoUJ2yO5LRuJhGeIsRdjQ==/46179488380332.jpg",

"publishTime": 1344528000000,

"size": 10,

"songs": [

{

"album": {

"alias": [

"Games We Play"

],

"artist": {

"albumSize": 0,

"alias": [],

"briefDesc": "",

"id": 0,

"img1v1Id": 0,

"img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",

"name": "",

"picId": 0,

"picUrl": ""

},

"blurPicUrl": "http://p1.music.126.net/cdoUJ2yO5LRuJhGeIsRdjQ==/46179488380332.jpg",

"briefDesc": "",

"commentThreadId": "R_AL_3_32311",

"company": "\u7d22\u5c3c\u97f3\u4e50\u5a31\u4e50",

"companyId": 0,

"copyrightId": 0,

"description": "",

"id": 32311,

"name": "\u795e\u7684\u6e38\u620f",

"picId": 46179488380332,

"picUrl": "http://p1.music.126.net/cdoUJ2yO5LRuJhGeIsRdjQ==/46179488380332.jpg",

"publishTime": 1344528000000,

"size": 10,

"songs": null,

"status": 1,

"tags": "",

"type": ""

},

"alias": [],

"artists": [

{

"albumSize": 0,

"alias": [],

"briefDesc": "",

"id": 10557,

"img1v1Id": 0,

"img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",

"name": "\u5f20\u60ac",

"picId": 0,

"picUrl": ""

}

],

"bMusic": {

"bitrate": 320000,

"dfsId": 1012650209189891,

"id": 10334056,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"playTime": 297927,

"size": 11930240

},

"commentThreadId": "R_SO_4_326695",

"copyrightId": 0,

"dayPlays": 0,

"duration": 297927,

"hMusic": {

"bitrate": 320000,

"dfsId": 1012650209189888,

"id": 10334053,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"playTime": 297927,

"size": 11930240

},

"hearTime": 0,

"id": 326695,

"lMusic": {

"bitrate": 96000,

"dfsId": 1012650209189890,

"id": 10334055,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"playTime": 297927,

"size": 3595194

},

"mMusic": {

"bitrate": 160000,

"dfsId": 1012650209189889,

"id": 10334054,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"playTime": 297927,

"size": 5976935

},

"mp3Url": "http://m1.music.126.net/uCNvR9xHLoQIj1kIRyzadQ==/1012650209189889.mp3",

"mvid": 5102,

"name": "\u73ab\u7470\u8272\u7684\u4f60",

"playedNum": 0,

"popularity": 95.0,

"position": 1,

"score": 95,

"starred": false,

"starredNum": 0,

"status": 1

},

...

],

"status": 1,

"tags": "",

"type": ""

},

"code": 200

}

5. 下載音樂文件

GET http://m1.music.126.net/[encrypted_song_id]/[song_dfsId].mp3

其中song_dfsId為歌曲id,同一歌曲不同比特率有不同的id,見上結(jié)果。encrypted_song_id為song_dfsId加密后的字符串。

歌曲id加密代碼

import md5

def encrypted_id(id):

byte1 = bytearray('3go8&$8*3*3h0k(2)2')

byte2 = bytearray(id)

byte1_len = len(byte1)

for i in xrange(len(byte2)):

byte2[i] = byte2[i]^byte1[i%byte1_len]

m = md5.new()

m.update(byte2)

result = m.digest().encode('base64')[:-1]

result = result.replace('/', '_')

result = result.replace('+', '-')

return result



網(wǎng)易云音樂API地址:https://github.com/maweiyi/MusicServer/blob/master/music/api.py

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GET 請求 String string =”http://music.163.com/api/song/deta...
    尼爾君閱讀 455評論 0 0
  • 音樂分類: 1、新歌榜,2、熱歌榜, 11、搖滾榜,12、爵士,16、流行 21、歐美金曲榜,22、經(jīng)典老歌榜,2...
    白如白牙閱讀 11,364評論 2 8
  • 本人初學(xué)Android,最近做了一個實(shí)現(xiàn)安卓簡單音樂播放功能的播放器,收獲不少,于是便記錄下來自己的思路與知識總結(jié)...
    落日柳風(fēng)閱讀 19,437評論 2 41
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,295評論 0 17
  • 劉裕收復(fù)譙蜀之后,指向了下一個目標(biāo):荊州刺史司馬休之。 司馬休之是皇族,當(dāng)時在江陵任職,工作又兢兢業(yè)業(yè),很得江漢一...
    寒七琪閱讀 490評論 2 1

友情鏈接更多精彩內(nèi)容