Summarize:全能网页与媒体摘要工具

一键生成网页与视频的精炼摘要,并自动提取关键幻灯片。

详细介绍

Summarize

从 URL、文件和媒体中快速生成摘要。可在终端、Chrome 侧边栏和 Firefox 侧边栏中使用。

核心能力

Chrome 侧边栏聊天 :在侧边栏内提供流式智能体对话和历史记录。

视频幻灯片 :为 YouTube、直接视频 URL 和本地视频文件提供截图 + OCR + 字幕卡片。

媒体感知摘要 :自动检测视频/音频与页面内容。

编码 CLI 后端 :支持 Codex、Claude、Gemini、Cursor Agent、OpenClaw、OpenCode、GitHub Copilot、Antigravity、pi。

流式 Markdown :包含指标和缓存状态。

CLI 支持 :URL、文件、播客、YouTube、音频/视频、PDF。

Chrome 扩展

一键总结当前标签页。Chrome 侧边栏 + Firefox 侧边栏 + 本地守护进程,支持流式 Markdown。

Chrome 网上应用店:Summarize Side Panel

YouTube 幻灯片截图(来自浏览器):

初学者快速入门(扩展)

安装扩展(上面的 Chrome 网上应用店链接)并打开侧边栏。

选择 Direct 或 Daemon 。Direct 模式在未配置提供商密钥时默认使用 Gemini Nano,或从 Chrome 调用您选择的提供商。

选择浏览器媒体以进行无守护进程的转录/幻灯片。可选:安装 CLI 并配对守护进程,以获得原生工具、CLI 模型回退、OCR 和更广泛的媒体支持。

注意:

仅当侧边栏打开时才进行摘要。

自动模式会在导航(包括 SPA)时自动总结;否则使用按钮。

守护进程仅限本地主机,需要共享令牌。

自动启动:macOS(launchd)、Linux(systemd 用户)、Windows(计划任务)。

幻灯片(扩展)

在 Summarize 选择器中选择 Video + Slides 。

幻灯片在顶部渲染;可展开为带时间戳的全宽卡片。

点击幻灯片可跳转到视频对应位置;当 OCR 显著时可切换 Transcript/OCR 。

浏览器模式使用 MediaBunny,通过原生 WebCodecs 和范围网络读取来获取可获取的视频,当源或编解码器不可用时回退到可见标签页捕获。

守护进程模式额外提供 yt-dlp 、原生 ffmpeg 和可选的 tesseract OCR。

CLI

需要 Node 24+。

可选本地依赖

如果您需要媒体密集型功能,请安装以下工具:

ffmpeg :可选的原生加速器,支持更广泛的编解码器;回退使用内置的 WebAssembly 版本。

yt-dlp :YouTube 幻灯片提取和某些远程媒体流程需要。

tesseract :可选,用于 –slides-ocr 。

macOS(Homebrew):

brew install ffmpeg yt-dlp
brew install tesseract # 可选,用于 –slides-ocr

如果原生 ffmpeg / ffprobe 不可用,Summarize 将使用内置的 WebAssembly 构建。仍推荐原生 ffmpeg 以获得速度和更广泛的编解码器/滤镜支持。

快速开始

summarize "https://example.com"

检查有效模型配置:

summarize status
summarize status –verbose
summarize status –probe
summarize status –json

输入

URL 或本地路径:

summarize "/path/to/file.pdf" –model google/gemini-3-flash
summarize "https://example.com/report.pdf" –model google/gemini-3-flash
summarize "/path/to/audio.mp3"
summarize "/path/to/video.mp4"

标准输入(使用 – 管道输入):

echo "content" | summarize –
pbpaste | summarize –

YouTube(支持 youtube.com 和 youtu.be ):

summarize "https://youtu.be/dQw4w9WgXcQ" –youtube auto

播客 RSS(转写最新一集):

summarize "https://feeds.npr.org/500005/podcast.xml"

Apple Podcasts 单集页面:

summarize "https://podcasts.apple.com/us/podcast/2424-jelly-roll/id360084272?i=1000740717432"

Spotify 单集页面(尽力而为,独家内容可能失败):

summarize "https://open.spotify.com/episode/5auotqWAXhhKyb9ymCuBJY"

