直播间操作
约 463 字大约 2 分钟
2026-03-19
Bilibili 直播间相关 API — 弹幕发送、用户禁言、全员禁言与房间信息查询。
所有方法通过
self.api.bilibili访问,均为async。
发送弹幕
await self.api.bilibili.send_danmu(room_id=12345, text="Hello!")| 参数 | 类型 | 说明 |
|---|---|---|
room_id | int | 直播间 ID |
text | str | 弹幕内容 |
禁言用户
# 禁言 1 小时(默认)
await self.api.bilibili.ban_user(room_id=12345, user_id=67890)
# 禁言 24 小时
await self.api.bilibili.ban_user(room_id=12345, user_id=67890, hour=24)| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
room_id | int | — | 直播间 ID |
user_id | int | — | 被禁言的用户 ID |
hour | int | 1 | 禁言时长(小时) |
解除禁言
await self.api.bilibili.unban_user(room_id=12345, user_id=67890)| 参数 | 类型 | 说明 |
|---|---|---|
room_id | int | 直播间 ID |
user_id | int | 被解除禁言的用户 ID |
全员禁言
await self.api.bilibili.set_room_silent(room_id=12345, enable=True) # 开启
await self.api.bilibili.set_room_silent(room_id=12345, enable=False) # 关闭| 参数 | 类型 | 说明 |
|---|---|---|
room_id | int | 直播间 ID |
enable | bool | True 开启全员禁言,False 关闭 |
获取直播间信息
from ncatbot.types.bilibili import LiveRoomInfo
info: LiveRoomInfo | None = await self.api.bilibili.get_room_info(room_id=12345)
if info:
# 直播间基础信息
print(info.room_info.title) # 直播标题
print(info.room_info.area_name) # 分区名称
print(info.room_info.live_status) # 1=开播 0=未开播
print(info.room_info.online) # 在线人数
print(info.room_info.live_start_time) # 开播时间(Unix 时间戳)
# 主播信息
print(info.anchor_info.name) # 主播昵称
print(info.anchor_info.face_url) # 头像 URL
print(info.anchor_info.live_level) # 直播等级
# 观看榜
print(info.watched_show.text_large) # 如 "2.3万人看过"| 参数 | 类型 | 说明 |
|---|---|---|
room_id | int | 直播间 ID |
返回值:Optional[LiveRoomInfo] — 直播间完整信息;网络异常时返回 None。
LiveRoomInfo 结构见数据类型参考 → Bilibili 类型。
实战示例
from ncatbot.core import registrar
class LiveManager(NcatBotPlugin):
name = "live_manager"
version = "1.0.0"
async def on_enable(self):
await self.api.bilibili.add_live_room(12345)
@registrar.on_message(platform="bilibili")
async def on_danmu(self, event):
# 自动回复弹幕
if "你好" in event.content:
await self.api.bilibili.send_danmu(event.room_id, "欢迎!")
# 违规弹幕自动禁言
if "广告" in event.content:
await self.api.bilibili.ban_user(event.room_id, event.user_id, hour=1)返回:Bilibili API 指南 · 下一篇:私信操作 · 示例:examples/bilibili/02_live_room/
版权所有
版权归属:MI
