你知唔知我系靓仔
Bilibili直播相关API
直播间管理笔记概要
开通直播间
- API:
https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
platform
: 客户端(默认值web)visit_id
: 未知(默认空)csrf
: CSRF Token(位于cookie)csrf_token
: CSRF Token(位于 cookie)
- 返回值:
code
: 返回值(0:成功,1531193016:已经创建直播间,-400:请求错误)data.roomID
: 直播间房间号
更新直播间标题
- API:
https://api.live.bilibili.com/room/v1/Room/update
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
room_id
: 直播间idtitle
: 直播间标题(最大20字符)csrf
: CSRF Token(位于cookie)csrf_token
: CSRF Token(位于 cookie)
- 返回值:
code
: 返回值(0:成功,65530:token错误,1:错误)
开始直播
- API:
https://api.live.bilibili.com/room/v1/Room/startLive
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
room_id
: 直播间idarea_v2
: 直播分区id(子分区id)platform
: 直播平台csrf
: CSRF Token(位于cookie)
- 返回值:
code
: 返回值(0:成功,65530:token错误,1:错误,60009:分区不存在,60024:目标分区需要人脸认证,60013:地区受实名认证限制)data.rtmp.addr
: RTMP推流地址data.rtmp.code
: RTMP推流参数
关闭直播
- API:
https://api.live.bilibili.com/room/v1/Room/stopLive
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
room_id
: 直播间idcsrf
: CSRF Token(位于cookie)
- 返回值:
code
: 返回值(0:成功,65530:token错误,-400:没有权限)data.change
: 是否改变状态data.status
: 状态(PREPARING)
更新直播间公告
- API:
https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
room_id
: 直播间iduid
: 用户idcontent
: 公告内容(最大60个字符,可以为空)csrf
: CSRF Token(位于cookie)csrf_token
: CSRF Token(位于 cookie)
- 返回值:
code
: 返回值(0:成功,65530:token错误,1:错误)
编辑直播间标签
- API:
https://api.live.bilibili.com/room/v1/Room/update
- 请求方式: POST
- 认证方式: Cookie(SESSDATA)
- 鉴权方式: Cookie中
bili_jct
的值正确并与csrf
相同 - 参数:
room_id
: 直播间idadd_tag
: 要添加的标签(最大10个字符)del_tag
: 要删除的标签csrf
: CSRF Token(位于cookie)csrf_token
: CSRF Token(位于 cookie)
- 返回值:
code
: 返回值(0:成功,65530:token错误,1:错误)
B站Cookies值简介
- SESSDATA: 用于获取用户信息,通常在GET操作下提供。
- bili_jct: 用于操作用户数据,通常在POST操作下提供。
- buvid3 / buvid4: 设备验证码,通常不需要提供,但部分接口需要。
- dedeuserid: 用户UID,几乎不需要提供。
- ac_time_value: 用于刷新Cookies,登录状态过期后使用。
Web端Cookie刷新
- 检查是否需要刷新: 通过特定接口检查Cookie是否需要刷新。
- 生成CorrespondPath: 使用RSA-OAEP算法加密特定字符串生成。
- 获取refresh_csrf: 通过特定URL获取实时刷新口令。
- 刷新Cookie: 通过POST请求刷新Cookie。
- 确认更新: 使旧的refresh_token对应的Cookie失效。
具体操作步骤
-
检查是否需要刷新:
- URL:
https://passport.bilibili.com/x/passport-login/web/cookie/info
- 请求方式: GET
- 参数:
csrf
(位于Cookie中的bili_jct
字段)
- URL:
-
生成CorrespondPath:
- 使用RSA-OAEP算法加密字符串
refresh_${timestamp}
。 - 公钥: 提供JWK和PEM格式。
- 使用RSA-OAEP算法加密字符串
-
获取refresh_csrf:
- URL:
https://www.bilibili.com/correspond/1/{correspondPath}
- 请求方式: GET
- 参数:
correspondPath
(由生成CorrespondPath算法加密获得)
- URL:
-
刷新Cookie:
- URL:
https://passport.bilibili.com/x/passport-login/web/cookie/refresh
- 请求方式: POST
- 参数:
csrf
,refresh_csrf
,source
,refresh_token
- URL:
-
确认更新:
- URL:
https://passport.bilibili.com/x/passport-login/web/confirm/refresh
- 请求方式: POST
- 参数:
csrf
,refresh_token
- URL:
{
"name": "Bilibili Live - RTMP | 哔哩哔哩直播 - RTMP",
"more_info_link": "https://link.bilibili.com/p/help/index?id=4#/tools-tutorial",
"stream_key_link": "https://link.bilibili.com/p/center/index#/my-room/start-live",
"alt_names": [
"Bilibili Live"
],
"servers": [
{
"name": "Global - Primary | 全球 - 主要",
"url": "rtmp://live-push.bilivideo.com/live-bvc/"
},
{
"name": "Non Chinese Mainland - Primary | 非中国大陆地区 - 主要",
"url": "rtmp://bdy.live-push.bilivideo.com/live-bvc/"
},
{
"name": "Chinese Mainland - Backup | 中国大陆地区 - 备用",
"url": "rtmp://txy2.live-push.bilivideo.com/live-bvc/"
},
{
"name": "Non Chinese Mainland - Backup | 非中国大陆地区 - 备用",
"url": "rtmp://txy.live-push.bilivideo.com/live-bvc/"
}
],
"supported video codecs": [
"h264"
]
}
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/live/manage.md https://nemo2011.github.io/bilibili-api/#/refresh_cookies https://socialsisteryi.github.io/bilibili-API-collect/docs/login/cookie_refresh.html#%E7%A1%AE%E8%AE%A4%E6%9B%B4%E6%96%B0