Skip to main content

Push bilibili dynamics and live notifications to QQ with NoneBot2.

Project description

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-bililive

✨ 将 B 站 UP 主动态与直播推送到 QQ 的 NoneBot2 插件 ✨

license pypi python

📖 介绍

BiliLive 是一个基于 NoneBot2 的 B 站推送插件,支持将 UP 主的直播与动态消息推送到 QQ 群或私聊场景。

目前支持的适配器:OneBot V11。

特性

  • 支持按 UP 主维度分别开启或关闭动态、直播推送。
  • 支持群内管理员权限控制,限制机器人使用范围。
  • 支持直播或动态推送时尝试 @全体成员。
  • 支持多 Bot 推送失败回退与基础异常清理。
  • 支持 Playwright 截图与验证码服务接入。

💿 安装

使用 nb-cli 安装

在 NoneBot2 项目根目录执行:

nb plugin install nonebot-plugin-bililive
使用包管理器安装

在 NoneBot2 项目虚拟环境中安装:

pip install nonebot-plugin-bililive

然后在 NoneBot2 项目根目录的 pyproject.toml 中加载插件:

[tool.nonebot]
plugins = ["nonebot_plugin_bililive"]

首次使用动态截图功能时,插件会自动检查并安装 Chromium;如果需要自定义数据目录,可通过 BILILIVE_DIR 覆盖默认存储位置。未配置时,插件会使用 nonebot-plugin-localstore 提供的插件数据目录。

⚙️ 配置

在 NoneBot2 项目的 .env 文件中按需添加配置项:

配置项 必填 默认值 说明
BILILIVE_DIR 由 nonebot-plugin-localstore 自动分配 插件数据目录,包含数据库、浏览器数据与动态偏移缓存
BILILIVE_TO_ME true 是否需要 @机器人 或命令前缀触发
BILILIVE_PROXY HTTP 代理地址,用于 B 站请求和 Playwright 下载
BILILIVE_INTERVAL 10 默认轮询间隔,单位秒
BILILIVE_LIVE_INTERVAL 10 直播轮询间隔,单位秒
BILILIVE_DYNAMIC_INTERVAL 0 动态轮询间隔,单位秒,0 表示使用默认逻辑
BILILIVE_DYNAMIC_AT false 动态推送时是否尝试 @全体
BILILIVE_LIVE_OFF_NOTIFY false 是否推送下播通知
BILILIVE_CAPTCHA_ADDRESS https://captcha-cd.ngworks.cn 验证码识别服务地址
BILILIVE_CAPTCHA_TOKEN bililive 验证码服务 token
BILILIVE_DYNAMIC_TIMEOUT 30 动态截图超时时间,单位秒
BILILIVE_DYNAMIC_FONT_SOURCE system 截图字体来源
BILILIVE_DYNAMIC_FONT Noto Sans CJK SC 截图字体
BILILIVE_DYNAMIC_BIG_IMAGE false 是否优先展示大图
BILILIVE_COMMAND_PREFIX 空字符串 命令额外前缀

动态抓取默认优先使用 gRPC 接口;当部分 UID 命中 B 站风控时,插件会自动回退到 Playwright 持久化浏览器中的 cookies 请求网页动态接口。通常不需要额外配置 Cookie 登录;如果某些 UID 仍持续抓取失败,建议在插件使用的浏览器数据目录中登录一个常用的 B 站账号,以提高动态抓取成功率。

🎉 使用

指令表

指令 权限 需要@ 范围 说明
帮助 群员 视 BILILIVE_TO_ME 而定 群聊/私聊 查看帮助信息
关注 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 订阅指定 UP
取关 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 取消订阅
关注列表 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 查看当前订阅
开启直播 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 开启某 UP 的直播推送
关闭直播 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 关闭某 UP 的直播推送
开启动态 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 开启某 UP 的动态推送
关闭动态 UID 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 关闭某 UP 的动态推送
开启全体 UID 管理员 视 BILILIVE_TO_ME 而定 群聊 开启直播推送 @全体
关闭全体 UID 管理员 视 BILILIVE_TO_ME 而定 群聊 关闭直播推送 @全体
开启权限 管理员 视 BILILIVE_TO_ME 而定 群聊 限制仅管理员可使用
关闭权限 管理员 视 BILILIVE_TO_ME 而定 群聊 关闭管理员权限限制
已开播 群员/管理员 视 BILILIVE_TO_ME 而定 群聊/私聊 查看已开播关注列表

效果图

demo

开发

本仓库保留了本地开发启动方式:

python bot.py

用于发布的插件入口模块为:

nonebot_plugin_bililive

致谢

许可证

本项目使用 GNU AGPLv3 作为开源许可证。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_bililive-2.0.8.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_bililive-2.0.8-py3-none-any.whl (60.2 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_bililive-2.0.8.tar.gz.

File metadata

  • Download URL: nonebot_plugin_bililive-2.0.8.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.26.7 CPython/3.11.15 Linux/6.17.0-1010-azure

File hashes

Hashes for nonebot_plugin_bililive-2.0.8.tar.gz
Algorithm Hash digest
SHA256 1092bca61e98d51d36bf914925dde99ca87c5f37cecc0a55c7c7839a2363515e
MD5 b18b4b6f802039e5eec16ab6f5c957ca
BLAKE2b-256 d29eb08281cf1772aa0bf2046f579646bb736552dd525a011b91810ee1946133

See more details on using hashes here.

File details

Details for the file nonebot_plugin_bililive-2.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_bililive-2.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 584f73ca4254b064f4451d2d84f91694dd3ce43861e88874852106277f8789e6
MD5 7797a4cf1ae351ecad99fb7babb8ad67
BLAKE2b-256 e50414435a3b2b9a12d077fdd029b480d1063ad2ad80102f67db5a908094dc5b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page