This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-skills/memory/plans/obsidian-kb-integration.md
T
OpenClaw Agent 08f7c9f26c feat: integrate bilibili-extractor into obsidian-kb
- Add extractors layer with BilibiliExtractor (Playwright stealth mode)
- Add outputs layer with ObsidianWriter and GitSync
- Implement subtitle/no-subtitle graceful degradation
- Update config with output and bilibili extraction settings
- Complete integration pipeline: extract → process → output → sync
- Add comprehensive tests (100% pass rate)
- Update documentation (SKILL.md, README.md, requirements.txt)
2026-02-07 13:07:43 +08:00

135 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# obsidian-kb + bilibili-extractor 整合 - 实现计划
**Goal:** 将 bilibili-extractor 的提取能力整合到 obsidian-kb,输出markdown到Obsidian按UP主分类管理
**Approach:** 保持 obsidian-kb 现有架构,新增提取层和输出层,替换原有提取逻辑
**Estimated Total Time:** 90-120 分钟
---
## Checkpoint 1: 代码结构调整
- [ ] Task 1: 创建 extractors 目录结构 (~3 min)
- **Action:** `mkdir -p /home/admin/.openclaw/workspace/skills/obsidian-kb/src/extractors`
- **Verify:** `ls -la` 确认目录存在
- [ ] Task 2: 创建 outputs 目录结构 (~3 min)
- **Action:** `mkdir -p /home/admin/.openclaw/workspace/skills/obsidian-kb/src/outputs`
- **Verify:** `ls -la` 确认目录存在
- [ ] Task 3: 创建 __init__.py 文件 (~2 min)
- **Action:** 在 extractors/ 和 outputs/ 创建 __init__.py
- **Verify:** 文件创建成功
---
## Checkpoint 2: 提取器基类和配置扩展
- [ ] Task 1: 创建提取器基类 (~5 min)
- **Action:** 创建 `src/extractors/base.py`,定义 Extractor 基类和接口
- **Verify:** 基类定义完成,包含 extract() 抽象方法
- [ ] Task 2: 扩展 config.py 配置 (~5 min)
- **Action:** 在 DEFAULT_CONFIG 中添加 output.organize_by, output.filename_format, sources.bilibili.extraction
- **Verify:** 配置项添加成功,支持环境变量覆盖
---
## Checkpoint 3: B站提取器实现
- [ ] Task 1: 移植 bilibili-extractor 核心逻辑 (~10 min)
- **Action:** 创建 `src/extractors/bilibili_extractor.py`,从 bilibili_extractor.py 移植 Playwright 提取逻辑
- **Verify:** 提取器能独立运行,返回元数据+字幕
- [ ] Task 2: 测试提取器 (~5 min)
- **Action:** 用真实BV号测试(BV1MnFNz5EDL)
- **Verify:** 成功提取视频信息、统计数据、字幕
---
## Checkpoint 4: 处理器接口调整
- [ ] Task 1: 调整 analyzer 接口 (~5 min)
- **Action:** 修改 `src/processors/analyzer.py`,从提取器数据结构接收输入
- **Verify:** 接口调整完成
- [ ] Task 2: 实现无字幕降级逻辑 (~5 min)
- **Action:** 添加无字幕分支处理(使用视频简介,只保留默认标签)
- **Verify:** 无字幕场景逻辑正确
- [ ] Task 3: 调整 chunker 接口 (~3 min)
- **Action:** 修改 chunker 接收提取器数据
- **Verify:** 接口调整完成
---
## Checkpoint 5: 输出器实现
- [ ] Task 1: 实现 ObsidianWriter (~8 min)
- **Action:** 创建 `src/outputs/obsidian_writer.py`,实现按UP主分类写入
- **Verify:** 能创建 `vault/videos/bilibili/{author}/` 目录并写入文件
- [ ] Task 2: 实现 GitSync (~5 min)
- **Action:** 创建 `src/outputs/git_sync.py`,实现 git commit/push
- **Verify:** Git 同步逻辑正确
- [ ] Task 3: 测试输出器 (~5 min)
- **Action:** 用测试数据验证输出
- **Verify:** 文件结构、frontmatter、内容格式正确
---
## Checkpoint 6: 主流程集成
- [ ] Task 1: 集成提取层到主流程 (~8 min)
- **Action:** 修改 handler.py 或主入口,调用提取器→处理器→输出器
- **Verify:** 完整数据流打通
- [ ] Task 2: 添加错误处理 (~5 min)
- **Action:** 在各层添加 try-except,返回友好错误提示
- **Verify:** 错误场景有明确提示
- [ ] Task 3: 添加日志记录 (~3 min)
- **Action:** 添加详细错误日志
- **Verify:** 日志记录完整
---
## Checkpoint 7: 集成测试
- [ ] Task 1: 完整流程测试(有字幕)(~8 min)
- **Action:** 用有字幕BV号测试完整流程
- **Verify:** Obsidian笔记生成正确,内容完整
- [ ] Task 2: 降级流程测试(无字幕)(~5 min)
- **Action:** 用无字幕BV号测试
- **Verify:** 优雅降级,输出基础元数据笔记
- [ ] Task 3: 错误场景测试 (~5 min)
- **Action:** 测试网络错误、无效BV号等
- **Verify:** 错误提示友好,不崩溃
---
## Checkpoint 8: 文档更新
- [ ] Task 1: 更新 SKILL.md (~5 min)
- **Action:** 添加提取器说明、配置说明、使用示例
- **Verify:** 文档完整准确
- [ ] Task 2: 更新 README.md (~3 min)
- **Action:** 更新项目说明、快速开始
- **Verify:** README 清晰易懂
- [ ] Task 3: 更新 requirements.txt (~2 min)
- **Action:** 添加新依赖(playwright, undetected-playwright)
- **Verify:** 依赖完整
---
## Verification Criteria
- [ ] 所有 checkpoint 完成
- [ ] 有字幕视频:生成完整深度分析笔记
- [ ] 无字幕视频:优雅降级生成基础笔记
- [ ] 按 UP 主分类:目录结构正确
- [ ] 错误处理:所有错误场景有友好提示
- [ ] 文档完整:SKILL.md 和 README.md 更新
- [ ] 用户测试通过:真实视频验证成功
---
## 执行选项
计划已保存到 `memory/plans/obsidian-kb-integration.md`
**1. Single-Agent(本会话串行执行)**
- 我在这里按顺序完成任务
- 每个 checkpoint 汇报进度
- 有问题随时调整
**2. Dispatch Multiple Agents(并行执行)**
- 派多个子代理并行处理独立任务
- 整合结果
- 适合大项目加速
选择哪种执行方式?