Baoyu Url To Markdown

🌐 网页归档利器,一键转 Markdown

基于 Chrome CDP 的网页转 Markdown 工具,支持 X/Twitter、YouTube、Hacker News 等站点适配,可处理登录验证与媒体下载,适合内容归档与研究。

收藏
9.9k
安装
3.5k
版本
1.117.2
CLS 安全性认证2026-07-13
点击查看完整报告 >

使用说明

核心用法

baoyu-url-to-markdown 是一款基于 baoyu-fetch CLI 的网页内容提取工具,通过 Chrome DevTools Protocol (CDP) 驱动浏览器,将任意 URL 转换为结构清晰的 Markdown 文档。核心工作流程为:解析用户输入 URL → 调用 Chrome CDP 渲染页面 → 应用站点特定适配器提取内容 → 输出 Markdown 或 JSON。

主要功能特性:

  • 站点适配器:内置 X/Twitter 线程、YouTube 字幕、Hacker News 讨论及通用页面(Defuddle)四种适配器,自动识别站点类型
  • 交互等待模式:支持 --wait-for interaction 处理登录态、CAPTCHA 等人工干预场景,超时可配置(默认10分钟)
  • 媒体下载:可选下载图片/视频到本地 imgs/videos/ 目录并自动重写 Markdown 链接
  • 灵活输出:支持标准输出、指定文件路径、JSON 格式,以及调试模式输出完整网络日志
  • 首选项配置:通过 EXTEND.md 管理媒体下载策略、默认输出目录,支持项目级/用户级/ XDG 配置三级作用域

显著优点:
1. 真实浏览器渲染:基于 Chrome CDP 而非纯 HTTP 请求,可执行 JavaScript、处理动态加载内容,规避传统爬虫的渲染限制

2. 站点定制化:专用适配器针对 X 线程结构、YouTube 字幕 DOM 等做精准提取,输出质量优于通用 readability 方案

3. 人工干预能力:交互等待模式填补了 headless 工具无法处理登录墙的空白,扩展了可用场景

4. 自包含归档:媒体下载 + 独立目录结构({domain}/{slug}/)使单条 URL 的内容完整可移植

潜在缺点与局限性:
1. 外部依赖重:必须安装 Bun 运行时及 Chrome/Chromium 浏览器,环境配置门槛较高

2. 资源消耗大:每次调用启动 Chrome 实例,内存和 CPU 开销显著高于轻量级 HTTP 客户端

3. 质量不确定性:文档明确指出"默认 headless 捕获视为临时结果",部分站点在 headless 模式下会返回差异化内容,需人工校验

4. 首选项阻塞设计:首次使用强制交互式配置,无法静默初始化,自动化场景受限

5. 维护负担:适配器需随目标站点改版持续更新,X、YouTube 等平台的反爬策略可能影响稳定性

适合人群:

  • 研究人员、记者、知识管理者:需要归档完整网页内容(含动态加载的评论区、字幕)
  • 开发者、技术写作者:构建文档站、生成静态内容,需程序化提取 clean markdown
  • 有登录态需求的用户:需抓取会员内容、个人 timeline 等需身份验证的页面

常规风险:

  • 法律合规:批量抓取 X/Twitter、YouTube 等平台内容可能违反 ToS,存在账号封禁风险
  • 隐私泄露:Chrome profile 复用可能残留登录态,共享环境需注意数据隔离
  • 内容完整性:依赖浏览器渲染意味着页面广告、追踪脚本同样执行,敏感场景需配合隐私配置
  • 存储膨胀:默认媒体下载策略若设为"始终下载",长期运行将产生大量本地文件

安全解读

baoyu-url-to-markdown 综合评估

核心用法

baoyu-url-to-markdown 是一款通过 Chrome DevTools Protocol (CDP) 将任意网页转换为干净 Markdown 的 CLI 工具。其核心架构采用浏览器自动化 + 站点适配器模式:

1. 抓取层:使用 chrome-launcher 启动 Chrome 实例,通过 CDP 控制浏览器行为
2. 适配层:针对特定站点(X/Twitter、YouTube、Hacker News)提供结构化提取逻辑,非特定站点则使用 Defuddle 通用解析

3. 转换层:将提取的 HTML 内容通过 Turndown 等库转为 Markdown

4. 输出层:支持 stdout、文件保存、JSON 格式,可选媒体下载

典型工作流

# 基础抓取
baoyu-fetch <url>

# 保存到文件并下载图片视频
baoyu-fetch <url> --output article.md --download-media

# 处理需登录/CAPTCHA 的页面
baoyu-fetch <url> --wait-for interaction --output article.md

工具内置首选项系统(EXTEND.md),首次使用时强制引导配置:媒体下载策略(ask/always/never)、默认输出目录、配置存储位置(项目级/用户级)。

显著优点

| 维度 | 优势 |
|------|------|
| **站点适配** | 内置 X/Twitter 线程解析、YouTube 字幕提取、Hacker News 讨论树,非通用方案可比 |
| **交互能力** | 首创 `--wait-for interaction` 模式,自动检测登录/CAPTCHA 完成状态,解决纯 headless 工具无法处理认证页面的痛点 |
| **媒体管理** | 可选下载图片视频到本地子目录,自动重写 Markdown 链接,实现完全离线的资料归档 |
| **隔离设计** | 每个 URL 独立目录存储(`{domain}/{slug}/`),避免资源冲突 |
| **配置灵活** | 三级配置优先级(CLI 参数 > EXTEND.md > 默认值),支持项目级和用户级偏好 |
| **调试友好** | `--debug-dir` 可导出完整抓取过程产物(HTML、网络日志、中间 JSON)便于排查 |

潜在缺点与局限性

1. 外部依赖强:必须本地安装 Chrome/Chromium,无浏览器环境完全无法运行
2. 首屏配置阻塞:强制首选项设置虽提升用户体验,但自动化场景下可能成为障碍

3. Cookie 持久化风险:X 适配器将登录 Cookie 明文存储于本地 JSON,共享环境存在泄露隐患

4. 质量门控依赖人工:文档明确提示"headless 抓取结果为临时版本",需人工审查,增加使用成本

5. 路径构造复杂度:输出路径完全由 Agent 层组装,CLI 本身无智能路径生成,配置错误易导致文件散落

6. 社区规模有限:个人开发者维护(JimLiu),MIT-0 许可证虽宽松,但长期维护力度存疑

适合人群

  • 知识管理用户:需要将网络文章、社交媒体线程、视频字幕整理进个人 Wiki/Obsidian/Notion
  • 研究者与记者:批量归档网页证据,需要离线可用、格式统一的资料
  • 开发者:构建自动化内容采集 pipeline,需处理 JavaScript 渲染的现代 SPA 站点
  • 合规敏感用户:相比云端抓取服务,本地浏览器运行满足数据不出境要求

常规风险

| 风险类型 | 说明 | 缓解措施 |
|----------|------|----------|
| 浏览器漏洞 | Chrome CDP 暴露本地端口,虽仅限本地访问 | 使用专用 Chrome Profile,避免日常浏览会话 |
| 目标站点封禁 | 频繁抓取可能触发反爬机制 | 控制请求频率,必要时使用 `--wait-for` 模拟真实用户 |
| 恶意页面攻击 | 抓取含漏洞利用代码的页面可能危害浏览器 | 审查目标 URL,必要时在隔离环境运行 |
| 媒体版权 | 自动下载图片视频可能涉及版权 | 遵守目标站点 robots.txt 和使用条款 |
| 配置漂移 | EXTEND.md 手动编辑可能导致格式错误 | 遵循文档模板,或使用 CLI 首选项向导重新生成 |

技术栈亮点

  • TypeScript 90.9%:类型安全,便于二次开发
  • Bun 运行时:现代 JavaScript 运行时,启动速度和包管理效率优于 Node.js
  • Defuddle:通用 HTML→Markdown 解析库,处理复杂排版表现稳定
  • Turndown:社区成熟的 HTML-to-Markdown 转换器

竞品对比

| 工具 | 浏览器依赖 | 站点适配 | 交互登录 | 媒体下载 |
|------|-----------|----------|----------|----------|
| baoyu-fetch | ✅ Chrome CDP | ✅ 内置 3 种 | ✅ 自动检测 | ✅ 可选 |
| `wget -O -` | ❌ | ❌ 纯文本 | ❌ | ❌ |
| `pandoc` | ❌ | ❌ | ❌ | ❌ |
| `reader-mode` 类扩展 | ✅ 需手动 | ❌ 通用 | ❌ | ❌ |
| Playwright + 自写脚本 | ✅ 可选 | 需自行开发 | 需自行实现 | 需自行实现 |

定位总结:baoyu-fetch 在"零配置开箱即用"与"深度定制能力"之间取得了较好平衡,是个人知识管理场景下功能最完整的本地网页归档方案。

Baoyu Url To Markdown 内容

references文件夹
config文件夹
scripts文件夹
lib文件夹
adapters文件夹
generic文件夹
hn文件夹
x文件夹
youtube文件夹
browser文件夹
commands文件夹
extract文件夹
media文件夹
types文件夹
utils文件夹
手动下载zip · 93.4 kB
first-time-setup.mdtext/markdown
请选择文件