Package: nonebot-plugin-bilichat
nonebot-plugin-bilichat✨ 多功能的 B 站视频解析工具 ✨📖 介绍视频链接解析，并根据其内容生成基本信息、词云和内容总结手机端视图基本信息词云视频总结🔌 适配器项目视频解析关注订阅Onebot V11✅✅(SAA)Onebot V12✅✅(SAA)mirai2✅✅(SAA)qq (频道)✅⏳(SAA)qq (群)⏳❌💿 安装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 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pippip install nonebot-plugin-bilichat[all]pdmpdm add nonebot-plugin-bilichat[all]poetrypoetry add nonebot-plugin-bilichat[all]condaconda 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_blockboolFalse是否拦截事件(防止其他插件二次解析)bilichat_enable_selfboolFalse是否允许响应自身的消息bilichat_only_selfboolFalse是否仅响应自身的消息，开启后会覆盖全部其他规则(人机合一特供)bilichat_only_to_meboolFalse非自身消息是否需要@机器人或使用机器人的昵称才响应bilichat_whitelistlist[str][]响应的会话名单, 会覆盖黑名单bilichat_blacklistlist[str][]不响应的会话名单bilichat_dynamic_fontstrNone视频信息及词云图片使用的字体bilichat_cd_timeint120对同一视频的响应冷却时间(防止刷屏)bilichat_neterror_retryint3对部分网络请求错误的尝试次数bilichat_use_bcut_asrboolTrue是否在没有字幕时调用必剪接口生成字幕bilichat_show_error_msgboolTrue是否在解析失败时发送错误信息bilichat_use_browserboolAuto是否使用浏览器，Auto会根据是否含有相应的依赖进行选择bilichat_cache_serivestrAuto使用的缓存类型，可用类型包含json和mongodbbilichat_text_fontsstrdefault可供自定义的字体，仅作用于 dynamicrender 绘图bilichat_emoji_fontsstrdefault可供自定义的字体，仅作用于 dynamicrender 绘图bilichat_webui_pathstrbilichatWebUI 的路径，设置为空则不开启 WebUI注:由于 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_command_to_meboolTrue命令是否需要@机器人bilichat_cmd_startstr"bilichat"命令的起始词，可设置为空bilichat_cmd_add_subList[str]["订阅", "关注"]"sub"命令的别名bilichat_cmd_remove_subList[str]["退订", "取关"]"unsub"命令的别名bilichat_cmd_check_subList[str]["查看", "查看订阅"]"check"命令的别名bilichat_cmd_reset_subList[str]["重置", "重置配置"]"reset"命令的别名bilichat_cmd_at_allList[str]["全体成员", "at 全体"]"atall"命令的别名bilichat_cmd_dynamicList[str]["动态通知", "动态订阅"]"dynamic"命令的别名bilichat_cmd_liveList[str]["直播通知", "直播订阅"]"live"命令的别名bilichat_cmd_checkdynamicList[str]["查看动态"]"checkdynamic" 命令的别名bilichat_cmd_check_loginList[str]["查看登录账号"]"checklogin" 命令的别名bilichat_cmd_login_qrcodeList[str]["扫码登录"]"qrlogin" 命令的别名bilichat_cmd_logoutList[str]["登出账号"]"logout" 命令的别名基础信息配置项配置项类型默认值说明bilichat_basic_infoboolTrue是否开启视频基本信息bilichat_basic_info_stylestrAuto视频详情的图片样式，可用样式见下方备注bilichat_basic_info_urlboolTrue开启视频进本信息的情况下，是否一同回复一个链接bilichat_reply_to_basic_infoboolTrue后续消息是否回复基础信息(关闭则回复发送者的信息)bilichat_dynamicboolTrue是否开启动态解析bilichat_dynamic_stylestrAuto动态详情的图片样式，可用样式见下方备注bilichat_bilibili_cookiestrNonebilibili 的 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_cloudboolFalse是否开启词云功能注：词云功能在 python3.11 中由于wordcloud包安装失败暂时无法启用，请不要在 3.11 中开启此功能AI 视频总结配置项开启此功能需要安装对应的依赖nonebot-plugin-bilichat[summary]配置项类型默认值说明bilichat_summary_ignore_nullboolTrue是否忽略无意义的总结内容bilichat_official_summaryboolFalse是否开启官方总结，此总结独立于下方 AI 总结，可与下方 AI 总结同时生效bilichat_openai_tokenstrNoneopenai 的 apikey, 若留空则禁用 openai 总结bilichat_openai_proxystrNone访问 openai 或 newbing 使用的代理地址bilichat_openai_modelstrgpt-3.5-turbo-0301使用的语言模型名称bilichat_openai_token_limitint3500请求的文本量上限, 计算方式可参考tiktokenbilichat_openai_api_basestrsee description默认为https://api.openai.com，可自行替换注:openai 需求科学上网才能使用，国内服务器请务必填写bilichat_openai_proxy或全局透明代理由于 newbing 接口限制以及能力下降，现已移除支持官方总结目前为内测状态，之后接口随时可能会有变化，请注意及时更新🎉 使用直接发送视频(专栏)链接即可参数表在发送视频时，可以额外添加以下类似 shell 指令的参数，进而对解析流程进行调整。例如BV12v4y1E7NT--refresh
BV12v4y1E7NT-r# 可以使用简写BV12v4y1E7NT-r--no-cache# 可以多个参数混用-rBV12v4y1E7NT-n# 虽然不建议，但确实可以把参数放前面指令简写说明--no-cache-n本次总结禁用缓存(不会影响已存在的缓存文件)--refresh-r刷新此视频的词云和总结缓存(会覆盖已存在的缓存文件)指令表此部分当前仅适配了 OneBot 11 ，如果有其他适配器的需求可以新建 issue 来提出指令部分由指令前缀和指令名组成，其中指令前缀包含COMMAND_STARTbilichat_cmd_startCOMMAND_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 主的最新一条动态checklogin主人无限制无查看当前已登录的全部账号qrlogin主人无限制无使用二维码登录 B 站，防止风控logout主人无限制账号的 UID登出指定的账号🙏 感谢在此感谢以下开发者(项目)对本项目做出的贡献：BibiGPT项目灵感来源bilibili-API-collect易姐收集的各种 BiliBili Api 及其提供的 gRPC Api 调用方案BBot-Graia功能来源(我 牛 我 自 己)ABot-Graia永远怀念最好的 ABot 🙏nonebot-plugin-template: 项目的 README 模板Misaka-Mikoto-Tech为本项目提交了多项 BUG 修复和代码参考hamo-reid为 style_blue 绘制了界面dynamicrender提供 t2i 和动态渲染SAA提供指令及订阅部分的跨平台支持⏳ Star 趋势