35

GitHub - luoquanquan/musicInterFace: 某音乐接口 api

 5 years ago
source link: https://github.com/luoquanquan/musicInterFace
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

readMe.md

吃着火锅, 写着代码, 听着歌...一不小心某音乐就上市了. 趁着兴头扒了一套 api (极简, 可用, 从获取排行榜到歌曲播放 url, 歌词, 封面等信息). 现共享一下接口文档. 大家玩儿的开心. ?

2018-12-24-22-58-59

诚邀共同维护者

由于个人的力量毕竟有限, 加之 ? 厂的兄弟们一直致力于升级 api 上. 所以维护过程中出现心有余力不足的情况, 这里盛情邀请有精力且愿意折腾一下的小伙伴们和我一起来维护这个项目, 有兴趣的小伙伴请不吝提出 issue 和 PR.

2019-01-06-16-05-29

本项目地址github

接口域名

music.niubishanshan.top

basePath

/api/v2/music

1. 获取首页推荐信息

1.1 功能描述

获取网站首页的推荐信息, 包含顶部轮播和广播

1.2 请求说明

请求说明:
请求方式 GET
请求URL :/recommend

1.3 请求参数

字段 字段类型 字段说明 无 无 无

1.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": {
        "slider": [
            "http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1121987.jpg",
            "http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1122653.jpg",
            "http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1121479.jpg",
            "http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1120772.jpg",
            "http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1123020.jpg"
        ],
        "radioList": [
            {
                "picUrl": "http://y.gtimg.cn/music/photo/radio/track_radio_199_13_1.jpg",
                "title": "热歌",
                "id": 199
            },
            {
                "picUrl": "http://y.gtimg.cn/music/photo/radio/track_radio_307_13_1.jpg",
                "title": "一人一首招牌歌",
                "id": 307
            }
        ]
    }
}

1.5 返回参数

字段 字段类型 字段说明 announce string 声明文案 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg msg string 接口返回状态描述 data object 接口返回数据主体   slider array 轮播图信息(子条目为 string)   radioList array 电台列表数据(始终返回两条)     picUrl string 电台logo     title string 电台标题     id ing 电台id

1.6 错误状态码

代码健壮的像一头牛, 不会报错~

2. 获取排行榜信息

2.1 功能描述

获取排行榜数据, 获取到的是从各种维度获取的排行版歌单(比如周榜, 月榜...)

2.2 请求说明

请求说明:
请求方式 GET
请求URL :/toplist

2.3 请求参数

字段 字段类型 字段说明 无 无 无

2.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": [
        {
            "id": 4,
            "title": "巅峰榜·流行指数",
            "listenCount": 19800000,
            "picUrl": "http://y.gtimg.cn/music/photo_new/T003R300x300M000004DDmku3TdWR9.jpg",
            "songList": [
                {
                    "singerName": "林俊杰",
                    "songName": "不为谁而作的歌",
                    "number": 1
                },
                {
                    "singerName": "林俊杰",
                    "songName": "圣所",
                    "number": 2
                },
                {
                    "singerName": "GAI",
                    "songName": "永不独行",
                    "number": 3
                }
            ]
        },
        ...各种数据...
    ]
}

2.5 返回参数

字段 字段类型 字段说明 announce string 声明文案 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg msg string 接口返回状态描述 data array 接口返回数据主体   id int 歌单id   title string 歌单标题   listenCount int 歌单播放次数   picUrl string 歌单 logo url   songList array 歌单中排行榜前三的曲目     singername string 歌手名称     songname string 歌曲名称     number int 排行

2.6 错误状态码

代码健壮的像一头牛, 不会报错~

3. 获取歌曲列表

3.1 功能描述

获取指定歌单中的曲目列表

3.2 请求说明

请求说明:
请求方式 GET
请求URL :/songList/{:songListId}

3.3 请求参数

字段 字段类型 字段说明 songListId string 歌单id, 就是排行榜中获取的歌单条目的id字段. 用于指定用户选择的歌单

3.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": {
        "updateTime": "2019-01-10",
        "totalSongNum": 100,
        "topInfo": {
            "picAlbum": "http://imgcache.qq.com/music/photo_new/T002R300x300M000003nbc0602Tgfx.jpg",
            "listName": "巅峰榜·流行指数"
        },
        "songList": [
            {
                "songMid": "002K4xqW4A7m7q",
                "singer": {
                    "singerName": "林俊杰",
                    "singerMid": "001BLpXF2DyJe2"
                },
                "songName": "不为谁而作的歌",
                "songId": 105095766,
                "albumMid": "003nbc0602Tgfx"
            }
            ...各种数据...
        ]
    }
}

3.5 返回参数

