bilibili-API-collect/docs/audio/musicstream_url.md
Session小胡 1e24c6b188
调整部分接口描述与错误修复 (#1088)
* fix(search/search_request.md): cookie buvid3

* feat(login/login_action/password.md): more sms desc

* fix: typo

* feat(live/info.md): add ps for getRoomBaseInfo

* fix(danmaku/action.md): broken form

* chore: Browserslist: caniuse-lite is outdated

* feat(comment/list.md): reply/wbi/main param next

* feat(misc/buvid3_4.md): get buvid3 only

* fix: broken links & wrong code type

* feat: close all img & br tags

* feat(login/cookie_refresh.md): missing demo links

* feat(dynamic/detail.md): /lottery_svr/v1/lottery_svr/lottery_notice

* fix(video/action.md): share cookie buvid3

* feat: deprecated stat & attribute

* feat(dynamic/detail.md): reaction

* feat(misc/sign/v_voucher.md): header

* feat(dynamic/detail.md): update detail params & example

* feat(APP_widget/ver.md): /x/v2/version

* feat(video/info.md): update view

* feat(docs/user.md): remove channel

* feat(search/search_request.md): search/type -1200

* feat(user/space.md): audio

* feat(video/player.md): /x/player/wbi/v2

* feat(audio/musicstream_url.md): update web/url

* feat(comment/readme.md): state

* fix(user/medal.md): wrong guard_level desc

* feat(live/message_stream.md): DANMU_MSG

* fix(user/medals): wrong guard_level & guard_icon desc

* feat(live/message_stream.md): format & add more 'cmd'

* feat(live/message_stream.md): add more 'cmd'

* feat(live/message_stream.md): add tips for non-login users

* feat(video/player.md): need_login_subtitle

---------

Co-authored-by: 社会易姐QwQ <45892418+SocialSisterYi@users.noreply.github.com>
2024-09-19 23:17:33 +08:00

10 KiB
Raw Blame History

音频流URL

音质qn参数定义

音质qn参数:

代码 含义
0 流畅 128K
1 标准 192K
2 高品质 320K
3 无损 FLAC (大会员)

获取音频流URL(web端)

https://www.bilibili.com/audio/music-service-c/web/url

请求方式GET

web端无法播放完整付费歌曲付费歌曲为30s试听片段

本接口仅能获取192K音质的音频

url参数

参数名 类型 内容 必要性 备注
sid num 音频auid 必要
quality num 2 不必要
privilege num 2 不必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0: 成功
4511006: 已跳过无法播放的歌曲
7201006未找到或已下架
72000000请求错误
message str 返回值 字符串形式的 code
msg str 返回信息 成功为 success
data obj 数据本体

data对象:

字段 类型 内容 备注
sid num 音频auid
type num 音质标识 -1试听片段192K
1192K
info str
timeout num 有效时长 单位为秒
一般为3h
size num 文件大小 单位为字节
type为-1时size为0
cdns array 音频流url
qualities null
title str
cover str

data对象的cdns数组:

类型 内容 备注
0 str 音频流url
1 str 备用音频流url 可能不存在

示例:

curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
--data-urlencode 'sid=777180'
查看响应示例:
{
  "code": 0,
  "data": {
    "sid": 777180,
    "title": "",
    "cover": "",
    "type": 1,
    "info": "",
    "timeout": 10800,
    "size": 5579903,
    "cdns": [
      "https://upos-sz-mirrorcos.bilivideo.com/ugaxcode/m190314ws1dikiap1oivtapctuj1agjc-192k.m4a?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1725013547&gen=playurlv2&os=cosbv&oi=1746706124&trid=493923009cef4225ab8e1b9bda42c635B&mid=0&platform=pc&og=cos&upsig=043779511e2770cf6c3da04ed8a89f25&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&bvc=vod&nettype=0&orderid=0,1&logo=00000000"
    ],
    "qualities": null
  },
  "message": "0",
  "msg": "success"
}

获取音频流URL可获取付费音频

https://api.bilibili.com/audio/music-service-c/url

请求方式GET

认证方式APP或CookieSESSDATA

付费音乐需要有带大会员或音乐包的账号登录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
0128K
1192K
2320K
3FLAC
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[n] 作为 URL 进行 GET 操作

需要验证请求头 User-Agent 不为空且不含敏感字串, 且 Referer 必须在 .bilibili.com

示例:

使用 cURL + FFPlay 直接从音频流播放

curl -G "https://upos-sz-mirrorcos.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1725013121&gen=playurlv2&os=cosbv&oi=1823807031&trid=1a4703f1e7344bb891691c5857e8cfb9B&mid=0&platform=pc&og=cos&upsig=e3a9fba59b46ab2720c8b1807844e9f3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&bvc=vod&nettype=0&orderid=0,1&logo=00000000" \
--referer 'https://www.bilibili.com/' -A 'Mozilla/5.0' \
--output - | ffplay -