QQMusicAPI
QQ音樂API koa2 版本, 通過Web網頁版請求QQ音樂介面資料, 有問題請提issue, 或者你有其他想法歡迎PR.
環境要求
因為本專案採用的是`koa2`, 所以請確保你的`node`版本是7.6.0+
node -v
複製程式碼
安裝
git@github.com:Rain120/qq-music-api.git
npm install
複製程式碼
專案啟動
// npm i -g nodemon
npm run start
// or don't install nodemon
node app.js
複製程式碼
專案監聽埠是3200
使用文件
使用apis
詳見文件
關於本人
Rain120: 前端菜鳥, 入職前端1年, 公司的技術棧是React, 因為公司官網由我重構過, 我使用的Vue.js重構的。目前正在脫坑, 求大佬內推呀
API結構圖
API介面
koa介面說明(引數, 地址, 效果圖)
獲取QQ音樂產品的下載地址
介面說明: 呼叫此介面, 可獲取QQ音樂標準產品下載連結
介面地址: /downloadQQMusic
呼叫例子: /downloadQQMusic
示例截圖:
獲取歌單分類
介面說明: 呼叫此介面, 可獲取歌單分類, 包含category
資訊
介面地址: /getSongListCategories
呼叫例子: /getSongListCategories
SortID
sortId: 1, sortName: 預設
sortId: 2, sortName: 最新
sortId: 3, sortName: 最熱
sortId: 4, sortName: 評分
sortId: 5, sortName: none
複製程式碼
歌單分類(categoryId & categoryName)
1. 熱門
1.1
"categoryId": 10000000,
"categoryName": 全部,
複製程式碼
2. 語種
2.1
"categoryId": 167,
"categoryName": "英語",
2.2
"categoryId": 168,
"categoryName": "韓語",
2.3
"categoryId": 166,
"categoryName": "粵語",
2.4
"categoryId": 169,
"categoryName": "日語",
2.5
"categoryId": 170,
"categoryName": "小語種",
2.6
"categoryId": 203,
"categoryName": "閩南語",
2.7
"categoryId": 204,
"categoryName": "法語",
2.8
"categoryId": 205,
"categoryName": "拉丁語",
複製程式碼
3. 流派
3.1
"categoryId": 6,
"categoryName": "流行",
3.2
"categoryId": 15,
"categoryName": "輕音樂",
3.3
"categoryId": 11,
"categoryName": "搖滾",
3.4
"categoryId": 28,
"categoryName": "民謠",
3.5
"categoryId": 8,
"categoryName": "R&B",
3.6
"categoryId": 153,
"categoryName": "嘻哈",
3.7
"categoryId": 24,
"categoryName": "電子",
3.8
"categoryId": 27,
"categoryName": "古典",
3.9
"categoryId": 18,
"categoryName": "鄉村",
3.10
"categoryId": 22,
"categoryName": "藍調",
3.11
"categoryId": 21,
"categoryName": "爵士",
3.12
"categoryId": 164,
"categoryName": "新世紀",
3.13
"categoryId": 25,
"categoryName": "拉丁",
3.14
"categoryId": 218,
"categoryName": "後搖",
3.15
"categoryId": 219,
"categoryName": "中國傳統",
3.16
"categoryId": 220,
"categoryName": "世界音樂",
複製程式碼
4. 主題
4.1
"categoryId": 39,
"categoryName": "ACG",
4.2
"categoryId": 136,
"categoryName": "經典",
4.3
"categoryId": 146,
"categoryName": "網路歌曲",
4.4
"categoryId": 133,
"categoryName": "影視",
4.5
"categoryId": 141,
"categoryName": "KTV熱歌",
4.6
"categoryId": 131,
"categoryName": "兒歌",
4.7
"categoryId": 145,
"categoryName": "中國風",
4.8
"categoryId": 194,
"categoryName": "古風",
4.9
"categoryId": 148,
"categoryName": "情歌",
4.10
"categoryId": 196,
"categoryName": "城市",
4.11
"categoryId": 197,
"categoryName": "現場音樂",
4.12
"categoryId": 199,
"categoryName": "背景音樂",
4.13
"categoryId": 200,
"categoryName": "佛教音樂",
4.14
"categoryId": 201,
"categoryName": "UP主",
4.15
"categoryId": 202,
"categoryName": "樂器",
4.16
"categoryId": 14,
"categoryName": "DJ",
複製程式碼
5. 心情
5.1
"categoryId": 52,
"categoryName": "傷感",
5.2
"categoryId": 122,
"categoryName": "安靜",
5.3
"categoryId": 117,
"categoryName": "快樂",
5.4
"categoryId": 116,
"categoryName": "治癒",
5.5
"categoryId": 125,
"categoryName": "勵志",
5.6
"categoryId": 59,
"categoryName": "甜蜜",
5.7
"categoryId": 55,
"categoryName": "寂寞",
5.8
"categoryId": 126,
"categoryName": "宣洩",
5.9
"categoryId": 68,
"categoryName": "思念",
複製程式碼
6. 場景
6.1
"categoryId": 78,
"categoryName": "睡前",
6.2
"categoryId": 102,
"categoryName": "夜店",
6.3
"categoryId": 101,
"categoryName": "學習",
6.4
"categoryId": 99,
"categoryName": "運動",
6.5
"categoryId": 99,
"categoryName": "運動",
6.6
"categoryId": 76,
"categoryName": "約會",
6.7
"categoryId": 94,
"categoryName": "工作",
6.8
"categoryId": 81,
"categoryName": "旅行",
6.9
"categoryId": 103,
"categoryName": "派對",
6.10
"categoryId": 222,
"categoryName": "婚禮",
6.11
"categoryId": 223,
"categoryName": "咖啡館",
6.12
"categoryId": 224,
"categoryName": "跳舞",
6.13
"categoryId": 16,
"categoryName": "校園",
複製程式碼
示例截圖:
獲取歌單列表
介面說明: 呼叫此介面, 可獲取歌單列表
引數列表:
- 必選引數
categoryId
: 類別id
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 20
sortId
: 最新, 最熱,評分, 預設為5
介面地址: /getSongLists
呼叫例子: /getSongLists?categoryId=10000000
示例截圖:
獲取歌單列表
獲取歌單列表-帶引數
獲取歌單詳情
介面說明: 呼叫此介面, 可獲取歌單詳情
引數列表:
- 必選引數
disstid
: 歌單id
介面地址: /getSongListDetail
呼叫例子: /getSongListDetail?disstid=7011264340
示例截圖:
獲取MV標籤
介面說明: 呼叫此介面, 可獲取MV標籤
介面地址: /getMvByTag
呼叫例子: /getMvByTag
示例截圖:
獲取MV播放資訊
介面說明: 呼叫此介面, 可獲取MV播放資訊
引數列表:
- 必選引數
vid
: video id
介面地址: /getMvPlay
呼叫例子: /getMvPlay?vid=u00222le4ox
示例截圖:
獲取歌手MV
介面說明: 呼叫此介面, 可獲取歌手MV
引數列表:
- 必選引數
singermid
: 歌手id
- 可選引數
order
: 當前MV型別, 預設為time
-
listen
: 歌手專輯音樂MV -
time
: 粉絲上傳MV視訊
limit
: 取出歌單數量, 預設為5
介面地址: /getSingerMV
呼叫例子: /getSingerMV?singermid=0025NhlN2yWrP4&order=all&limit=5
示例截圖:
獲取相似歌手
介面說明: 呼叫此介面, 可獲取相似歌手
引數列表:
- 必選引數
singermid
: 歌手id
介面地址: /getSimilarSinger
呼叫例子: /getSimilarSinger?singermid=0025NhlN2yWrP4
示例截圖:
獲取歌手資訊
介面說明: 呼叫此介面, 可獲取歌手資訊
引數列表:
- 必選引數
singermid
: 歌手id
介面地址: /getSingerDesc
呼叫例子: /getSingerDesc?singermid=0025NhlN2yWrP4
示例截圖:
獲取歌手被關注數量資訊
介面說明: 呼叫此介面, 可獲取歌手被關注數量資訊
引數列表:
- 必選引數
singermid
: 歌手id
介面地址: /getSingerStarNum
呼叫例子: /getSingerStarNum?singermid=0025NhlN2yWrP4
示例截圖:
獲取電臺列表
介面說明: 呼叫此介面, 可獲取電臺列表, 分類
介面地址: /getRadioLists
呼叫例子: /getRadioLists
示例截圖:
獲取專輯
介面說明: 呼叫此介面, 可獲取專輯資訊(專輯列表、詳情)
引數列表:
- 必選引數
albummid
: 專輯id
介面地址: /getAlbumInfo
呼叫例子: /getAlbumInfo?albummid=0016l2F430zMux
示例截圖:
獲取數字專輯
介面說明: 呼叫此介面, 可獲取數字專輯, 輪播圖banner
, 專輯列表等資訊, 詳見API結構圖
介面地址: /getDigitalAlbumLists
呼叫例子: /getDigitalAlbumLists
示例截圖:
獲取歌曲歌詞
介面說明: 呼叫此介面, 可獲取歌曲歌詞
引數列表:
- 必選引數
songmid
: 專輯id
- 可選引數
isFormat
: 是否格式化歌詞, 預設值為 false
介面地址: /getLyric
呼叫例子: /getLyric?songmid=003rJSwm3TechU
示例截圖:
獲取MV
介面說明: 呼叫此介面, 可獲取MV以及其Tag資訊
引數列表:
- 必選引數
area_id
: 區域id
, 預設值為全部(15)
Area
"area": [
{
"id": 15,
"name": "全部"
},
{
"id": 16,
"name": "內地"
},
{
"id": 17,
"name": "港臺"
},
{
"id": 18,
"name": "歐美"
},
{
"id": 19,
"name": "韓國"
},
{
"id": 20,
"name": "日本"
}
]
複製程式碼
version_id
: 版本id
, 預設值為全部(7)
Version
"version": [
{
"id": 7,
"name": "全部"
},
{
"id": 8,
"name": "MV"
},
{
"id": 9,
"name": "現場"
},
{
"id": 10,
"name": "翻唱"
},
{
"id": 11,
"name": "舞蹈"
},
{
"id": 12,
"name": "影視"
},
{
"id": 13,
"name": "綜藝"
},
{
"id": 14,
"name": "兒歌"
}
]
複製程式碼
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 20
介面地址: /getMv
呼叫例子: /getMv
示例截圖:
獲取新碟資訊
介面說明: 呼叫此介面, 可獲取新碟資訊
引數列表:
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 20
介面地址: /getNewDisks
呼叫例子: /getNewDisks
示例截圖:
獲取歌手專輯
介面說明: 呼叫此介面, 可獲取歌手專輯
引數列表:
- 必選引數
singermid
: 歌手id
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 20
介面地址: /getSingerAlbum
呼叫例子: /getSingerAlbum?singermid=0025NhlN2yWrP4
示例截圖:
獲取歌曲VKey
介面說明: 呼叫此介面, 可獲取歌曲VKey
引數列表:
- 必選引數
songmid
: 歌曲id
介面地址: /getMusicVKey
呼叫例子: /getMusicVKey?songmid=0025NhlN2yWrP4
示例截圖:
獲取搜尋熱詞
介面說明: 呼叫此介面, 可獲取搜尋熱詞
介面地址: /getHotkey
呼叫例子: /getHotkey
示例截圖:
獲取關鍵字搜尋提示
介面說明: 呼叫此介面, 可獲取獲取關鍵字搜尋提示
引數列表:
- 必選引數
key
: 搜尋關鍵字
介面地址: /getSmartbox
呼叫例子: /getSmartbox?key=周杰倫
示例截圖:
獲取搜尋結果
介面說明: 呼叫此介面, 可獲取獲取搜尋結果
引數列表(部分引數待註釋):
- 必選引數
key
: 搜尋關鍵字
catZhida
: 0表示歌曲, 2表示歌手, 3表示專輯, 預設值為1
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 10
介面地址: /getSearchByKey
呼叫例子: /getSearchByKey?key=周杰倫
示例截圖:
獲取首頁推薦
介面說明: 呼叫此介面, 可獲取首頁推薦
介面地址: /getRecommend
呼叫例子: /getRecommend
示例截圖:
獲取排行榜單列表
介面說明: 呼叫此介面, 可獲取排行榜單列表
- 可選引數
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 10
介面地址: /getTopLists
呼叫例子: /getTopLists
示例截圖:
獲取排行榜單詳情
介面說明: 呼叫此介面, 可獲取排行榜單詳情
- 可選引數
topId
: 榜單id
page
: 當前頁數, 預設為1
limit
: 取出歌單數量, 預設為 10
介面地址: /getRanks
呼叫例子: /getRanks
示例截圖:
獲取評論資訊(cmd代表的意思沒太弄明白)
介面說明: 呼叫此介面, 可獲取評論資訊
-
可選引數
id
: 專輯或者歌單請求結果的id
-
可選引數
rootcommentid
: 榜單id
cid
:
pagenum
: 當前頁數, 預設為0
pagesize
: 取出評論數量, 預設為 25
cmd
:
reqtype
:
biztype
:
介面地址: /getComments
呼叫例子: /getComments?id=8220&rootcommentid=album_8220_1003310416_1558068713
示例截圖:
獲取票務資訊
介面說明: 呼叫此介面, 可獲取票務資訊
介面地址: /getTicketInfo
呼叫例子: /getTicketInfo
示例截圖:
關於專案
靈感來自
Binaryify/NeteaseCloudMusicApi
參考內容
專案不足
-
因為本人沒寫過
unit test
, 所以本專案尚未新增unit test
, 等有時間再新增; -
登入獲取個人資訊等介面都沒做