Install
openclaw skills install @thcjp/bilibili-all-in-one-freeopenclaw skills install @thcjp/bilibili-all-in-one-free| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | B站工具箱免费版处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
get_hot 获取热门视频、get_trending 获取热门系列、get_weekly 获取每周必看榜、get_rank 按分区获取排行,支持 all/anime/music/dance/game/tech/life/food/car/fashion/entertainment/movie/tv 等13个分区get_info 获取视频信息、get_formats 列出可用清晰度、download 单视频下载,支持 360p/480p/720p/1080p 四档清晰度与 mp4 格式输出watch 获取视频详情、get_stats 获取当前互动统计、compare 多视频数据对比,支持 BV 短ID与完整URL两种输入play 获取完整播放信息、get_playurl 获取标准清晰度直链、get_danmaku 获取弹幕(支持滚动/底部固定/顶部固定三种模式)、get_playlist 获取分P列表app.execute(module, action, **params) 异步调用,返回 {"success": bool, ...} 统一JSON结构,CLI支持 python main.py <module> <action> <params_json>SESSDATA/bili_jct/buvid3 等会话Cookie详细的输入输出格式请参考下方章节说明。
pip install httpx aiohttp beautifulsoup4 lxml requests
# 可选: 视频流合并
# 系统安装 ffmpeg
Python >= 3.8,操作系统 Windows / macOS / Linux.
import asyncio
from main import BilibiliAllInOne
# ...
app = BilibiliAllInOne()
# ...
async def main():
hot = await app.execute("hot_monitor", "get_hot", page_size=10)
print(hot)
# ...
asyncio.run(main())
CLI调用:
python main.py hot_monitor get_hot '{"page_size": 10}'
python main.py hot_monitor get_rank '{"category": "game", "limit": 10}'
获取热门视频与游戏分区排行:
python main.py hot_monitor get_hot '{"page_size": 10}'
python main.py hot_monitor get_rank '{"category": "game", "limit": 10}'
python main.py hot_monitor get_weekly
python main.py hot_monitor get_trending '{"limit": 5}'
import asyncio
from main import BilibiliAllInOne
# ...
app = BilibiliAllInOne()
# ...
async def main():
hot = await app.execute("hot_monitor", "get_hot", page_size=10)
rank = await app.execute("hot_monitor", "get_rank", category="game", limit=10)
print(hot, rank)
# ...
asyncio.run(main())
下载1080p视频并获取弹幕:
python main.py downloader download '{"url": "BV1xx411c7mD", "quality": "1080p", "format": "mp4"}'
python main.py player get_danmaku '{"url": "BV1xx411c7mD"}'
python main.py watcher compare '{"urls": ["BV1xx411c7mD", "BV1yy411c8nE"]}'
result = await app.execute("downloader", "download", url="BV1xx411c7mD", quality="1080p")
danmaku = await app.execute("player", "get_danmaku", url="BV1xx411c7mD")
现象: 请求返回412状态码或 {"code": -509, "message": "请求过于频繁"}.
原因: 短时间高频请求触发B站反爬.
处理: 降低调用频率,单次批量不超过20个视频,批量间间隔5-10秒;复用同一会话的httpx Client保持连接一致性.
现象: downloader.download 指定 1080p+/4k 后实际下载为 720p 或返回不支持.
原因: 免费版仅支持360p-1080p四档清晰度,1080p+/4K需要付费版携带 SESSDATA 会话Cookie.
处理: 切换到 1080p 及以下档位;若需1080p+/4K高清下载,请升级付费版.
现象: 下载的视频只有画面无声音,或合并时报 ffmpeg not found.
原因: B站高清流为音视频分离的DASH流,需要ffmpeg合并;系统未安装ffmpeg或未加入PATH.
处理: 安装ffmpeg(brew install ffmpeg / apt install ffmpeg / Windows下载二进制并配置PATH).
现象: get_danmaku 返回弹幕数量明显少于实际播放量.
原因: B站弹幕按分P与时间分段存储,长视频弹幕分多段,默认只返回领先段.
处理: 通过 get_playlist 获取分P列表后逐P调用 get_danmaku,并指定 segment 索引遍历所有分段.
现象: get_info/download 返回 {"success": false, "message": "video not found"}.
原因: BV号错误、视频已被UP主删除或被B站下架.
处理: 核对BV号格式(以BV开头12位);在浏览器访问确认视频可正常播放;已下架视频无法恢复.
不需要。免费版全部功能基于B站公共API,无需 SESSDATA/bili_jct/buvid3 等会话Cookie,直接 BilibiliAllInOne() 初始化即可使用.
免费版支持 360p/480p/720p/1080p 四档清晰度与 mp4 格式。1080p+/4k 高清档位与 flv/mp3 格式需升级付费版并携带会话Cookie.
不能。视频上传、定时发布、草稿编辑等 publisher 模块能力需要 SESSDATA+bili_jct 完整会话Cookie,属付费版功能.
B站高清流(720p+)采用DASH协议,音频与视频独立传输。库内部会调用ffmpeg合并为单文件;若系统无ffmpeg,需自行安装或将清晰度降至360p/480p(这些档位为单流).
mp4 格式输出,不包含 flv 与 mp3 音频提取subtitle 字幕处理模块与 faster-whisper 语音识别兜底publisher 视频投稿模块(上传/定时发布/草稿编辑)当前为免费版,仅包含公共API基础能力。升级付费版可获得:
1080p+/4k 高清下载与 flv/mp3 格式转换subtitle 字幕处理模块(SRT/ASS转换 + faster-whisper 语音识别兜底)publisher 视频投稿模块(上传/定时发布/草稿编辑)watcher.track 长期指标追踪付费版slug: bilibili-all-in-one
{
"success": true,
"data": {
"result": "B站工具箱免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "bilibili-all-in-one"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法获取热门视频 | 网络连接不稳定 | 检查网络连接,尝试重新连接 | 确保网络连接稳定,或更换网络环境 |
| 视频下载失败 | 下载链接错误或视频不可下载 | 检查视频链接是否正确,或尝试下载其他视频 | 确保视频链接正确,或联系视频发布者 |
| 弹幕获取失败 | 视频无弹幕或弹幕数据损坏 | 检查视频是否有弹幕,或尝试重新获取弹幕 | 确保视频有弹幕,或尝试重新获取弹幕数据 |
| 视频下载清晰度不正确 | 请求的清晰度超出范围 | 检查请求的清晰度是否在支持范围内 | 选择正确的清晰度进行下载 |
| 数据追踪结果为空 | 输入的视频信息错误 | 检查输入的视频信息是否正确 | 确保输入的视频信息准确无误 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API滥用 | 高 | 限制请求频率,使用API Key | 检查API Key使用记录,确保频率合理 |
| 个人信息泄露 | 中 | 使用HTTPS连接,加密敏感数据 | 检查SSL证书,确保数据传输安全 |
| 网络攻击 | 高 | 使用防火墙,监控异常流量 | 定期检查防火墙设置,监控网络流量 |
| 软件漏洞 | 中 | 定期更新软件,修复已知漏洞 | 检查软件更新日志,确保软件安全 |
| 数据损坏 | 中 | 使用数据备份,定期检查数据完整性 | 定期备份数据,检查数据完整性 |
| 功能 | 效率提升 | 差异化对比 |
|---|---|---|
| 热门监控 | 自动获取热门视频,节省用户搜索时间 | 相比手动搜索,节省50%以上时间 |
| 标准清晰度下载 | 提供清晰度选择,提高视频观看体验 | 相比默认下载,提升10%以上观看体验 |
| 数据追踪 | 提供视频互动统计,辅助内容分析 | 相比手动统计,提升30%以上分析效率 |
| 弹幕获取 | 提供弹幕获取功能,丰富视频观看体验 | 相比手动搜索,提升20%以上观看体验 |
| 无需凭据 | 无需登录凭据,简化使用流程 | 相比付费版,简化50%以上使用流程 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | B站工具箱免费版 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | B站热门监控、标准清晰度下载、数据追踪与弹幕获取基础工具集,无需登录凭据。B站全 | 通用场景 | 通用场景 |
针对B站工具箱免费版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |