# Obsidian KB 配置文件 # 优先级: ./config.yaml > ~/.obsidian-kb/config.yaml > ~/.config/obsidian-kb/config.yaml # AI 配置 ai: provider: openai # AI 提供商 model: gpt-4 # 模型名称 api_key: sk-... # API Key (建议使用环境变量: OPENAI_API_KEY) # 存储配置 storage: inbox_dir: inbox # 收件箱目录 topics_dir: topics # 主题目录 data_dir: data # 数据目录 # 输出配置 output: format: markdown # 输出格式 encoding: utf-8 # 文件编码 include_timestamp: true # 包含时间戳 include_source: true # 包含源链接 # Git 同步配置 git: enabled: true # 启用 Git 同步 vault_path: ~/ObsidianVault # Obsidian 知识库路径 remote: origin # 远程仓库名 branch: main # 分支名 auto_commit: true # 自动提交 commit_message_template: "Update from obsidian-kb: {count} items" # 分段配置 chunking: enabled: true # 启用长视频分段 chunk_duration_seconds: 900 # 分段时长 (15分钟) max_chunk_duration_seconds: 1800 # 最大分段时长 (30分钟) long_video_threshold: 1800 # 长视频阈值 (30分钟) # 数据源配置 sources: bilibili: enabled: true cookie: '' # Bilibili Cookie (可选,环境变量: BILIBILI_COOKIE) youtube: enabled: false api_key: '' # YouTube API Key zhihu: enabled: true use_drissionpage: true # 使用 DrissionPage 绕过检测(推荐) cookie_file: ~/.obsidian-kb/zhihu_cookies.json # Cookie 文件路径 cookie_str: "" # 可选:直接在配置中填入 Cookie JSON (环境变量: ZHIHU_COOKIE) timeout: 30 headless: true # Bilibili 提取器配置 bilibili_extraction: use_playwright: true # 使用 Playwright 绕过检测 headless: true # 无头模式 cookie_file: '' # Cookie 文件路径 (可选) enable_subtitle: true # 启用字幕提取 subtitle_language: zh-CN # 字幕语言 enable_danmaku: false # 启用弹幕提取 timeout_seconds: 30 # 超时时间 max_retries: 3 # 最大重试次数 # 硬字幕提取配置 (OCR 方式) hard_subtitle: # 是否启用硬字幕提取功能 enabled: true # OCR 引擎选择 # 可选值: "paddleocr" (推荐), "tesseract" engine: "paddleocr" # 字幕区域检测配置 detection: # 默认字幕区域: "bottom" (底部), "full" (全屏), "auto" (自动检测) default_region: "bottom" # 当默认区域未检测到字幕时,是否自动回退到全屏模式 fallback_auto: true # 是否缓存字幕区域检测结果(提升处理速度) cache_region: true # OCR 识别配置 ocr: # 置信度阈值: 低于此值的识别结果将被过滤 confidence_threshold: 0.7 # 批处理大小: 每次处理的帧数(影响内存使用和速度) batch_size: 32 # 最大并发工作线程数 max_workers: 4 # 视频帧提取配置 video: # 抽帧间隔 (秒): 每隔多少秒抽取一帧进行识别 interval_seconds: 5 # 最大抽取帧数: 防止处理过长视频导致资源耗尽 max_frames: 500 # 流式处理模式: 逐步读取视频帧,避免一次性加载整个视频 stream_mode: true # 后处理配置 postprocess: # 是否启用去重: 去除连续相同的字幕文本 deduplicate: true # 最小文本长度: 少于此长度的识别结果将被视为噪声 min_length: 2 # 是否过滤噪声: 使用规则过滤明显错误的识别结果 filter_noise: true