核心功能
baoyu-url-to-markdown 是一款基于 Chrome DevTools Protocol 的网页内容提取工具,将任意 URL 渲染后的页面转换为结构化的 Markdown 文档,同时保留原始 HTML 快照。该技能采用多层降级架构确保可用性:首选本地 Defuddle 转换引擎,失败时自动回退至历史遗留提取器,若本地浏览器捕获完全失败则调用托管 API 作为最后保障。
显著优势:
- 完整渲染能力:通过 Chrome CDP 执行 JavaScript,获取动态加载内容,支持单页应用和复杂交互页面
- 智能转换管道:集成升级后的 Defuddle 引擎,针对 Web Components 优化(序列化 Shadow DOM),并为 YouTube 页面提供原生字幕提取
- 双模式捕获:
auto模式在页面网络空闲时自动捕获,--wait模式允许用户手动确认时机,适用于需登录或延迟加载的页面 - 媒体本地化:可选将图片、视频下载至本地目录,重写 Markdown 中的引用路径,实现完全离线的内容归档
- 元数据完整:生成的 Markdown 包含 YAML 前置元数据(URL、标题、描述、作者、发布时间、封面图、捕获时间戳),支持内容溯源
潜在局限:
- 环境依赖:需本地安装 Chrome 浏览器或配置
URL_CHROME_PATH,且依赖 Bun 运行时环境 - 首次配置阻塞:必须通过交互式问答创建
EXTEND.md配置文件,无法静默使用默认值 - 性能开销:Chrome 启动和页面渲染带来延迟,高并发场景不适用;托管 API 降级时丢失本地 HTML 快照
- 内容质量波动:YouTube 字幕依赖视频作者开启 CC 或自动字幕,部分区域受限视频可能仅返回描述文本
- 媒体下载非原子操作:
ask模式下需二次运行脚本完成媒体本地化,存在覆盖风险
适用人群:
- 需要离线归档网页内容的知识管理者与研究人员
- 构建个人知识库(PKM)的 Markdown 用户
- 需处理登录后内容或复杂动态页面的自动化工作流开发者
- 希望保留 YouTube 视频字幕文本的内容创作者
风险注意事项:
- 捕获需登录页面时可能意外保存敏感会话信息,建议在隔离 Chrome 配置文件中运行
- 大规模媒体下载可能触发目标站点的反爬机制
- 托管 API 降级时,URL 发送至第三方服务端,敏感内容应避免依赖此路径