1. 程式人生 > >網易雲音樂常用API淺析

網易雲音樂常用API淺析

話不多說

PC客戶端抓包而來

0.說明

關於頭部資訊

Cookie: os=pc; deviceId=B55AC773505E5606F9D355A1A15553CE78B89FC7D8CB8A157B84; osver=Microsoft-Windows-8-Professional-build-9200-64bit; appver=1.5.0.75771; usertrack=ezq0alR0yqJMJC0dr9tEAg==; MUSIC_A=088a57b553bd8cef58487f9d01ae User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36\r\n
        <div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
            <table class="crayon-table">
                <tbody><tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
                <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5aa39c0c2ed27407466969-1" style="height: 43px;">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-5aa39c0c2ed27407466969-2" style="height: 29px;">2</div></div>
            </td>
                    <td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-5aa39c0c2ed27407466969-1">Cookie: os=pc; deviceId=B55AC773505E5606F9D355A1A15553CE78B89FC7D8CB8A157B84; osver=Microsoft-Windows-8-Professional-build-9200-64bit; appver=1.5.0.75771; usertrack=ezq0alR0yqJMJC0dr9tEAg==; MUSIC_A=088a57b553bd8cef58487f9d01ae</div><div class="crayon-line crayon-striped-line" id="crayon-5aa39c0c2ed27407466969-2">User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36\r\n</div></div></td>
                </tr>
            </tbody></table>
        </div>
    </div>

上面是抓到的資訊,其中必要的只有cookie中的appver。而且如果要呼叫api,必須加上Referer,只要是music.163.com的就可以

Cookie: appver=1.5.0.75771; Referer: http://music.163.com/
12 Cookie: appver=1.5.0.75771;Referer: http://music.163.com/

以上兩條即可

返回的格式均為json

1.搜尋

抓取到的資訊如下

Full request URI:http://music.163.com/api/search/pc Key: hlpretag Value: <span class=”s-fc2”> Key: hlposttag Value: </span> Key: s Value: \345\226\234\346\254\242\344\275\240 Key: offset Value: 0 Key: total Value: true Key: limit Value: 100 Key: type Value: 1
123456789101112131415 Full request URI:http://music.163.com/api/search/pcKey: hlpretagValue: <span class=”s-fc2”>Key: hlposttagValue: </span>Key: sValue: \345\226\234\346\254\242\344\275\240Key: offsetValue: 0Key: totalValue: trueKey: limitValue: 100Key: typeValue: 1

URL:

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

必要引數:

s:搜尋的內容

offset:偏移量(分頁用)

limit:獲取的數量

type:搜尋的型別

歌曲 1

專輯 10

歌手 100

歌單 1000

使用者 1002

mv 1004

歌詞 1006

主播電臺 1009

2.歌曲資訊

Full request URI: http://music.163.com/api/song/detail/?id=28377211&ids=%5B28377211%5D
1 Full request URI: http://music.163.com/api/song/detail/?id=28377211&ids=%5B28377211%5D

URL:

GET  http://music.163.com/api/song/detail/

必要引數:

id:歌曲ID

ids:不知道幹什麼用的,用[]括起來的歌曲ID

3.歌手專輯

Full request URI: http://music.163.com/api/artist/albums/166009?id=166009&offset=0&total=true&limit=5
1 Full request URI: http://music.163.com/api/artist/albums/166009?id=166009&offset=0&total=true&limit=5

URL:

GET http://music.163.com/api/artist/albums/歌手ID

必要引數:

limit:獲取的數量(不知道為什麼這個必須加上)

4.專輯資訊

Full request URI: http://music.163.com/api/album/2457012?ext=true&id=2457012&offset=0&total=true&limit=10
1 Full request URI: http://music.163.com/api/album/2457012?ext=true&id=2457012&offset=0&total=true&limit=10

URL:

GET http://music.163.com/api/album/專輯ID

5.歌單

Full request URI: http://music.163.com/api/playlist/detail?id=37880978&updateTime=-1
1 Full request URI: http://music.163.com/api/playlist/detail?id=37880978&updateTime=-1

URL:

GET http://music.163.com/api/playlist/detail

必要引數:

id:歌單ID

6.歌詞

Full request URI: http://music.163.com/api/song/lyric?os=pc&id=93920&lv=-1&kv=-1&tv=-1
1 Full request URI: http://music.163.com/api/song/lyric?os=pc&id=93920&lv=-1&kv=-1&tv=-1

URL:

GET http://music.163.com/api/song/lyric

必要引數:

id:歌曲ID

lv:值為-1,我猜測應該是判斷是否搜尋lyric格式

kv:值為-1,這個值貌似並不影響結果,意義不明

tv:值為-1,是否搜尋tlyric格式

7.MV

Full request URI: http://music.163.com/api/mv/detail?id=319104&type=mp4
1 Full request URI: http://music.163.com/api/mv/detail?id=319104&type=mp4

URL:

GET http://music.163.com/api/mv/detail

必要引數:

id:mvid

type:值為mp4,視訊格式,不清楚還有沒有別的格式

PHP版使用示例

PHP <?php /** * Created by PhpStorm. * User: Moon * Date: 2014/11/26 0026 * Time: 2:06 */ function curl_get(url)$refer=http://music.163.com/;$header[]=Cookie:.appver=1.5.0.75771;;$ch=curlinit();curlsetopt($ch,CURLOPTURL,$url);curlsetopt($ch,CURLOPTH