安全扫描
OpenClaw
可疑
medium confidence技能基本符合 Bilibili CLI 用途,但包声明中未列出所需的敏感凭证(SESSDATA、bili_jct、buvid3),且指令和包装脚本明确要求这些凭证,存在不一致和风险,需谨慎使用。
评估建议
该技能看似合法的 Bilibili CLI 包装,但存在重要不一致和风险建议,安装前应审查:(1) 需要敏感 Bilibili 骑手(未在注册元数据中声明),避免在共享工作空间中以明文存储;(2) README 指令修改代理配置,增加风险;(3) 避免模糊的安装命令;(4) 审查 bilibili-cli 实现;(5) 如果继续,应将凭证存储在安全的秘密存储或环境中。...详细分析 ▾
⚠ 用途与能力
技能功能(发布、删除、搜索 Bilibili)一致需要 Bilibili 认证和 CLI 客户端,但注册元数据未列出所需环境变量或凭证,而 SKILL.md 和包装脚本明确依赖 SESSDATA / bili_jct / buvid3(通过环境变量或 cookies 文件)。这种声明要求和实际需求之间的不一致可能会误导用户关于将使用哪些秘密。
⚠ 指令范围
运行时指令和示例告诉代理/用户从工作空间文件(/root/.openclaw/workspace/bilibili-cookies.md)或环境变量存储和读取 cookies,添加 MCP 服务器条目到 ~/.openclaw/openclaw.json(修改代理配置),并包括使用 subprocess.run(..., shell=True) 的批量发布示例。这些步骤导致代理(或用户)读取和持久化敏感凭证,并将外部 MCP 服务器连接到代理——这些超出简单 CLI 调用的操作,值得审查。
ℹ 安装机制
技能是指令仅(无自动安装),低风险,但 README/SKILL.md 推荐使用 pip 安装多个包(包括 bilibili-api-python 等)并使用 --break-system-packages。推荐的安装来自 PyPI(预期),但 --break-system-packages 标志不寻常且风险较高。技能本身未编程从任意 URL 下载。
⚠ 凭证需求
尽管注册元数据未列出所需的环境变量,但包装脚本和文档需要 BILIBILI_SESSDATA、BILIBILI_BILI_JCT 和 BILIBILI_BUVID3(或 cookies 文件)。要求三个账户 cookies/keys 与声明的功能成比例,但这些未在技能清单中声明,且推荐的存储是未加密的工作空间文件,增加了凭证意外暴露的风险。
⚠ 持久化与权限
SKILL.md 指示在 ~/.openclaw/openclaw.json 中添加一个新的 MCP 服务器条目,指向工作空间内的外部脚本。该更改将导致代理通过 stdio 传输加载/运行外部代码。虽然技能未标记为 always:true,但建议或自动化修改代理配置以添加外部 MCP 服务器,扩大了攻击面,应谨慎对待。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/13
📺 初始版本 - AI Agent 控制 B 站,功能:动态发布/删除/转发、视频/用户查询、搜索、直播查询、MCP 服务器集成。警告:可能触发风控,建议仅用于学习/测试。
● 无害
安装命令
点击复制官方npx clawhub@latest install bilibili-skill
镜像加速npx clawhub@latest install bilibili-skill --registry https://cn.longxiaskill.com
技能文档
让 AI Agent 控制 B 站!支持发布动态、管理视频、搜索内容、获取弹幕等。
🚀 快速开始
安装依赖
pip3 install bilibili-api-python click Pillow pycryptodome beautifulsoup4 brotli qrcode apscheduler --break-system-packages
配置认证
在调用命令时提供 Cookies:
bilibili-cli.py \
--sessdata "你的 SESSDATA" \
--bili_jct "你的 bili_jct" \
--buvid3 "你的 buvid3" \
dynamic publish --content "Hello B 站!"
或者将 Cookies 保存到文件:
# Cookies 已保存在 /root/.openclaw/workspace/bilibili-cookies.md
📋 可用命令
动态操作
发布原创动态:
bilibili-cli.py \
--sessdata "$SESSDATA" --bili_jct "$BILI_JCT" --buvid3 "$BUVID3" \
dynamic publish --content "动态内容" --img /path/to/image.jpg
删除动态:
bilibili-cli.py \
--sessdata "$SESSDATA" --bili_jct "$BILI_JCT" \
dynamic delete --dyn-id 1179226104862343192
转发动态:
bilibili-cli.py \
--sessdata "$SESSDATA" --bili_jct "$BILI_JCT" \
dynamic repost --dyn-id 123456 --content "转发评论"
视频操作
获取视频信息:
bilibili-cli.py video info --bvid BV1uv411q7Mv --json-output
获取视频统计:
bilibili-cli.py video stats --bvid BV1uv411q7Mv
点赞视频:
bilibili-cli.py \
--sessdata "$SESSDATA" --bili_jct "$BILI_JCT" \
video like --bvid BV1uv411q7Mv --status true
用户操作
获取用户信息:
bilibili-cli.py user info --uid 3706946142079013 --json-output
获取用户投稿:
bilibili-cli.py user videos --uid 3706946142079013 --ps 10
搜索操作
搜索视频:
bilibili-cli.py search video --keyword "Python 教程" --page 1 --json-output
搜索用户:
bilibili-cli.py search user --keyword "老番茄" --json-output
直播操作
获取直播间信息:
bilibili-cli.py live info --room-id 22708562 --json-output
🤖 AI Agent 集成
OpenClaw MCP 配置
在 ~/.openclaw/openclaw.json 中添加:
{
"mcp": {
"servers": {
"bilibili": {
"command": "python3",
"args": ["/root/.openclaw/workspace/external/bilibili-mcp-server/bilibili.py"],
"transport": "stdio"
}
}
}
}
环境变量方式
export BILIBILI_SESSDATA="0bc2bad7%2C1788944530%2Ce3acf%2A31..."
export BILIBILI_BILI_JCT="94c0e8c198bc26f5c58c11490bd8ef62"
export BILIBILI_BUVID3="BEDF1095-927E-9F61-3920-7364E75F194027291infoc"
然后在命令中使用:
bilibili-cli.py \
--sessdata "$BILIBILI_SESSDATA" \
--bili_jct "$BILIBILI_BILI_JCT" \
--buvid3 "$BILIBILI_BUVID3" \
dynamic publish --content "Hello!"
📊 功能对比
| 功能 | MCP Server | CLI 工具 |
|---|---|---|
| 搜索内容 | ✅ | ✅ |
| 用户查询 | ✅ | ✅ |
| 视频详情 | ❌ | ✅ |
| 发布动态 | ❌ | ✅ |
| 删除动态 | ❌ | ✅ |
| 获取弹幕 | ✅ | ❌ |
| 点赞视频 | ❌ | ✅ |
| 直播查询 | ❌ | ✅ |
- MCP Server 用于搜索/查询(AI 自然调用)
- CLI 工具用于发布/删除(脚本化操作)
🔧 高级用法
批量发布动态
#!/usr/bin/env python3 import subprocess import timecookies = "--sessdata 'xxx' --bili_jct 'xxx' --buvid3 'xxx'" contents = [ "第一条动态", "第二条动态", "第三条动态" ]
for content in contents: cmd = f"bilibili-cli.py {cookies} dynamic publish --content '{content}'" subprocess.run(cmd, shell=True) time.sleep(3) # 避免风控
获取视频弹幕(通过 MCP)
from mcp import Client from bilibili import get_video_danmaku
danmaku = get_video_danmaku("BV1uv411q7Mv") print(danmaku)
⚠️ 注意事项
- 速率限制: 避免快速连续调用(建议间隔 2-3 秒)
- 风控策略: 大量操作可能需要代理
- Cookie 有效期: SESSDATA 会过期,需定期更新
- 合法使用: 仅用于学习和测试,禁止滥用
📚 相关资源
- bilibili-api: https://github.com/Nemo2011/bilibili-api
- B 站 MCP Server: https://github.com/huccihuang/bilibili-mcp-server
- CLI-Anything: https://github.com/HKUDS/CLI-Anything
- Cookies 配置:
/root/.openclaw/workspace/bilibili-cookies.md
🎯 使用示例
示例 1: 发布 Ollama 推荐动态
bilibili-cli.py \
--sessdata "$SESSDATA" --bili_jct "$BILI_JCT" --buvid3 "$BUVID3" \
dynamic publish --content "🦙 Ollama:让大模型在你本地电脑运行! 2026 年了还在把数据发给云端 AI?Ollama 让你一键运行 Llama、Mistral 等大模型! ✅ 完全免费 ✅ 隐私安全 ✅ 离线可用 安装超简单: curl -fsSL https://ollama.com/install.sh | sh ollama run llama3.2 5 分钟就有自己的私有 AI 助手!🎉 #Ollama #AI #大语言模型 #开源 #本地 AI"
示例 2: 搜索 UP 主
bilibili-cli.py search user --keyword "老番茄" --json-output
输出:
{
"result": [
{
"uname": "老番茄",
"mid": 546195,
"fans": 2500000,
"videos": 500,
"level": 6
}
]
}
示例 3: 获取视频信息
bilibili-cli.py video info --bvid BV1uv411q7Mv
输出:
标题:爆肝 98 小时!在 MC 中还原糖调小镇
UP 主:糖调
播放:1234567
点赞:98765
时长:3600 秒
Skill 版本: 1.0.0
最后更新: 2026-03-13
维护者: 小爪 🐾