字段 字段类型 字段说明 announce string 声明文案 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg msg string 接口返回状态描述 data object 接口返回数据主体   updateTime string 更新时间   totalSongNum int 歌单中歌曲数目   topInfo object 歌单信息     picAlbum string 歌单封面logo     listName string 歌单名称   songList array 歌曲列表     songMid string 歌曲id     singer string 歌手名称       singerName string 歌手名称       singerMid string 歌手媒体 id, 用户获取歌手头像     songName string 歌曲名称     songId string 歌曲 id, 用于获取歌词     albumMid string 专辑媒体 id, 用于获取专辑封面 url

3.6 错误状态码

代码健壮的像一头牛, 不会报错~

4. 获取歌曲播放 url

4.1 功能描述

根据歌曲id, 获取播放 url(目前可用)

4.2 请求说明

请求说明:
请求方式 GET
请求URL :/songUrllist/{:songIdList}

4.3 请求参数

字段 字段类型 字段说明 songIdList stringArray 歌曲 id 列表, 需要拼接成 id1,id2,id3,id4 的形式

4.4 返回结果

{
  "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
  "errno": 0,
  "msg": "success",
  "data": [
      "http://isure.stream.qqmusic.qq.com//C400000Qepff3UyUWO.m4a?guid=5579254314&vkey=70D5522DDF8F35B36B133AA0F85A9C2FA608F2FA85BCBB4EC31CC6A0047CEAB873E9E2B947A6D893C219C65781B9EFE1F00C583518290F4E&uin=0&fromtag=38",
      "http://isure.stream.qqmusic.qq.com//C400001KxFBr3ZrMIk.m4a?guid=5579254314&vkey=7DC202D78758D601A1EF4B15F5597A805C740CFCE9210870073D05247716E83D4146EE3907962645D2F7BE99071BFC0B01E73F09AFA5114D&uin=0&fromtag=38"
  ]
}

4.5 返回参数

字段 字段类型 字段说明 announce string 声明文案 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg msg string 接口返回状态描述 data array item 为对应音乐的播放 url, 直接放到 audio 标签就可以播放

4.6 错误状态码

代码健壮的像一头牛, 不会报错~

5. 搜索

5.1 功能描述

音乐搜索功能, 可以根据音乐信息搜索出匹配的歌曲列表

5.2 请求说明

请求说明:
请求方式 GET
请求URL :/music/search/唐人/1/10

5.3 请求参数

字段 字段类型 字段说明 key string 搜索关键词 page int (非必须, 默认值为 1)当前页码 page int (非必须, 默认值为 20)每页条数

5.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": {
        "page": {
            "currentNumber": 10,
            "currentPage": 1,
            "totalNumber": 397
        },
        "songList": [
            {
                "songMid": "003ALEZa186Qlq",
                "singer": {
                    "singerName": "孙子涵",
                    "singerMid": "001oXbjs29oPul"
                },
                "songName": "唐人",
                "songId": 4823575,
                "albumMid": "002CWEnV2g4m3p"
            }
            ...各种数据...
        ]
    }
}

5.5 返回参数

字段 字段类型 字段说明 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg announce string 声明文案 msg string 接口返回状态描述 data object 返回数据   page object 分页信息     currentNumber int 当前返回的条目数     currentPage int 当前页码     totalNumber int 总条目数   songList array 歌曲列表     songMid string 歌曲id     singer string 歌手名称       singerName string 歌手名称       singerMid string 歌手媒体 id, 用户获取歌手头像     songName string 歌曲名称     songId string 歌曲 id, 用于获取歌词     albumMid string 专辑媒体 id, 用于获取专辑封面 url

5.6 错误状态码

代码健壮的像一头牛, 不会报错~

6. 获取歌词(基于歌曲 songid)

6.1 功能描述

获取歌词, 这个没啥可以描述的啦~

6.2 请求说明

请求说明:
请求方式 GET
请求URL :/music/lrc/:id

6.3 请求参数

字段 字段类型 字段说明 id string 歌曲 id

