多种B站链接解析,视频词云,AI总结,你想要的都在 bilichat
Project description
📖 介绍
视频链接解析,并根据其内容生成基本信息、词云和内容总结
手机端视图
基本信息
词云
视频总结
💿 安装
Linux 用户在安装时如果出现
libGL.so.1: cannot open shared object file: No such file or directory
错误,说明缺少 OpenGL 的运行环境,可以参考 dynamicrender 中的 README 安装对应的依赖后重试
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-bilichat
注: 由于 nb-cli 不支持依赖组,因此需要启用词云和 AI 总结的用户要通过其他的包管理器安装额外的依赖
pip install nonebot-plugin-bilichat[all]
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-bilichat[all]
pdm
pdm add nonebot-plugin-bilichat[all]
poetry
poetry add nonebot-plugin-bilichat[all]
conda
conda install nonebot-plugin-bilichat[all]
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分追加写入
plugins = ["nonebot_plugin_bilichat"]
⚙️ 配置
在 nonebot2 项目的.env
文件中添加下表中的配置, 配置均为非必须项
太长不看版
一般来说,你只需要关注以下几个配置项
# 对同一视频的响应冷却时间(防止刷屏)
bilichat_cd_time = 120
# 网络请求重试次数
bilichat_neterror_retry = 3
# 是否使用浏览器截图(需要额外依赖)
bilichat_use_browser = True
# 是否开启词云(需要额外依赖)
bilichat_word_cloud = True
# === AI 总结相关 ===
# 官方总结接口
bilichat_official_summary = True
# openai 接口(需要额外依赖)
bilichat_openai_token = sk-xxxxxxx
# 网络代理
bilichat_openai_proxy = "http://127.0.0.1:7890/"
通用配置项
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
bilichat_block | bool | False | 是否拦截事件(防止其他插件二次解析) |
bilichat_enable_self | bool | False | 是否允许响应自身的消息 |
bilichat_only_self | bool | False | 是否仅响应自身的消息,开启后会覆盖全部其他规则(人机合一特供) |
bilichat_only_to_me | bool | False | 非自身消息是否需要 @机器人 或使用机器人的昵称才响应 |
bilichat_whitelist | list[str] | [] | 响应的会话名单, 会覆盖黑名单 |
bilichat_blacklist | list[str] | [] | 不响应的会话名单 |
bilichat_dynamic_font | str | None | 视频信息及词云图片使用的字体 |
bilichat_cd_time | int | 120 | 对同一视频的响应冷却时间(防止刷屏) |
bilichat_neterror_retry | int | 3 | 对部分网络请求错误的尝试次数 |
bilichat_use_bcut_asr | bool | True | 是否在没有字幕时调用必剪接口生成字幕 |
bilichat_show_error_msg | bool | True | 是否在解析失败时发送错误信息 |
bilichat_use_browser | bool | Auto | 是否使用浏览器,Auto 会根据是否含有相应的依赖进行选择 |
bilichat_browser_shot_quality | int | 75 | 浏览器截图质量,取值范围 10-100,越高则截图的体积越大 |
bilichat_cache_serive | str | Auto | 使用的缓存类型,可用类型包含 json 和 mongodb |
bilichat_text_fonts | str | default | 可供自定义的字体,仅作用于 dynamicrender 绘图 |
bilichat_emoji_fonts | str | default | 可供自定义的字体,仅作用于 dynamicrender 绘图 |
bilichat_webui_path | str | bilichat | WebUI 的路径,设置为空则不开启 WebUI |
bilichat_subs_limit | int | 5 | 默认全局订阅数量限制 |
bilichat_dynamic_interval | int | 90 | 默认动态轮询间隔,单位为秒 |
bilichat_live_interval | int | 30 | 默认直播轮询间隔,单位为秒 |
bilichat_push_delay | int | 3 | 默认每条推送的延迟,单位为秒 |
bilichat_dynamic_method | str | "rest" | 默认动态推送方式,可选项为"grpc"、"rest" 和 "rss" |
bilichat_rss_base | str | None | 默认兼容 RSSHub 的动态 RSS 订阅地址,例如 https://rsshub.app/ |
bilichat_rss_key | str | None | 默认兼容 RSSHub 的访问控制 key,详情见注释 7 |
注:
- 由于 OneBot 协议未规定是否应上报自身事件,因此在不同的场景下能否获取自身事件并不一定,
bilichat_enable_self
实际能否生效也与之相关 - 当
bilichat_whitelist
存在时,bilichat_blacklist
将会被禁用 bilichat_dynamic_font
可填写自定义的字体 url,但并不推荐修改- 当使用
bcut_asr
接口来生成 AI 字幕时,根据视频时长和网络情况有可能会识别失败,Bot 会提示BCut-ASR conversion failed due to network error
。可以通过调高bilichat_neterror_retry
次数或几分钟后重试来尝试重新生成字幕 - 当
bilichat_cache_serive
为mongodb
时,需要安装并配置 nonebot-plugin-mongodb 才可正常使用 bilichat_rss_base
所需地址需要兼容 RSSHub 中的文件结构及路由即可使用bilichat_rss_key
为可选项,用于 RSSHub 的访问控制,若无需控制则留空,详情可查看 RSSHub 的文档bilichat_subs_limit bilichat_dynamic_interval bilichat_live_interval bilichat_push_delay bilichat_dynamic_method bilichat_rss_base bilichat_rss_key
为全局默认值,如果在配置文件中有所配置,则会覆盖这里的默认值
指令配置项
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
bilichat_command_to_me | bool | True | 命令是否需要@机器人 |
bilichat_cmd_start | str | "bilichat" | 命令的起始词,可设置为空 |
bilichat_cmd_add_sub | list[str] | ["订阅", "关注"] | "sub"命令的别名 |
bilichat_cmd_remove_sub | list[str] | ["退订", "取关"] | "unsub"命令的别名 |
bilichat_cmd_check_sub | list[str] | ["查看", "查看订阅"] | "check"命令的别名 |
bilichat_cmd_reset_sub | list[str] | ["重置", "重置配置"] | "reset"命令的别名 |
bilichat_cmd_at_all | list[str] | ["全体成员", "at 全体"] | "atall"命令的别名 |
bilichat_cmd_dynamic | list[str] | ["动态通知", "动态订阅"] | "dynamic"命令的别名 |
bilichat_cmd_live | list[str] | ["直播通知", "直播订阅"] | "live"命令的别名 |
bilichat_cmd_checkdynamic | list[str] | ["查看动态"] | "checkdynamic" 命令的别名 |
bilichat_cmd_fetch | list[str] | ["获取内容", "解析内容"] | "fetch" 命令的别名 |
bilichat_cmd_check_login | list[str] | ["查看登录账号"] | "checklogin" 命令的别名 |
bilichat_cmd_login_qrcode | list[str] | ["扫码登录"] | "qrlogin" 命令的别名 |
bilichat_cmd_logout | list[str] | ["登出账号"] | "logout" 命令的别名 |
bilichat_cmd_modify_cfg | list[str] | ["修改配置"] | "cfg" 命令的别名 |
基础信息配置项
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
bilichat_basic_info | bool | True | 是否开启视频基本信息 |
bilichat_basic_info_style | str | Auto | 视频详情的图片样式,可用样式见下方备注 |
bilichat_basic_info_url | bool | True | 开启视频进本信息的情况下,是否一同回复一个链接 |
bilichat_reply_to_basic_info | bool | True | 后续消息是否回复基础信息(关闭则回复发送者的信息) |
bilichat_dynamic | bool | True | 是否开启动态解析 |
bilichat_dynamic_style | str | Auto | 动态详情的图片样式,可用样式见下方备注 |
bilichat_bilibili_cookie | str | None | bilibili 的 cookie 文件路径,api 则自动创建空文件 |
bilichat_basic_info_style 除默认的 bbot_default 使用 PIL 绘图(未开启浏览器时默认选择),其他均依赖于浏览器进行渲染(需要设置 bilichat_use_browser 为 True 或 Auto),其可用的样式如下所示
bbot_default (无浏览器时默认)
style_blue (有浏览器时默认)
bilichat_dynamic_style 除默认的 dynamicrender 使用 Skia 绘图(未开启浏览器时默认选择),其他均依赖于浏览器进行渲染(需要设置 bilichat_use_browser 为 True 或 Auto),其可用的样式如下所示
dynamicrender (无浏览器时默认)
browser_mobile (有浏览器时默认)
browser_pc
词云配置项
开启此功能需要安装对应的依赖 nonebot-plugin-bilichat[wordcloud]
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
bilichat_word_cloud | bool | False | 是否开启词云功能 |
bilichat_word_cloud_size | list[int] | [1000, 800] | 词云图片尺寸 |
AI 视频总结配置项
开启此功能需要安装对应的依赖 nonebot-plugin-bilichat[summary]
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
bilichat_summary_ignore_null | bool | True | 是否忽略无意义的总结内容 |
bilichat_official_summary | bool | False | 是否开启官方总结,此总结独立于下方 AI 总结,可与下方 AI 总结同时生效 |
bilichat_openai_token | str | None | openai 的 apikey, 若留空则禁用 openai 总结 |
bilichat_openai_proxy | str | None | 访问 openai 或 newbing 使用的代理地址 |
bilichat_openai_model | str | gpt-3.5-turbo-0301 | 使用的语言模型名称 |
bilichat_openai_token_limit | int | 3500 | 请求的文本量上限, 计算方式可参考tiktoken |
bilichat_openai_api_base | str | see description | 默认为 https://api.openai.com ,可自行替换 |
注:
- openai 需求科学上网才能使用,国内服务器请务必填写
bilichat_openai_proxy
或全局透明代理 - 由于 newbing 接口限制以及能力下降,现已移除支持
- 官方总结目前为内测状态,之后接口随时可能会有变化,请注意及时更新
🎉 使用
直接发送视频(专栏)链接即可
参数表
在发送视频时,可以额外添加以下类似 shell 指令的参数,进而对解析流程进行调整。例如
BV12v4y1E7NT --refresh
BV12v4y1E7NT -r # 可以使用简写
BV12v4y1E7NT -r --no-cache # 可以多个参数混用
BV12v4y1E7NT -rn # 可以将简写合并,效果同上一条
-r BV12v4y1E7NT -n # 虽然不建议,但确实可以把参数放前面
指令 | 简写 | 说明 |
---|---|---|
--no-cache | -n | 本次总结禁用缓存(不会影响已存在的缓存文件) |
--refresh | -r | 刷新此视频的词云和总结缓存(会覆盖已存在的缓存文件) |
--force | -f | 忽略 cd 时间,强制解析视频 |
指令表
指令部分由 指令前缀
和 指令名
组成,其中 指令前缀
包含 COMMAND_START
bilichat_cmd_start
COMMAND_SEP
三部分,默认的 指令前缀
为 /bilichat.
,即完整的指令为 /bilichat.xxx
指令前缀
部分也是可以修改的,例如 .env 中填入如下设置即可实现无 指令前缀
COMMAND_SEP=[""]
COMMAND_START=[""]
bilichat_cmd_start=""
指令名
如下表所示,其中除登录相关的指令均可自定义,可参考上文的 指令及订阅配置项
指令 | 权限 | 范围 | 参数 | 说明 |
---|---|---|---|---|
sub | 主人 | 群聊 | UP 主的昵称或 UID | 添加订阅 |
unsub | 主人 | 群聊 | UP 主的昵称或 UID,或 all |
移除订阅,all 时为全移除 |
check | 无限制 | 群聊 | UP 主的昵称或 UID,或留空 | 查看本群订阅列表或指定 UP 主的配置 |
reset | 主人 | 群聊 | UP 主的昵称或 UID,或 all |
重置指定 UP 主的推送配置,all 时为全重置 |
atall | 主人 | 群聊 | UP 主的昵称或 UID 全局 动态 直播 |
设置是否 at 全体成员 |
dynamic | 主人 | 群聊 | UP 主的昵称或 UID | 是否开启该 UP 的动态通知 |
live | 主人 | 群聊 | UP 主的昵称或 UID | 是否开启该 UP 的直播通知 |
checkdynamic | 无限制 | 无限制 | UP 主的昵称或 UID | 查看指定 UP 主的最新一条动态 |
fetch | 无限制 | 无限制 | 动态 ID,或回复包含此内容的消息 | 解析动态包含的图片 |
checklogin | 主人 | 无限制 | 无 | 查看当前已登录的全部账号 |
qrlogin | 主人 | 无限制 | 无 | 使用二维码登录 B 站,防止风控 |
logout | 主人 | 无限制 | 账号的 UID | 登出指定的账号 |
cfg | 主人 | 无限制 | 无 | 查看或修改配置信息 |
非主人添加/移除订阅
非主人的用户无法直接添加或移除订阅,但可以相同的指令提交操作申请,然后由主人添加,例如
USER: /bilichat.sub 123456
BOT: 已记录此次添加申请,请联系管理员处理
SUPERUSER: /bilichat.handle
BOT: ...
其中 handle
为主人的处理指令,可以在任意可交互的位置触发(包括群聊和私聊),该指令为交互式指令,根据其提示进行操作即可
🙏 感谢
在此感谢以下开发者(项目)对本项目做出的贡献:
- BibiGPT 项目灵感来源
- bilibili-API-collect 易姐收集的各种 BiliBili Api 及其提供的 gRPC Api 调用方案
- HarukaBot 功能来源
- BBot-Graia 功能来源
(我 牛 我 自 己) - ABot-Graia 永远怀念最好的 ABot 🙏
- bilireq 项目使用的 bilibili 请求库
- nonebot-plugin-template: 项目的 README 模板
- Misaka-Mikoto-Tech 为本项目提交了多项 BUG 修复和代码参考
- hamo-reid 为 style_blue 绘制了界面
- dynamicrender 提供 t2i 和动态渲染
- ALC 提供跨平台支持
- 凛雅 提供 QQ 免费 bili 推送姬 成品 BOT 服务
⏳ Star 趋势
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot_plugin_bilichat-5.13.3.tar.gz
.
File metadata
- Download URL: nonebot_plugin_bilichat-5.13.3.tar.gz
- Upload date:
- Size: 564.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a91faba7fb08c380bf2d1d8ab9587f19613eb32f62e4fbbde7a760705b7bb8b |
|
MD5 | 494f3d613364d4571a0787842479e929 |
|
BLAKE2b-256 | 0c1dd7abf310fd8685f51030df707a1f44ff4be775ca6c1a0ea21e27c629c4e2 |
File details
Details for the file nonebot_plugin_bilichat-5.13.3-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_bilichat-5.13.3-py3-none-any.whl
- Upload date:
- Size: 586.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4c7137cab9ccc051c61b413f04fa2cb171205498f90d19569ecbad1d5a686ce |
|
MD5 | 4a468e6532be318c0091bc61c81a4876 |
|
BLAKE2b-256 | 7af9402dfb36177b1e67a5a65bf8f51c20144469927c4616235e6c10c73a06b3 |