Bilibili 平台类型
约 1890 字大约 6 分钟
2026-03-19
Bilibili 平台专属的类型定义:发送者、枚举、直播间与动态数据模型。
导入路径: from ncatbot.types.bilibili import BiliSender, BiliPostType, BiliLiveEventType, LiveRoomInfo, ...
源码: ncatbot/types/bilibili/
注意: Bilibili 平台没有专属消息段类型,使用通用的
MessageArray+PlainText/Image等。
LiveRoomInfo
直播间完整信息,由 get_room_info() 返回。
导入: from ncatbot.types.bilibili import LiveRoomInfo
| 字段 | 类型 | 说明 |
|---|---|---|
room_info | RoomInfo | 直播间基础信息 |
anchor_info | AnchorInfo | 主播信息 |
watched_show | WatchedShow | 观看榜信息 |
RoomInfo
| 字段 | 类型 | 说明 |
|---|---|---|
uid | int | 主播 UID |
room_id | int | 直播间 ID |
title | str | 直播标题 |
cover_url | str | 封面图 URL |
background_url | str | 背景图 URL |
description | str | 直播间简介 |
tags | tuple[str, ...] | 标签列表(从逗号分隔字符串解析) |
live_status | int | 直播状态(1=开播,0=未开播) |
live_start_time | int | 开播时间(Unix 时间戳,未开播时为 0) |
parent_area_name | str | 父分区名称 |
parent_area_id | int | 父分区 ID |
area_name | str | 子分区名称 |
area_id | int | 子分区 ID |
keyframe_url | str | 关键帧图 URL |
online | int | 在线人数 |
AnchorInfo
| 字段 | 类型 | 说明 |
|---|---|---|
name | str | 主播昵称 |
face_url | str | 头像 URL |
gender | str | 性别 |
official_info | str | 认证信息 |
fanclub_name | str | 粉丝团名称 |
fanclub_num | int | 粉丝团人数 |
live_level | int | 主播直播等级 |
live_score | int | 当前等级经验 |
live_upgrade_score | int | 升级所需经验 |
WatchedShow
| 字段 | 类型 | 说明 |
|---|---|---|
num | int | 看过的人数 |
text_small | str | 简短描述(如 "2.3万") |
text_large | str | 完整描述(如 "2.3万人看过") |
示例:
info = await self.api.bilibili.get_room_info(12345)
if info:
r = info.room_info
a = info.anchor_info
print(f"{a.name} — {r.title}({r.area_name})在线人数: {r.online}")BiliSender
Bilibili 用户信息,扩展自 BaseSender。
| 字段 | 类型 | 说明 |
|---|---|---|
user_id | str? | 用户 UID (继承) |
nickname | str? | 昵称 (继承) |
face_url | str? | 头像 URL |
medal_name | str? | 粉丝勋章名称 |
medal_level | int | 勋章等级,默认 0 |
guard_level | int | 大航海等级(0=无, 1=总督, 2=提督, 3=舰长) |
admin | bool | 是否为房管 |
枚举类型
BiliPostType
Bilibili 事件的顶层分类。
| 值 | 说明 |
|---|---|
LIVE = "live" | 直播间事件 |
MESSAGE = "message" | 私信消息 |
COMMENT = "comment" | 评论事件 |
DYNAMIC = "dynamic" | 动态事件 |
SYSTEM = "system" | 系统事件 |
BiliLiveEventType
直播间事件的子类型,值与 bilibili-api 的 cmd 一致。
| 值 | 说明 |
|---|---|
DANMU_MSG | 弹幕消息 |
SEND_GIFT | 礼物 |
COMBO_SEND | 连击礼物 |
GUARD_BUY | 大航海 |
SUPER_CHAT_MESSAGE | 醒目留言 (SC) |
SUPER_CHAT_MESSAGE_JPN | SC 日文翻译 |
SUPER_CHAT_MESSAGE_DELETE | SC 删除 |
INTERACT_WORD_V2 | 互动(进入/关注/分享) |
ENTRY_EFFECT | 入场效果 |
LIKE_INFO_V3_CLICK | 点赞 |
LIKE_INFO_V3_UPDATE | 点赞数据更新 |
VIEW | 人气值 |
WATCHED_CHANGE | 看过人数变化 |
ROOM_CHANGE | 房间信息变更 |
LIVE | 开播 |
PREPARING | 下播 |
ROOM_BLOCK_MSG | 用户被封禁 |
ROOM_SILENT_ON | 开启全员禁言 |
ROOM_SILENT_OFF | 关闭全员禁言 |
WARNING | 超管警告 |
CUT_OFF / CUT_OFF_V2 | 直播被切断 |
ANCHOR_LOT_START / END / AWARD | 天选之人 |
DANMU_AGGREGATION | 弹幕聚合(节日/活动弹幕) |
DM_INTERACTION | 互动消息(分享直播间等) |
ONLINE_RANK_COUNT | 在线排名人数 |
ONLINE_RANK_V3 | 在线排名列表 |
STOP_LIVE_ROOM_LIST | 停播房间列表(静默忽略) |
BiliSessionEventType
私信消息类型,值与 bilibili-api 的 EventType.value 一致。
| 值 | 说明 |
|---|---|
TEXT = "1" | 文本消息 |
PICTURE = "2" | 图片消息 |
WITHDRAW = "5" | 撤回 |
GROUPS_PICTURE = "6" | 群发图片 |
SHARE_VIDEO = "7" | 分享视频 |
NOTICE = "10" | 通知 |
PUSHED_VIDEO = "11" | 推送视频 |
BiliCommentEventType
评论事件类型。
| 值 | 说明 |
|---|---|
NEW_REPLY = "new_reply" | 新评论 |
NEW_SUB_REPLY = "new_sub_reply" | 新子评论 |
BiliDynamicEventType
动态事件类型。
| 值 | 说明 |
|---|---|
NEW_DYNAMIC = "new_dynamic" | 新动态发布 |
DELETED_DYNAMIC = "deleted_dynamic" | 动态被删除 |
动态相关模型
DynamicStatInfo
动态统计信息。
导入: from ncatbot.types.bilibili import DynamicStatInfo
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
comment_count | int | 0 | 评论数 |
like_count | int | 0 | 点赞数 |
forward_count | int | 0 | 转发数 |
DynamicVideoInfo
动态中的视频信息(DYNAMIC_TYPE_AV)。
导入: from ncatbot.types.bilibili import DynamicVideoInfo
| 字段 | 类型 | 说明 |
|---|---|---|
av_id | str | AV 号 |
bv_id | str | BV 号 |
title | str | 视频标题 |
cover | str | 封面 URL |
desc | str | 视频描述 |
duration_text | str | 时长文本 |
play_count | str | 播放量 |
danmaku_count | str | 弹幕数 |
dynamic_text | str | 动态文字 |
DynamicMusicInfo
动态中的音乐信息。
导入: from ncatbot.types.bilibili import DynamicMusicInfo
| 字段 | 类型 | 说明 |
|---|---|---|
music_id | str | 音乐 ID |
title | str | 标题 |
cover | str | 封面 URL |
label | str | 标签 |
dynamic_text | str | 动态文字 |
DynamicArticleInfo
动态中的专栏信息。
导入: from ncatbot.types.bilibili import DynamicArticleInfo
| 字段 | 类型 | 说明 |
|---|---|---|
title | str | 标题 |
summary | str | 摘要 |
has_more | bool | 是否有更多内容 |
article_id | int | 专栏 ID |
DynamicLiveRcmdInfo
动态中的直播推荐信息。
导入: from ncatbot.types.bilibili import DynamicLiveRcmdInfo
| 字段 | 类型 | 说明 |
|---|---|---|
room_id | int | 直播间 ID |
live_status | int | 直播状态 |
title | str | 直播标题 |
cover | str | 封面 URL |
online | int | 在线人数 |
area_id | int | 分区 ID |
area_name | str | 分区名称 |
parent_area_id | int | 父分区 ID |
parent_area_name | str | 父分区名称 |
live_start_time | int | 开播时间戳 |
数据模型
VideoInfo
视频完整信息,通过 get_video_info() 返回。
导入:from ncatbot.types.bilibili import VideoInfo
| 字段 | 类型 | 说明 |
|---|---|---|
bvid | str | BV 号 |
aid | int | av 号 |
title | str | 视频标题 |
pic | str | 封面 URL |
desc | str | 视频简介 |
pubdate | int | 发布时间戳 |
ctime | int | 创建时间戳 |
duration | int | 时长(秒) |
videos | int | 分 P 数(默认 1) |
tid | int | 分区 ID |
tname | str | 分区名称 |
copyright | int | 版权标识 |
state | int | 视频状态 |
owner | VideoOwner | UP 主信息 |
stat | VideoStat | 播放/弹幕/点赞等统计 |
pages | Tuple[VideoPage, ...] | 分 P 列表 |
staff | Tuple[VideoStaffMember, ...] | 联合投稿成员(空元组表示非联合投稿) |
dynamic | str | 发布动态文本 |
cid | int | 默认分 P 的 cid |
season_id | int? | 合集 ID(无合集则 None) |
计算属性:
| 属性 | 类型 | 说明 |
|---|---|---|
duration_text | str | 格式化时长 MM:SS 或 HH:MM:SS |
url | str | 视频链接 https://www.bilibili.com/video/{bvid} |
工厂方法:VideoInfo.from_raw(data: dict) — 从 bilibili-api 原始响应构造。
VideoOwner
| 字段 | 类型 | 说明 |
|---|---|---|
mid | int | UP 主 UID |
name | str | UP 主昵称 |
face | str | UP 主头像 URL |
VideoStat
| 字段 | 类型 | 说明 |
|---|---|---|
view | int | 播放量 |
danmaku | int | 弹幕数 |
reply | int | 评论数 |
favorite | int | 收藏数 |
coin | int | 投币数 |
share | int | 分享数 |
like | int | 点赞数 |
dislike | int | 踩数 |
his_rank | int | 历史最高排名 |
now_rank | int | 当前排名 |
VideoPage
| 字段 | 类型 | 说明 |
|---|---|---|
cid | int | 分 P 的 cid |
page | int | 分 P 序号 |
part | str | 分 P 标题 |
duration | int | 分 P 时长(秒) |
VideoStaffMember
| 字段 | 类型 | 说明 |
|---|---|---|
mid | int | 用户 UID |
name | str | 昵称 |
title | str | 角色(如 UP主、剪辑) |
face | str | 头像 URL |
follower | int | 粉丝数 |
ParsedBiliId
B 站视频 ID 解析结果,通过 parse_bili_id() 返回。
导入:from ncatbot.types.bilibili import ParsedBiliId
| 字段 | 类型 | 说明 |
|---|---|---|
id_type | str | ID 类型:"bv" 或 "av" |
bvid | str | BV 号(仅当 id_type="bv" 时有效) |
aid | int | av 号(仅当 id_type="av" 时有效) |
raw_url | str | 原始输入文本 |
redirected_url | str | b23 重定向后的 URL(非 b23 链接为空) |
计算属性:
| 属性 | 类型 | 说明 |
|---|---|---|
video_id | str | 可直接传入 get_video_info() 的视频 ID 字符串 |
事件数据模型一览
以下是
ncatbot.types.bilibili导出的数据模型类,用于框架内部 Parser → Factory 流程。 插件开发者通常通过事件实体交互,无需直接使用数据模型。
直播间事件
| 数据模型 | 说明 | 关键字段 |
|---|---|---|
BiliLiveEventData | 直播间事件基类 | room_id, live_event_type |
DanmuMsgEventData | 弹幕消息 | user_id, message, sender |
SuperChatEventData | 醒目留言 | user_id, content, price, duration |
GiftEventData | 礼物 | user_id, gift_name, gift_id, num, price, coin_type |
GuardBuyEventData | 大航海 | user_id, guard_level, price |
InteractEventData | 互动 | user_id, interact_type |
LikeEventData | 点赞 | user_id, like_count |
ViewEventData | 人气值 | view |
LiveStatusEventData | 开播/下播 | status |
RoomChangeEventData | 房间变更 | title, area_name |
RoomBlockEventData | 用户封禁 | user_id, user_name |
RoomSilentEventData | 全员禁言 | silent_type, level, second |
WatchedChangeEventData | 观看人数变化 | num, text_small, text_large |
LikeUpdateEventData | 点赞数更新 | click_count |
OnlineRankCountEventData | 在线排名人数 | count |
OnlineRankV3EventData | 在线排名列表 | online_list |
DanmuAggregationEventData | 弹幕聚合 | activity_identity, msg, aggregation_num |
DmInteractionEventData | 互动消息 | interaction_type, suffix_text |
EntryEffectEventData | 进场特效 | user_id, user_name, sender |
私信 / 评论 / 系统
| 数据模型 | 说明 | 关键字段 |
|---|---|---|
BiliPrivateMessageEventData | 私信 | user_id, message, msg_type, receiver_id |
BiliPrivateMessageWithdrawEventData | 私信撤回 | user_id, msg_key |
BiliCommentEventData | 评论 | resource_id, comment_id, content, root_id, parent_id |
BiliDynamicEventData | 动态 | dynamic_id, dynamic_type, dynamic_status, uid, pub_ts, text, stat, video |
BiliConnectionEventData | 连接事件 | event_type, room_id |
交叉引用
- 通用消息段 — Bilibili 使用的基础消息段
- Bilibili 事件实体 — 事件实体层级参考
版权所有
版权归属:MI
