SuperAPI AI 工具集

video summarizer

通用与其它

查看项目

更新于 10-16 16:27

技能介绍

用途

该技能用于转写并总结视频内容,通过运行 python -m summarizer 命令行工具来完成任务。它处理 YouTube(字幕或音频)、本地文件、Google Drive 和 Dropbox 来源。转写文本被分块,通过兼容 OpenAI 的 LLM 提供商并行处理,并合并为最终摘要。

重要提示:始终使用 CLI 命令,不要尝试直接抓取、爬取或下载视频 URL(例如使用 webfetch 或 curl)。CLI 内部处理所有下载、转写和总结工作。

快速开始(三步)

第 1 步——运行 CLI:

python -m summarizer --source "VIDEO_URL"

该工具使用 summarizer.yaml 中的默认提供商(已配置好)。基本用法无需额外参数。

第 2 步——读取输出文件: CLI 成功后会打印输出文件名,文件始终保存在相对于项目工作目录的 summaries/ 子目录中。例如:

[+] Saved watch_20260207_234533.md

要读取的完整路径为:summaries/watch_20260207_234533.md

第 3 步——向用户展示结果。

文件位置

所有路径均相对于项目工作目录(即 summarizer.yaml 和 setup.py 所在位置)。

  • 配置:./summarizer.yaml
  • API 密钥:./.env
  • 提示模板:./summarizer/prompts.json
  • 输出摘要:./summaries/<filename>.md
  • CLI 入口:python -m summarizer

不要在用户家目录或技能目录中查找 .env 或配置文件,它们在项目根目录。

CLI 参考

python -m summarizer [OPTIONS]

必需参数:

  • --source:一个或多个视频 URL 或文件路径

提供商选项:

  • --provider:summarizer.yaml 中命名的提供商,默认为 YAML 中的 default_provider
  • --base-url:API 端点 URL(覆盖提供商),默认来自 YAML
  • --model:模型标识符(覆盖提供商),默认来自 YAML
  • --api-key:API 密钥(覆盖 .env 自动匹配),默认从 .env 自动获取

来源选项:

  • --type:YouTube Video、Video URL、Local File、Google Drive Video Link、Dropbox Video Link,默认 YouTube Video
  • --force-download:跳过 YouTube 字幕,改为下载音频,默认 False
  • --transcription:Cloud Whisper (Groq API) 或 Local Whisper,默认 Cloud Whisper
  • --whisper-model:tiny、base、small、medium、large,默认 tiny
  • --language:auto 会选择第一个可用的 YouTube 字幕轨道,并让 Whisper 检测语言;显式代码则严格使用,默认 auto

处理选项:

  • --prompt-type:摘要风格(见下文)
  • --chunk-size:每段文本的字符数
  • --parallel-calls:并发 API 请求数,默认 30
  • --max-tokens:每块最大输出 token 数,默认 4096

输出选项:

  • --output-dir:保存摘要的目录,默认 summaries
  • --output-format:markdown、json 或 html,默认 markdown
  • --no-save:只打印到标准输出,不保存文件,默认 False
  • --verbose, -v:详细进度输出,默认 False

警告:不要在 Windows 上使用 --no-save。存在已知编码缺陷,摘要中的 Unicode 字符会导致标准输出崩溃。始终让工具保存到文件,然后读取文件。

配置选项:

  • --config:配置文件路径(默认自动检测)
  • --no-config:忽略配置文件,仅使用 CLI 参数
  • --init-config:生成示例 summarizer.yaml 并退出

摘要风格

配合 --prompt-type 使用。定义在 summarizer/prompts.json 中。

  • Questions and answers:从内容中提取问答
  • Summarization:带标题的标准总结
  • Distill Wisdom:提取想法、引用和参考
  • DNA Extractor:核心真相提炼,最多 200 字
  • Fact Checker:用 TRUE/FALSE/MISLEADING 标签验证主张
  • Tutorial:从内容中提取分步说明
  • Research:结合更广泛背景进行深度分析
  • Reflections:超出所述内容进行哲学延伸
  • Mermaid Diagram:以 Mermaid.js 语法生成可视化概念图
  • Essay Writing in Paul Graham Style:以 Paul Graham 风格写 250 字文章
  • Only grammar correction with highlights:语法清理并用粗体高亮

示例

总结 YouTube 视频(最简形式):

python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID"

指定提供商:

python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID" --provider gemini

用 Distill Wisdom 提取关键见解:

python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --provider openrouter \
  --prompt-type "Distill Wisdom"

用 Perplexity 核查视频主张:

python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --base-url "https://api.perplexity.ai" \
  --model "sonar-pro" \
  --prompt-type "Fact Checker"

从讲座生成 Mermaid 图表:

python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --provider gemini \
  --prompt-type "Mermaid Diagram"

总结本地文件:

python -m summarizer \
  --type "Local File" \
  --source "./lecture.mp4" \
  --provider groq

批量处理多个视频:

python -m summarizer \
  --source "URL1" "URL2" "URL3" \
  --provider gemini \
  --prompt-type "Summarization"

不带配置文件使用(所有参数显式指定):

python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --base-url "https://openrouter.ai/api/v1" \
  --model "google/gemini-2.0-flash-exp:free" \
  --api-key "sk-or-v1-YOUR_KEY" \
  --prompt-type "Tutorial" \
  --no-config

读取输出

运行 CLI 后,始终从 summaries/ 读取输出文件:

# CLI 会打印类似内容:
# [+] Saved watch_20260207_234533.md
#
# 文件位于:
summaries/watch_20260207_234533.md

对完整路径使用 Read 工具:summaries/<filename>(相对于项目根目录)。

多步工作流

如需全面分析,可在同一视频上串联多种风格:

  1. 先用 Summarization 获得快速概览
  2. 用 Distill Wisdom 提取关键见解
  3. 运行 Fact Checker(最好配合 Perplexity)验证主张
  4. 生成 Mermaid Diagram 作为可视化参考

错误处理

  • 如果找不到 API 密钥,工具会在 .env 中查找与提供商 URL 关键词匹配的密钥
  • 如果 YouTube 字幕不可用,工具会回退到下载音频 + Whisper 转写
  • --language auto 不会强制英语。它使用第一个可用的 YouTube 字幕轨道,并让 Whisper 检测语言
  • 使用 --verbose 查看详细进度并调试问题
  • Cloud Whisper 需要 Groq API 密钥(有免费额度)

配置文件

均位于项目工作目录:

  • summarizer.yaml:提供商定义(base_url、model、chunk-size)和默认值
  • .env:API 密钥,按 URL 关键词自动匹配(例如 generativelanguage = YOUR_KEY)
  • summarizer/prompts.json:使用 {text} 作为转写占位符的提示模板

测试

python -m pytest tests/ -v