17 KiB
直播间管理
开通直播间
https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| platform | str | 客户端? | 必要 | 默认值web |
| visit_id | str | 未知 | 默认空 | |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
| csrf_token | str | CSRF Token(位于 cookie) |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 1531193016:已经创建直播间~ -400:请求错误 |
| ttl | str | 错误信息 | 默认为1 |
| message | str | 错误信息 | 默认为0 |
| data | array | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| roomID | str | 直播间房间号 | 创建成功返回直播间号 |
示例:
开通直播间
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
--data-urlencode 'platform=web' \
--data-urlencode 'visit_id=' \
--data-urlencode 'csrf=xxx' \
--data-urlencode 'csrf_token=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
查看响应示例:
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"roomID": "1234"
}
}
{
"code": 1531193016,
"message": "已经创建直播间~",
"ttl": 1,
"data": {
"roomID": ""
}
}
更新直播间标题
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| title | str | 直播间标题 | 最大20字符 | |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
| csrf_token | str | CSRF Token(位于 cookie) |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 |
| msg | str | 错误信息 | 默认为ok |
| message | str | 错误信息 | 默认为ok |
| data | array | 空 |
示例:
修改直播间10352053标题为测试
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'title=测试' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
查看响应示例:
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": []
}
开始直播
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
开播时必须有分区选择,开播后返回推流地址
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| area_v2 | num | 直播分区id(子分区id) | 必要 | 详见直播分区 |
| platform | str | 直播平台 | 必要 | web端: bililink:android_link |
| csrf | str | CSRF Token(位于cookie) | 必要 |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 60009:分区不存在 60013:非常抱歉,您所在的地区受实名认证限制无法开播 (其他错误码有待补充) |
| msg | str | 错误信息 | 默认为空 |
| message | str | 错误信息 | 默认为空 |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| change | num | 是否改变状态 | 0:未改变 1:改变 |
| status | str | LIVE | |
| room_type | num | 0 | 作用尚不明确 |
| rtmp | obj | RTMP推流地址信息 | |
| protocols | array | ??? | 作用尚不明确 |
| try_time | str | ??? | 作用尚不明确 |
| live_key | str | ??? | 作用尚不明确 |
| notice | obj | ??? | 作用尚不明确 |
data中的rtmp对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| addr | str | RTMP推流(发送)地址 | 重要 |
| code | str | RTMP推流参数(密钥) | 重要 |
| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 |
| provider | str | ??? | 作用尚不明确 |
data中的protocols数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | obj | ??? | 作用尚不明确 |
data中的protocols数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| protocol | str | rtmp | 作用尚不明确 |
| addr | str | RTMP推流(发送)地址 | |
| code | str | RTMP推流参数(密钥) | |
| new_link | str | 获取CDN推流ip地址重定向信息的url | |
| provider | str | txy | 作用尚不明确 |
data中的notice对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| type | num | 1 | 作用尚不明确 |
| status | num | 0 | 作用尚不明确 |
| title | str | 空 | 作用尚不明确 |
| msg | str | 空 | 作用尚不明确 |
| button_text | str | 空 | 作用尚不明确 |
| button_url | str | 空 | 作用尚不明确 |
示例:
以27作为分区id开播直播间10352053
其中"data"."rtmp"."addr"为推流地址
"data"."rtmp"."code"为推流参数
curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'area_v2=27' \
--data-urlencode 'platform=pc' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
查看响应示例:
{
"code": 0,
"msg": "",
"message": "",
"data": {
"change": 1,
"status": "LIVE",
"room_type": 0,
"rtmp": {
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
"code": "?streamname=live_293793435_1567354&key=***",
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
"provider": "txy"
},
"protocols": [
{
"protocol": "rtmp",
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
"code": "?streamname=live_293793435_1567354&key=***",
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
"provider": "txy"
}
],
"try_time": "0000-00-00 00:00:00",
"live_key": "l:one:live:record:10352053:1589344980",
"notice": {
"type": 1,
"status": 0,
"title": "",
"msg": "",
"button_text": "",
"button_url": ""
}
}
}
关闭直播
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| csrf | str | CSRF Token(位于cookie) | 必要 |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 65530:token错误(登录错误) -400:没有权限 (其他错误码有待补充) |
| msg | str | 错误信息 | 默认为空 |
| message | str | 错误信息 | 默认为空 |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| change | num | 是否改变状态 | 0:未改变 1:改变 |
| status | str | PREPARING |
示例:
关闭直播间10352053的直播
curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
"code": 0,
"msg": "",
"message": "",
"data": {
"change": 1,
"status": "PREPARING"
}
}
更新直播间公告
https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| uid | num | 用户id | 必要 | |
| content | str | 公告内容 | 必要 | 最大60个字符,可以为空 |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
| csrf_token | str | CSRF Token(位于 cookie) |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 |
| data | array | 空 | |
| message | str | 错误信息 | 默认为ok |
| ttl | num | 1 | 作用尚不明确 |
示例:
修改直播间11996900公告为测试修改公告
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'uid=306903238' \
--data-urlencode 'content=测试修改公告' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
编辑直播间标签
请求方式:POST
认证方式:Cookie(SESSDATA)
鉴权方式:Cookie中bili_jct的值正确并与csrf相同
正文参数( application/x-www-form-urlencoded ):
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| add_tag | str | 要添加的标签 | 必要 | 最大10个字符 |
| del_tag | str | 要删除的标签 | 必要 | |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
| csrf_token | str | CSRF Token(位于 cookie) |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 |
| data | obj | ||
| message | str | 错误信息 | 默认为ok |
| msg | str | 错误信息 | 默认为ok |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| audit_info | obj | ||
| sub_session_key | str |
data中的audit_info对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| audit_title_reason | str | ||
| audit_title_status | num | 0 | |
| update_title | str |
示例:
给直播间11996900添加一个标签为测试标签
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'add_tag=测试标签' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
给直播间11996900删除内容为测试标签的标签
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'del_tag=测试标签' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}