HLS 播放列表:

summarize "https://example.com/master.m3u8"

输出长度

–length 控制我们要求输出的量(指导性),并非硬性限制。内置默认值为 long 。

可在 ~/.summarize/config.json 中通过 output.length 设置默认值。

预设值: short|medium|long|xl|xxl

字符目标: 1500 、 20k 、 20000

可选硬性上限: –max-output-tokens <count> (例如 2000 、 2k )

短内容:当提取的内容短于请求的长度时,CLI 会原样返回内容。使用 –force-summary 覆盖,强制运行 LLM。

最小值: –length 数值必须 >= 10 个字符; –max-output-tokens 必须 >= 16。

预设目标(来源: packages/core/src/prompts/summary-lengths.ts ):

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)

支持的文件类型

尽力而为,且取决于提供商。以下通常工作良好:

text/* 和常见结构化文本( .txt 、 .md 、 .json 、 .yaml 、 .xml 等)

PDF: application/pdf (提供商支持程度不同;Google 最可靠)

图片: image/jpeg 、 image/png 、 image/webp 、 image/gif

音频/视频: audio/* 、 video/* (本地音频/视频文件在模型支持时会自动转写)

注意:

如果提供商拒绝某种媒体类型,CLI 会快速失败并显示友好消息。

xAI 模型不支持通过 AI SDK 附加通用文件(如 PDF);对于这些情况,请使用 Google/OpenAI/Anthropic。

模型 ID

使用网关风格 ID: <provider>/<model> 。

示例:

openai/gpt-5.4

openai/gpt-5.4-mini

openai/gpt-5.4-nano

openai/gpt-5-mini

openai/gpt-5-nano

github-copilot/gpt-5.4

anthropic/claude-sonnet-4-5

xai/grok-4-fast-non-reasoning

google/gemini-3-flash

zai/glm-4.7

minimax/MiniMax-M3

openrouter/openai/gpt-5-mini (强制使用 OpenRouter)

注意:某些模型/提供商不支持流式传输或某些文件媒体类型。此时 CLI 会打印友好错误(或在提供商支持时为该模型自动禁用流式传输)。

OpenAI 快速模式和思考模式

快速模式是一个请求选项,不是模型 ID:

summarize "https://example.com" –model openai/gpt-5.5 –fast –thinking medium
summarize "https://example.com" –model openai/gpt-5.4 –service-tier fast –thinking low

–fast 是 –service-tier fast 的简写。

–service-tier default|fast|priority|flex 控制 OpenAI 服务层级。 fast 是 Summarize/Codex 使用的拼写,发送给 OpenAI 时变为 service_tier="priority" 。

–thinking none|low|medium|high|xhigh 控制 OpenAI 推理努力程度。别名: off → none , min → low , mid / med → medium , x-high / extra-high → xhigh 。

–service-tier default 会清除一次运行配置的层级。

限制

超过 10 MB 的文本输入在分词前会被拒绝。

文本提示会针对模型输入限制(LiteLLM 目录)进行预检查,使用 GPT 分词器。

常用标志

summarize <input> [flags]

–model <provider/model> :使用的模型(默认为 auto )

–model auto :自动选择模型 + 回退(默认)

–model <name> :使用内置或配置定义的预设

–timeout <duration> : 30s 、 2m 、 5000ms (默认 2m )

–retries <count> :超时或临时 API 失败后的 LLM 重试次数(默认 1 )

–length short|medium|long|xl|xxl|s|m|l|<chars>

–language, –lang <language> :输出语言( auto = 匹配源语言)

–max-output-tokens <count> :LLM 输出令牌的硬性上限

–cli [provider] :使用 CLI 提供商( –model cli/<provider> )。支持 claude 、 gemini 、 codex 、 agent 、 openclaw 、 opencode 、 copilot 、 agy 、 pi 。如果省略,则使用启用了 CLI 的自动选择。

–stream auto|on|off :流式输出 LLM 结果( auto = 仅 TTY;在 –json 模式下禁用)

–plain :保留原始输出(无 ANSI/OSC Markdown 渲染)

–no-color :禁用 ANSI 颜色

–theme <name> :CLI 主题( aurora 、 ember 、 moss 、 mono )

–format md|text :网站/文件内容格式(默认 text )

–markdown-mode off|auto|llm|readability :HTML -> Markdown 模式(默认 readability )

–preprocess off|auto|always :控制 uvx markitdown 的使用(默认 auto )

–extract :打印提取的内容并退出(URL、YouTube/直接媒体、本地音频/视频和本地 PDF;不支持标准输入 – )

–slides :为 YouTube、直接视频 URL 或本地视频文件提取幻灯片,并在摘要叙述中内联渲染

–no-slides :对单次运行禁用 ~/.summarize/config.json 中启用的幻灯片提取

–slides-ocr :对提取的幻灯片运行 OCR(需要 tesseract )

–no-slides-ocr :对单次运行禁用 ~/.summarize/config.json 中启用的幻灯片 OCR

–slides-dir <dir> :幻灯片图像的基础输出目录(默认 ./slides )

–slides-scene-threshold <value> :场景检测阈值(0.1-1.0)

–slides-max <count> :最大提取幻灯片数量(默认 6 )

–slides-min-duration <seconds> :幻灯片之间的最小秒数

–json :机器可读输出,包含诊断信息、提示、 metrics 和可选的摘要

–verbose :调试/诊断信息输出到 stderr

–metrics off|on|detailed :指标输出(默认 on )

编码 CLI

Summarize 可以将常见的编码 CLI 用作本地模型后端:

codex -> –cli codex / –model cli/codex/<model>

claude -> –cli claude / –model cli/claude/<model>

gemini -> –cli gemini / –model cli/gemini/<model>

agent (Cursor Agent CLI)-> –cli agent / –model cli/agent/<model>

openclaw -> –cli openclaw / –model cli/openclaw/<model> 或 –model openclaw/<model>

opencode -> –cli opencode / –model cli/opencode/<model> ( –model cli/opencode 使用 OpenCode 运行时默认值)

copilot (GitHub Copilot CLI)-> –cli copilot / –model cli/copilot/<model> ( –model cli/copilot 使用 Copilot 运行时默认值)

agy (Antigravity CLI)-> –cli agy / –model cli/agy (使用 agy 活动会话模型;agy print 模式不支持按调用选择模型)

pi (Pi Coding Agent)-> –cli pi / –model cli/pi 或 –model cli/pi/<model>

内置预设:

–model codex-fast 使用 GPT-5.5 Fast 模式运行 Codex,需要 codex login 。

要求:

二进制文件已安装并在 PATH 中(或设置对应的路径环境变量)

提供商已认证

自动模型排序

–model auto 根据内置规则(或您的 model.rules 覆盖)构建候选尝试。当设置了 cli.enabled 或隐式自动选择处于活动状态时,CLI 尝试会被前置。

默认回退行为:仅当未配置 API 密钥时,顺序为 claude, gemini, codex, agent, openclaw, opencode, copilot ,并记住/优先使用最后一个成功的提供商( ~/.summarize/cli-state.json )。Antigravity 和 pi 是加入的,除非您将它们添加到 cli.autoFallback.order 。

网站提取(Firecrawl + Markdown)

非 YouTube URL 会经过 fetch -> extract 管道。当直接 fetch/extract 被阻止或内容太少时, –firecrawl auto 可以回退到 Firecrawl(如果已配置)。

–firecrawl off|auto|always (默认 auto )

–extract –format md|text (默认 text ;如果省略 –format ,则 –extract 对非 YouTube URL 默认为 md )

–markdown-mode off|auto|llm|readability (默认 readability )

YouTube 字幕

–youtube auto 首先尝试尽力而为的网页字幕端点。当字幕不可用时,回退到:

yt-dlp + Whisper(如果 yt-dlp 可用)

Android VR 直接音频 + 配置的转写链

Apify(如果设置了 APIFY_API_TOKEN )

带有说话人标签的 YouTube、本地音频/视频和直接媒体 URL 字幕可通过 –diarize 获得。

幻灯片提取

提取幻灯片截图(通过 ffmpeg 进行场景检测)和可选 OCR。需要 yt-dlp 用于 YouTube 视频下载/流解析, tesseract 仅在使用 –slides-ocr 时需要。

summarize "https://www.youtube.com/watch?v=…" –slides
summarize "https://www.youtube.com/watch?v=…" –slides –slides-ocr
summarize "/path/to/video.webm" –slides

输出写入 ./slides/<sourceId>/ (或 –slides-dir )。OCR 结果包含在 JSON 输出中,并存储在 slides.json 中。

媒体转写(Whisper)

本地音频/视频文件先被转写,然后进行摘要。 –video-mode transcript 强制直接媒体 URL 首先通过 Whisper。自动模式在配置时首先尝试 Groq,然后尝试本地 ONNX/ whisper.cpp ,再尝试云端回退。配置本地 ONNX/ whisper.cpp 用于仅本地转写;否则设置 GROQ_API_KEY 、 ASSEMBLYAI_API_KEY 、 GEMINI_API_KEY 、 OPENAI_API_KEY 、 FAL_KEY 或 DEEPGRAM_API_KEY 之一。

本地 ONNX 转写(Parakeet/Canary)

Summarize 可以通过您提供的本地 CLI 使用 NVIDIA Parakeet/Canary ONNX 模型。自动选择在配置时首先尝试 Groq,然后尝试 ONNX,再尝试 whisper.cpp 和其余云端回退。

设置助手: summarize transcriber setup

自动选择:设置 SUMMARIZE_ONNX_PARAKEET_CMD 或 SUMMARIZE_ONNX_CANARY_CMD

选择本地转写阶段: –transcriber parakeet|canary|whisper|auto

已验证的播客服务(2026-07-17)

Apple Podcasts

Spotify

小宇宙

Amazon Music / Audible 播客页面

Podbean

Podchaser

RSS 订阅(可用时支持 Podcasting 2.0 字幕)

嵌入式 YouTube 播客页面(例如 JREPodcast)

翻译路径

–language/–lang 控制摘要的输出语言(以及其他 LLM 生成文本)。默认值为 auto 。当输入是音频/视频时,CLI 需要先获得字幕,来源可以是现有字幕(YouTube 字幕、Podcasting 2.0 RSS)或 Whisper 转写回退。

配置

单一配置文件位置: ~/.summarize/config.json

运行 summarize status 以检查有效默认模型、配置的预设和模型提供商。

支持的键:

{
"model": { "id": "openai/gpt-5-mini" },
"env": { "OPENAI_API_KEY": "sk-…" },
"output": { "length": "long" },
"ui": { "theme": "ember" }
}

也支持:

model: { "mode": "auto" } (自动模型选择 + 回退)

model.rules (自定义候选项/排序)

models (定义可通过 –model <preset> 选择的预设)

env (通用的环境变量默认值;进程环境变量仍然优先)

apiKeys (旧版快捷方式,映射到环境变量名称;新配置建议使用 env )

output.length (默认 long )

cache.media (媒体下载缓存:默认 TTL 7 天,上限 2048 MB)

media.videoMode: "auto"|"transcript"|"understand"

media.embeddedVideo: "auto"|"off"|"prefer"|"both" (默认 auto )

slides.enabled / slides.max / slides.ocr / slides.dir ( –slides 的默认值)

ui.theme: "aurora"|"ember"|"moss"|"mono"

openai.useChatCompletions: true

openai.serviceTier: "fast"|"priority"|"flex"

openai.thinking / openai.reasoningEffort: "none"|"low"|"medium"|"high"|"xhigh"

openai.textVerbosity: "low"|"medium"|"high"

注意:配置以宽松方式解析(JSON5),但不允许注释。未知键将被忽略。

优先级:

–model

SUMMARIZE_MODEL

~/.summarize/config.json

默认值( auto )

环境变量

设置与您选择的 –model 匹配的密钥:

OPENAI_API_KEY (用于 openai/… )

NVIDIA_API_KEY (用于 nvidia/… )

MINIMAX_API_KEY (用于 minimax/… )

ANTHROPIC_API_KEY (用于 anthropic/… )

XAI_API_KEY (用于 xai/… )

Z_AI_API_KEY (用于 zai/… ;支持 ZAI_API_KEY 别名)

GEMINI_API_KEY (用于 google/… )—— 也接受 GOOGLE_GENERATIVE_AI_API_KEY 和 GOOGLE_API_KEY

OpenAI 兼容聊天补全切换:

OPENAI_USE_CHAT_COMPLETIONS=1

UI 主题:

SUMMARIZE_THEME=aurora|ember|moss|mono

SUMMARIZE_TRUECOLOR=1 (强制 24 位 ANSI)

SUMMARIZE_NO_TRUECOLOR=1 (禁用 24 位 ANSI)

OpenRouter(OpenAI 兼容):

设置 OPENROUTER_API_KEY=…

建议通过模型 ID 强制使用 OpenRouter: –model openrouter/<author>/<slug>

内置预设: –model free (使用一组默认的 OpenRouter :free 模型)

NVIDIA API Catalog:

设置 NVIDIA_API_KEY=…

可选: NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1

积分:API Catalog 试用版在注册时赠送 1000 个免费 API 积分

Z.AI (OpenAI 兼容):

Z_AI_API_KEY=… (或 ZAI_API_KEY=… )

可选的基础 URL 覆盖: Z_AI_BASE_URL=…

MiniMax(OpenAI 兼容):

设置 MINIMAX_API_KEY=…

可选的基础 URL 覆盖: MINIMAX_BASE_URL=… (默认 https://api.minimax.io/v1 )

可选服务:

FIRECRAWL_API_KEY (网站提取回退)

YT_DLP_PATH (yt-dlp 二进制文件路径)

GROQ_API_KEY (Groq Whisper 转写)

ASSEMBLYAI_API_KEY (AssemblyAI 转写)

ELEVENLABS_API_KEY (ElevenLabs Scribe v2 说话人识别)

GEMINI_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY / GOOGLE_API_KEY (Gemini 转写)

SUMMARIZE_GEMINI_TRANSCRIPTION_MODEL (可选的 Gemini 模型覆盖;默认 gemini-2.5-flash )

OPENAI_API_KEY / OPENAI_WHISPER_BASE_URL (OpenAI Whisper 转写)

FAL_KEY (FAL AI API 密钥)

DEEPGRAM_API_KEY (Deepgram API 密钥)

SUMMARIZE_DEEPGRAM_TRANSCRIPTION_MODEL (可选的 Deepgram 模型覆盖;默认 nova-3 )

APIFY_API_TOKEN (YouTube 字幕回退)

summarize refresh-free

重新生成 free 预设( ~/.summarize/config.json 中的 models.free ),通过以下步骤:

获取 OpenRouter /models ,过滤出 :free 模型

跳过看起来非常小的模型(默认 <27B)

测试哪些模型返回非空文本

选择一组智能和快速的模型混合

精炼时序并将排序后的列表写回

如果 –model free 停止工作,运行:

summarize refresh-free

标志:

–runs 2 (默认):每个选中的模型额外运行次数

–smart 3 (默认):优先选择智能模型的数量(其余由最快模型填充)

–min-params 27b (默认):忽略推断参数小于 N 十亿的模型

–max-age-days 180 (默认):忽略早于 N 天的模型(设为 0 禁用)

–set-default :同时将 ~/.summarize/config.json 中的 "model" 设置为 "free"

模型限制

CLI 使用 LiteLLM 模型目录来获取模型限制(如最大输出令牌):

从以下地址下载: https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json

缓存位置: ~/.summarize/cache/

其他文档

CLI 提供商和配置

自动模型规则

网站提取

YouTube 处理

媒体管道

配置模式和优先级

故障排除

"Receiving end does not exist":Chrome 尚未注入内容脚本。扩展详情 -> 站点访问 -> 在所有站点上(或允许此域名)。重新加载标签页一次。

"Failed to fetch" / 守护进程无法访问:

summarize daemon status

对于非默认端口,确认 Options → Runtime → Daemon → Port 与守护进程配置一致。

日志: ~/.summarize/logs/daemon.err.log

许可证:MIT

试试这样做

  • 请总结这个 YouTube 视频的核心观点,并提取其中的关键幻灯片截图。
  • 请总结这个网页的内容,并列出其中的三个核心要点。
  • 请分析这份 PDF 文档,并为我提供一份详细的摘要。

作者:Peter Steinberger 所有人 / 职场人 | GitHub Stars 6.5K | 标签:写作文案 视频 已认证 开源许可: MIT

来源:colaos.ai | Skill ID:summarize