This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw/agents/haonan/workspace/memory/plans/obsidian-kb-integration.md
T
2026-02-15 00:36:24 +08:00

5.0 KiB
Raw Blame History

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(并行执行)

  • 派多个子代理并行处理独立任务
  • 整合结果
  • 适合大项目加速

选择哪种执行方式?