1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android网易云音乐api调用 网易云音乐常用API浅析 – Moonlib

android网易云音乐api调用 网易云音乐常用API浅析 – Moonlib

时间:2021-12-29 20:22:16

相关推荐

android网易云音乐api调用 网易云音乐常用API浅析 – Moonlib

话不多说

PC客户端抓包而来

0.说明

关于头部信息

1

2

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

上面是抓到的信息,其中必要的只有cookie中的appver。而且如果要调用api,必须加上Referer,只要是的就可以

1

2

Cookie: appver=1.5.0.75771;

Referer: /

以上两条即可

返回的格式均为json

1.搜索

抓取到的信息如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Full request URI:/api/search/pc

Key: hlpretag

Value:

Key: hlposttag

Value:

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

URL:

POST /api/search/pc

必要参数:

s:搜索的内容

offset:偏移量(分页用)

limit:获取的数量

type:搜索的类型

歌曲 1

专辑 10

歌手 100

歌单 1000

用户 1002

mv 1004

歌词 1006

主播电台 1009

2.歌曲信息

1

Full request URI: /api/song/detail/?id=28377211&ids=%5B28377211%5D

URL:

GET /api/song/detail/

必要参数:

id:歌曲ID

ids:不知道干什么用的,用[]括起来的歌曲ID

3.歌手专辑

1

Full request URI: /api/artist/albums/166009?id=166009&offset=0&total=true&limit=5

URL:

GET /api/artist/albums/歌手ID

必要参数:

limit:获取的数量(不知道为什么这个必须加上)

4.专辑信息

1

Full request URI: /api/album/2457012?ext=true&id=2457012&offset=0&total=true&limit=10

URL:

GET /api/album/专辑ID

5.歌单

1

Full request URI: /api/playlist/detail?id=37880978&updateTime=-1

URL:

GET/api/playlist/detail

必要参数:

id:歌单ID

6.歌词

1

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

URL:

GET/api/song/lyric

必要参数:

id:歌曲ID

lv:值为-1,我猜测应该是判断是否搜索lyric格式

kv:值为-1,这个值貌似并不影响结果,意义不明

tv:值为-1,是否搜索tlyric格式

7.MV

1

Full request URI: /api/mv/detail?id=319104&type=mp4

URL:

GET/api/mv/detail

必要参数:

id:mvid

type:值为mp4,视频格式,不清楚还有没有别的格式

PHP版使用示例

PHP

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

/**

* Created by PhpStorm.

* User: Moon

* Date: /11/26 0026

* Time: 2:06

*/

function curl_get($url)

{

$refer = "/";

$header[] = "Cookie: " . "appver=1.5.0.75771;";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

curl_setopt($ch, CURLOPT_REFERER, $refer);

$output = curl_exec($ch);

curl_close($ch);

return $output;

}

function music_search($word, $type)

{

$url = "/api/search/pc";

$post_data = array(

's' => $word,

'offset' => '0',

'limit' => '20',

'type' => $type,

);

$referrer = "/";

$URL_Info = parse_url($url);

$values = [];

$result = '';

$request = '';

foreach ($post_data as $key => $value) {

$values[] = "$key=" . urlencode($value);

}

$data_string = implode("&", $values);

if (!isset($URL_Info["port"])) {

$URL_Info["port"] = 80;

}

$request .= "POST " . $URL_Info["path"] . " HTTP/1.1\n";

$request .= "Host: " . $URL_Info["host"] . "\n";

$request .= "Referer: $referrer\n";

$request .= "Content-type: application/x-www-form-urlencoded\n";

$request .= "Content-length: " . strlen($data_string) . "\n";

$request .= "Connection: close\n";

$request .= "Cookie: " . "appver=1.5.0.75771;\n";

$request .= "\n";

$request .= $data_string . "\n";

$fp = fsockopen($URL_Info["host"], $URL_Info["port"]);

fputs($fp, $request);

$i = 1;

while (!feof($fp)) {

if ($i >= 15) {

$result .= fgets($fp);

} else {

fgets($fp);

$i++;

}

}

fclose($fp);

return $result;

}

function get_music_info($music_id)

{

$url = "/api/song/detail/?id=" . $music_id . "&ids=%5B" . $music_id . "%5D";

return curl_get($url);

}

function get_artist_album($artist_id, $limit)

{

$url = "/api/artist/albums/" . $artist_id . "?limit=" . $limit;

return curl_get($url);

}

function get_album_info($album_id)

{

$url = "/api/album/" . $album_id;

return curl_get($url);

}

function get_playlist_info($playlist_id)

{

$url = "/api/playlist/detail?id=" . $playlist_id;

return curl_get($url);

}

function get_music_lyric($music_id)

{

$url = "/api/song/lyric?os=pc&id=" . $music_id . "&lv=-1&kv=-1&tv=-1";

return curl_get($url);

}

function get_mv_info()

{

$url = "/api/mv/detail?id=319104&type=mp4";

return curl_get($url);

}

#echo music_search("Moon Without The Stars", "1");

#get_music_info("28949444");

#echo get_artist_album("166009", "5");

#echo get_album_info("3021064");

#echo get_playlist_info("22320356");

#echo get_music_lyric("29567020");

#echo get_mv_info();

PS:搜索的接口我用CURL调用失败,原因未知,于是搜索是用文件操作实现的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。