6.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": {
        "lyric": "[ti:唐人][换行][ar:孙子涵][换行][al:唐朝好男人 电视剧原声带][换行][by:][换行][offset:0][换行][00:00.00]唐人 (《唐朝好男人》电视剧主题曲) - 孙子涵 (Niko Sun)[换行][00:09.66]词:孙子涵[换行][00:19.32]曲:孙子涵[换行][00:28.99]一如昨日烛火 伴扁舟相随[换行][00:32.46][换行][00:33.22]哪有唐人不懂得陶醉[换行][00:36.73]我孤舟 你窈窕 岸上有隐晦[换行][00:40.54][换行][00:41.24]一踏万里与谁相随[换行][00:43.91][换行][00:44.62]你穿错了嫁妆怎能有快乐[换行][00:48.50][换行][00:49.19]再上一层胭脂也不美[换行][00:52.77]一声戛然而止庭前的鞭炮[换行][00:57.10]妄想同你华发的心作废[换行][01:00.27][换行][01:00.84]你说不要自作自受自己创造伤悲[换行][01:04.77]谁都可以彻底忘记谁[换行][01:08.02][换行][01:08.71]你说过往不及回首 别后悔了才会[换行][01:12.90]想方设法的把你追回[换行][01:16.13][换行][01:16.69]你说孤独是诗人应该具有的体会[换行][01:20.81]写歌的人就该有伤悲[换行][01:24.17][换行][01:24.74]我点一丝烛火 一时泛滥了思念[换行][01:28.75]写首小调名字叫后悔[换行][01:32.32][换行][01:33.66]一如昨日烛火 伴着扁舟相随[换行][01:36.91][换行][01:37.53]哪有唐人不懂得陶醉[换行][01:40.67][换行][01:41.48]你穿错了嫁妆怎可能有快乐[换行][01:44.99][换行][01:45.54]再上一层胭脂也不美[换行][01:47.94][换行][01:48.91]你穿错了嫁妆怎能有快乐[换行][01:52.65][换行][01:53.16]再上一层胭脂也不美[换行][01:56.71]一声戛然而止庭前的鞭炮[换行][02:00.45][换行][02:01.03]妄想同你华发的心作废[换行][02:04.27][换行][02:04.88]你说不要自作自受自己创造伤悲[换行][02:08.73]谁都可以彻底忘记谁[换行][02:12.07][换行][02:12.69]你说过往不及回首 别后悔了才会[换行][02:16.90]想方设法的把你追回[换行][02:20.11][换行][02:20.68]你说孤独是诗人应该具有的体会[换行][02:24.90]写歌的人就该有伤悲[换行][02:28.75]我点一丝烛火 一时泛滥了思念[换行][02:32.74]写首小调名字叫后悔[换行][02:36.73][换行][02:40.74]你说不要自作自受自己创造伤悲[换行][02:44.85]谁都可以彻底忘记谁[换行][02:48.62]你说过往不及回首 别后悔了才会[换行][02:52.80]想方设法的把你追回[换行][02:56.10][换行][02:56.63]你说孤独是诗人应该具有的体会[换行][03:00.80]写歌的人就该有伤悲[换行][03:04.64]我点一丝烛火 一时泛滥了思念[换行][03:08.77]写首小调名字叫后悔[换行][03:12.45][换行][03:13.38]一如昨日烛火 伴着扁舟相随[换行][03:17.51]哪有唐人不懂得陶醉[换行][03:20.69][换行][03:21.48]你穿错了嫁妆怎可能有快乐[换行][03:25.56]再上一层胭脂也不美[换行][03:28.19][换行][03:29.39]一如昨日烛火 伴着扁舟相随[换行][03:32.86][换行][03:33.47]哪有唐人不懂得陶醉[换行][03:36.65][换行][03:37.48]你穿错了嫁妆怎可能有快乐[换行][03:41.46]再上一层胭脂也不美"
    }
}

6.5 返回参数

字段 字段类型 字段说明 announce string 声明文案 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg msg string 接口返回状态描述 data object 返回数据   lyric string 歌词信息, 由于 JSON 不能添加换行, 所以直接在 lrc 文件本该换行的位置插入了换行标记[换行] 前端代码中直接 lyric.replace(/\[换行\]/g, '\n') 即可还原 lrc 文件.

6.6 错误状态码

代码健壮的像一头牛, 不会报错~

7. 获取歌曲封面图片和歌手头像图片

7.1 功能描述

获取歌曲封面和歌手的头像图片, 就是播放器用来转圈的那个~

7.2 请求说明

请求说明:
请求方式 GET
请求URL :/music/imgs/{:albummid}/{:singerMid}

7.3 请求参数

字段 字段类型 字段说明 albummid string 歌曲所属的专辑的媒体 id singerMid string 歌手的媒体 id

7.4 返回结果

{
    "announce": "本接口所有数据均来自 QQ 音乐, 仅供学习交流之用,请不要用于商业用途. 如果喜欢请下载 QQ 音乐 APP 畅听.如有侵权请联系微信(QQ): 1363693666, 我会第一时间删除~",
    "errno": 0,
    "msg": "success",
    "data": {
        "albumImgUrl": "https://y.gtimg.cn/music/photo_new/T002R300x300M000002CWEnV2g4m3p.jpg",
        "singerAvatarUrl": "https://y.gtimg.cn/music/photo_new/T001R150x150M000001oXbjs29oPul.jpg"
    }
}

7.5 返回参数

字段 字段类型 字段说明 errno int 0: 表示没有问题, 其他表示有问题. 详情参考 msg announce string 声明文案 msg string 接口返回状态描述 data object 返回数据   albumImgUrl string 歌曲所属的专辑封面 url   singerAvatarUrl string 歌手头像 url

7.6 错误状态码

代码健壮的像一头牛, 不会报错~

最后我也立个 flag: 如果这篇文章点赞超过 666, 我写文章分享爬取数据的过程和实现的方式. 感谢大家的支持...

本接口仅用作学习交流之用, 请不要用在不正当手段. 测试服务没有做任何处理, 扛不住 ddos 等等各种攻击, 希望大佬手下留情


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK