跨平台 CLI 工具与浏览器扩展,支持对任意 URL(网页、YouTube、播客)或本地文件(PDF、音视频、图片)进行智能内容提取与摘要,支持多 LLM 提供商与本地模型。
项目概述#
Summarize 是由 steipete 开发的多源内容摘要工具,定位为「指向任意 URL/YouTube/Podcast 或文件,获取要点」。支持统一处理网页、YouTube 视频、播客(Apple Podcasts/Spotify/RSS)、本地文件(PDF/图片/音视频/文本)以及标准输入管道。
核心能力#
输入源支持#
- URLs: 网页、YouTube、播客 RSS、Apple Podcasts、Spotify 等
- 本地文件: PDF、图片、音频、视频、文本文件等
- 标准输入: 通过管道或
-参数读取内容(50MB 上限) - 播客: Apple Podcasts、Spotify、Amazon Music/Audible、Podbean、Podchaser、RSS feeds
内容处理#
- 网页提取: HTML → clean text → summary;支持 Readability、markitdown、Firecrawl 回退
- YouTube 转录: 优先使用网络字幕端点,回退到 Apify 或 yt-dlp + Whisper
- 播客转录: 优先使用 Podcasting 2.0 RSS transcripts,回退到 Whisper
- 幻灯片提取: 视频场景检测 + 截图 + 可选 OCR + 时间戳卡片
- 媒体转录: 支持本地音频/视频文件通过 Whisper 或 NVIDIA Parakeet/Canary ONNX 模型转录
输出模式#
- Markdown / 文本格式
- JSON 诊断输出 (
--json) - 仅提取模式 (
--extract) - 流式输出(带 ANSI/OSC Markdown 渲染)
- 指标与成本估算 (
--metrics)
长度预设#
| 预设 | 目标字符数 | 范围 |
|---|---|---|
| short | ~900 | 600-1,200 |
| medium | ~1,800 | 1,200-2,500 |
| long | ~4,200 | 2,500-6,000 |
| xl | ~9,000 | 6,000-14,000 |
| xxl | ~17,000 | 14,000-22,000 |
模型支持#
- 自动模型选择与回退 (
--model auto) - 本地模型: OpenAI 兼容端点
- 付费提供商: OpenAI、Anthropic、Google、xAI、Z.AI、NVIDIA
- 免费模型预设: OpenRouter
:free模型 (--model free) - CLI 编码助手: Codex、Claude、Gemini、Agent CLI 后端
平台支持#
- CLI: 跨平台终端工具(npm / npx / Homebrew 安装)
- Chrome 扩展: Side Panel UI
- Firefox 扩展: Sidebar UI
安装方式#
# npm(跨平台)
npm i -g @steipete/summarize
# npx(无需安装)
npx -y @steipete/summarize "https://example.com"
# Homebrew(macOS arm64)
brew install steipete/tap/summarize
# 最小依赖库模式
npm i @steipete/summarize-core
使用示例#
# 网页摘要
summarize "https://example.com/article" --length long
# YouTube 视频摘要(带转录)
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto
# PDF 文档摘要
summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview
# 播客 RSS 摘要
summarize "https://feeds.npr.org/500005/podcast.xml"
# 幻灯片提取
summarize "https://www.youtube.com/watch?v=..." --slides --slides-ocr
# 使用免费模型
summarize "https://example.com" --model free
配置#
配置文件位置: ~/.summarize/config.json
{
"model": { "id": "openai/gpt-5-mini" },
"env": { "OPENAI_API_KEY": "sk-..." },
"ui": { "theme": "ember" }
}
架构#
- 语言: TypeScript (96.4%)
- 包管理: pnpm (monorepo)
- 构建: Vitest 配置
- 模型接口: OpenAI 兼容 API / AI SDK
- 核心库: @steipete/summarize-core
环境要求#
- Node.js 22+
- 可选依赖: yt-dlp、ffmpeg、tesseract、whisper.cpp、uvx/markitdown