音质qn
参数:
代码 | 含义 |
---|---|
0 | 流畅 128K |
1 | 标准 192K |
2 | 高品质 320K |
3 | 无损 FLAC (大会员) |
请求方式:GET
注:web端无法播放完整付费歌曲,付费歌曲为30s试听片段
本接口仅能获取192K音质的音频
url参数:
参数名 | 类型 | 内容 | 必要性 | 备注 |
---|---|---|---|---|
sid | num | 音频auid | 必要 |
json回复:
根对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
code | num | 返回值 | 0:成功 7201006:未找到或已下架 72000000:请求错误 |
msg | str | 错误信息 | 默认为success |
data | obj | 数据本体 |
data
对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
sid | num | 音频auid | |
type | num | 音质标识 | -1:试听片段(192K) 1:192K |
info | str | 空 | 作用尚不明确 |
timeout | num | 有效时长 | 单位为秒 一般为3h |
size | num | 文件大小 | 单位为字节 当 type 为-1时size 为0 |
cdns | array | 音频流url | |
qualities | null | - | |
title | null | - | |
cover | null | - |
data
对象的cdns
数组:
项 | 类型 | 内容 | 备注 |
---|---|---|---|
0 | str | 音频流url | |
1 | str | 备用音频流url |
示例:
curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
--data-urlencode 'sid=sid=15664'
查看响应示例:
{
"code": 0,
"msg": "success",
"data": {
"sid": 15664,
"type": 1,
"info": "",
"timeout": 10800,
"size": 4853263,
"cdns": [
"https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=0ecd3c7a8d9539f260239d8fa4c093db",
"https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=f3fe53aff56655b1b7264ae4ab65872e"
],
"qualities": null,
"title": null,
"cover": null
}
}
请求方式:GET
认证方式:APP或Cookie(SESSDATA)
注:付费音乐需要有带大会员或音乐包的账号登录(Cookie或APP),否则为试听片段
无损音质需要登录的用户为会员
url参数:
参数名 | 类型 | 内容 | 必要性 | 备注 |
---|---|---|---|---|
access_key | str | APP登录Token | APP方式必要 | |
songid | num | 音频auid | 必要 | |
quality | num | 音质代码 | 必要 | 详情见上表 |
privilege | num | 必须为2 |
必要 | |
mid | num | 当前用户mid | 必要 | 可为任意值 |
platform | str | 平台标识 | 必要 | 可为任意值 |
json回复:
根对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
code | num | 返回值 | 0:成功 7201006:未找到或已下架 72000000:请求错误 |
msg | str | 错误信息 | 默认为success |
data | obj | 数据本体 |
data
对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
sid | num | 音频auid | |
type | num | 音质标识 | -1:试听片段(192K) 0:128K 1:192K 2:320K 3:FLAC |
info | str | 空 | 作用尚不明确 |
timeout | num | 有效时长 | 单位为秒 一般为3h |
size | num | 文件大小 | 单位为字节 当 type 为-1时size 为0 |
cdns | array | 音频流url | |
qualities | array | 音质列表 | |
title | str | 音频标题 | |
cover | str | 音频封面url |
data
对象的cdns
数组:
项 | 类型 | 内容 | 备注 |
---|---|---|---|
0 | str | 音频流url | |
1 | str | 备用音频流url |
data
对象的qualities
数组:
项 | 类型 | 内容 | 备注 |
---|---|---|---|
0 | obj | 音质1 | 音质由高向低顺序 |
n | obj | 音质(n+1) |
qualities
数组中的对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
type | num | 音质代码 | 详情见上表 |
desc | str | 音质名称 | |
size | num | 该音质的文件大小 | 单位为字节 |
bps | str | 比特率标签 | |
tag | str | 音质标签 | |
require | num | 是否需要会员权限 | 0:不需要 1:需要 |
requiredesc | str | 会员权限标签 |
示例:
获取音频au682118
的音频流url,音质为3(无损)
Cookie方式:
curl -G 'https://api.bilibili.com/audio/music-service-c/url
--data-urlencode 'songid=682118' \
--data-urlencode 'quality=3' \
--data-urlencode 'privilege=2' \
--data-urlencode 'platform=android' \
--data-urlencode 'mid=293793435' \
-b 'SESSDATA=xxx'
APP方式:
curl -G 'https://api.bilibili.com/audio/music-service-c/url
--data-urlencode 'access_key=xxx' \
--data-urlencode 'songid=682118' \
--data-urlencode 'quality=3' \
--data-urlencode 'privilege=2' \
--data-urlencode 'platform=android' \
--data-urlencode 'mid=293793435'
查看响应示例:
{
"code": 0,
"msg": "success",
"data": {
"sid": 682118,
"type": 3,
"info": "",
"timeout": 10800,
"size": 34456494,
"cdns": [
"https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d",
"https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=3ac7d94dda5664f6f95dbfffeb289744"
],
"qualities": [
{
"type": 3,
"desc": "无损音质",
"size": 34456494,
"bps": "",
"tag": "SQ",
"require": 1,
"requiredesc": "付费享受"
},
{
"type": 2,
"desc": "高品质",
"size": 10788682,
"bps": "320kbit/s",
"tag": "HQ",
"require": 0,
"requiredesc": ""
},
{
"type": 1,
"desc": "标准",
"size": 6491973,
"bps": "192kbit/s",
"tag": "",
"require": 0,
"requiredesc": ""
},
{
"type": 0,
"desc": "流畅",
"size": 4343667,
"bps": "128kbit/s",
"tag": "",
"require": 0,
"requiredesc": ""
}
],
"title": "aLIEz",
"cover": "http://i0.hdslb.com/bfs/music/61d3f8cfdce14d2d1b006af59559c9bd22a2d21b.jpg"
}
}
将data
.cdns
.[0]
或data
.cdns
.[1]
中的内容作为url进行GET操作
需要验证请求user-agent
不为空
user-agent错误并且referer不在*.bilibili.com
域名下的情况下会导致403 Forbidden,故无法获取
以上述音频url为例:
wget 'https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d' \
-O 'Download_music.flac'
响应正文将返回一个flac文件