diff --git a/skills/bilibili-extractor/SKILL.md b/skills/bilibili-extractor/SKILL.md new file mode 100644 index 0000000..694e2d2 --- /dev/null +++ b/skills/bilibili-extractor/SKILL.md @@ -0,0 +1,191 @@ +--- +name: bilibili-extractor +description: B站视频内容提取工具,使用Playwright + undetected-playwright绕过反爬虫,支持提取视频信息、统计数据、字幕并生成Markdown笔记。 +--- + +# SKILL.md - B站视频内容提取工具 + +## 功能说明 + +这个工具可以从B站(bilibili.com)提取视频内容并生成结构化的Markdown笔记。 + +**核心能力:** +- ✅ 绕过B站极验验证码 +- ✅ 提取视频基本信息(标题、UP主、时长、发布时间) +- ✅ 获取视频统计数据(播放量、点赞、投币、收藏、分享、弹幕、评论) +- ✅ 提取视频字幕(如果有CC字幕) +- ✅ 生成结构化Markdown笔记 + +## 适用场景 + +当用户请求: +- "帮我提取这个B站视频的内容:[链接]" +- "分析这个B站视频:BV号" +- "获取B站视频的字幕" +- "生成B站视频的笔记" + +## 工作原理 + +使用 Playwright + undetected-playwright (stealth_async) 绕过B站的反爬虫检测: +1. 使用stealth模式启动浏览器 +2. 访问B站视频页面 +3. 多策略提取数据(JS变量 → HTML解析 → API备用) +4. 处理验证码(如果触发) +5. 生成Markdown笔记 + +## 使用方法 + +### 方式1:直接运行脚本 + +```bash +cd /home/admin/.openclaw/workspace +./bilibili_venv/bin/python bilibili_extractor.py +``` + +### 方式2:修改视频ID + +编辑 `bilibili_extractor.py` 文件,修改 `bvid` 变量: + +```python +bvid = "BV11t64BJEDZ" # 修改为目标视频的BV号 +``` + +### 方式3:作为子代理任务使用 + +启动子代理处理: + +```python +sessions_spawn( + task="提取B站视频内容:BV11t64BJEDZ", + model="zhipu/glm-4.7" +) +``` + +## 文件位置 + +**主程序:** `/home/admin/.openclaw/workspace/bilibili_extractor.py` + +**虚拟环境:** `/home/admin/.openclaw/workspace/bilibili_venv/` + +**文档:** +- `BILIBILI_EXTRACTOR_README.md` - 完整技术文档 +- `USAGE.md` - 快速使用指南 +- `PROJECT_SUMMARY.md` - 项目总结 + +**输出目录:** `/home/admin/.openclaw/workspace/notes/` + +## 处理验证码 + +如果遇到验证码: + +1. 修改脚本中的 `headless` 参数: +```python +# 改为非headless模式 +browser = p.chromium.launch(headless=False, args=args) +``` + +2. 运行脚本,浏览器会显示,手动完成验证 +3. 验证通过后可以改回 `headless=True` + +## 支持的输入格式 + +- 短链接:`lid6E0m` +- 完整短链接:`https://b23.tv/lid6E0m` +- BV号:`BV11t64BJEDZ` +- 完整视频链接:`https://www.bilibili.com/video/BV11t64BJEDZ` + +## 短链接转换工具 + +如果需要将B站短链接转换为完整链接,可以使用: + +```bash +./scripts/bilibili-short-to-long.sh lid6E0m +``` + +输出:`https://www.bilibili.com/video/BV11t64BJEDZ` + +## 注意事项 + +⚠️ **反爬虫警告:** +- B站可能随时更新反爬虫策略 +- 频繁请求可能导致IP封禁 +- 建议控制请求频率 + +⚠️ **法律风险:** +- 仅用于个人学习 +- 遵守B站服务条款 +- 不要大规模爬取 + +## 故障排除 + +### 问题1:无法绕过验证码 + +**解决方案:** +- 使用非headless模式手动处理验证 +- 更新 undetected-playwright 到最新版本 +- 尝试更换浏览器配置参数 + +### 问题2:页面加载超时 + +**解决方案:** +- 检查网络连接 +- 增加超时时间(修改脚本中的 timeout 参数) +- 使用代理IP + +### 问题3:无法提取字幕 + +**原因:** 目标视频可能没有CC字幕 + +**解决方案:** +- 检查视频是否有字幕 +- 脚本已优雅处理无字幕情况 + +## 技术栈 + +- **Playwright** - 浏览器自动化框架 +- **undetected-playwright** - 反检测插件 +- **BeautifulSoup4** - HTML解析 +- **Python 3.10+** + +## 依赖安装 + +```bash +pip install playwright undetected-playwright beautifulsoup4 requests +playwright install chromium +``` + +(虚拟环境已安装所有依赖) + +## 示例输出 + +生成的Markdown笔记包含: +```markdown +# 时代真变了!glm4.7+playwright cli, AI自主进行自动化测试 + +**UP主**: 录教程的乙醇啦 +**BV号**: BV11t64BJEDZ +**时长**: 04:46 +**发布时间**: 2026-02-01 18:39:58 + +## 视频统计 +- 播放量: 969 +- 点赞: 22 +- 投币: 10 +- 收藏: 72 +- 分享: 15 +- 弹幕: 0 +- 评论: 9 + +## 字幕内容 +(如果有字幕) +... +``` + +## 相关脚本 + +- `scripts/bilibili-short-to-long.sh` - B站短链接转换工具 +- `scripts/install-browser-for-openclaw.sh` - 浏览器环境一键安装脚本 + +## 更多信息 + +查看完整文档:`/home/admin/.openclaw/workspace/BILIBILI_EXTRACTOR_README.md`