8.8 KiB
直播间管理
本页所有操作均需登录(SESSDATA)
更新直播间标题
方式:POST
还需验证cookie中bili_jct
的值正确并与csrf
相同
正文参数( application/x-www-form-urlencoded ):
参数名 | 类型 | 内容 | 必要性 | 备注 |
---|---|---|---|---|
room_id | num | 直播间ID | 必要 | 必须为自己的直播间ID |
title | str | 直播间标题 | 必要 | 最大20字符 |
csrf | str | CSRF Token(位于cookie) | 必要 |
json回复:
根对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 |
msg | str | 错误信息 | 默认为ok |
message | str | 错误信息 | 默认为ok |
data | array | 空 |
示例:
修改直播间10352053
标题为测试
curl -b "SESSDATA=xxx;bili_jct=xxx" -d "room_id=10352053&title=%E6%B5%8B%E8%AF%95" "http://api.live.bilibili.com/room/v1/Room/update"
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": []
}
开始直播
方式:POST
还需验证cookie中bili_jct
的值正确并与csrf
相同
开播时必须有分区选择,开播后返回推流地址
正文参数( application/x-www-form-urlencoded ):
参数名 | 类型 | 内容 | 必要性 | 备注 |
---|---|---|---|---|
room_id | num | 直播间ID | 必要 | 必须为自己的直播间ID |
area_v2 | num | 直播分区ID(子分区ID) | 必要 | 详见直播分区 |
platform | str | 必须为pc |
必要 | |
csrf | str | CSRF Token(位于cookie) | 必要 |
json回复:
根对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
code | num | 返回值 | 0:成功 65530:token错误(登录错误) 1:错误 60009:分区不存在 (其他错误码有待补充) |
msg | str | 错误信息 | 默认为空 |
message | str | 错误信息 | 默认为空 |
data | obj | 信息本体 |
data
对象:
字段 | 类型 | 内容 | 备注 |
---|---|---|---|
change | num | 是否改变状态 | 0:未改变 1:改变 |
status | str | LIVE | |
room_type | num | 0 | 作用尚不明确 |
rtmp | obj | RTMP推流地址信息 | |
protocols | srrary | ??? | 作用尚不明确 |
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 -b "SESSDATA=xxx;bili_jct=xxx" -d "room_id=10352053&area_v2=27&platform=pc&csrf=xxx" "http://api.live.bilibili.com/room/v1/Room/startLive"
{
"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中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 -b "SESSDATA=xxx;bili_jct=xxx" -d "room_id=10352053&csrf=xxx" "http://api.live.bilibili.com/room/v1/Room/stopLive"
{
"code": 0,
"msg": "",
"message": "",
"data": {
"change": 1,
"status": "PREPARING"
}
}