video-summarizer

Multi-platform video transcript extraction and AI-powered summarization (YouTube, Bilibili, extensible). Use when you need to summarize videos, extract transcripts, scan channels, or generate daily video digests.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "video-summarizer" with this command: npx skills add mcdowell8023/wansan-video-summarizer

Video Summarizer Skill

多平台视频摘要工具,支持 YouTube 和 B站(未来可扩展更多平台),支持单个视频、频道扫描、每日批量处理。

功能

  • ✅ 获取 YouTube 视频信息(yt-dlp)
  • ✅ 提取字幕/transcript(youtube-transcript-api)
  • B站视频下载 + 语音转录(yt-dlp + faster-whisper,本地,无需 API Key)
  • B站关键帧提取(ffmpeg,每 30 秒一帧,供 agent 视觉分析)
  • ✅ 生成深度摘要(LLM API)
  • ✅ 输出 JSON 格式(agent 自行处理发送)
  • ✅ 支持多频道配置
  • ✅ 过滤 Shorts(< 5 分钟)
  • 🔮 架构可扩展:新增平台只需添加 extractor 模块

安装

cd ~/.openclaw/skills/video-summarizer
./setup.sh

安装完成后会引导你选择默认图文模式(可随时重新配置):

📋 选择默认图文模式:
  1) text-only    - 纯文字,不抽帧(最快)
  2) auto-insert  - 自动选帧插入文档(推荐平衡)
  3) ai-review    - AI 智能选图(默认,最佳效果,多消耗 ~5-8k token)
请选择 [1/2/3] (默认 3):

配置写入 config/settings.json,可随时运行 video-summarizer --setup 重新配置。

跨平台依赖安装

Linux(当前已支持)

sudo apt install ffmpeg
pip install faster-whisper yt-dlp youtube-transcript-api innertube

macOS

brew install ffmpeg
pip install faster-whisper yt-dlp youtube-transcript-api innertube

Windows

# 安装 ffmpeg(推荐 chocolatey 或 scoop)
choco install ffmpeg
# 或 scoop install ffmpeg

pip install faster-whisper yt-dlp youtube-transcript-api innertube

注意事项

  • 路径分隔符:脚本已使用 path.join(),跨平台兼容
  • faster-whisper:Windows 下需要 CUDA 或 CPU 模式(无 CUDA 时自动 fallback CPU,速度较慢)
  • Chrome cookies:各平台路径不同,yt-dlp 会自动处理
  • Python 版本:需要 Python 3.9+

核心依赖说明

依赖用途
yt-dlp视频下载、信息获取(YouTube + B站)
youtube-transcript-apiYouTube 字幕提取
innertube绕过 YouTube API 限流
faster-whisperB站语音转文字(本地,无需 API)
ffmpeg音频提取 + 关键帧截取(系统级)

工作原理

Skill 使用多种方法获取字幕,避免 YouTube 限流:

  1. innertube ANDROID client + Cloudflare proxy - 主要方法,绕过限流
  2. youtube-transcript-api - 备用方法

B站视频使用 yt-dlp 下载音频 → faster-whisper 本地转录,全程无需外部 API。

使用

三种图文模式

模式说明额外 token适用场景
text-only纯文字,不抽帧0快速摘要、纯文字需求
auto-insert固定规则选帧,按时间戳插入(帧偏移+5s避转场)~0平衡速度与图文效果
ai-review默认基于文章结构反向选图,可补帧/删帧/替换~5-8k最佳图文效果

ai-review 流程(文章驱动选图):

  1. Skill 抽帧 → 固定规则多选(~15-20帧,比最终需要多50%)
  2. 先写纯文字版文档(分好章节)
  3. 逐章判断:需要配图?→ 从已选帧匹配 / 补帧 / 跳过
  4. 输出精选帧 + 画面描述 + 对应章节

auto-insert 流程:

  1. Skill 抽帧 → 固定规则选帧(多选留余量)
  2. 帧时间偏移 +5s(避开转场)
  3. 按时间戳匹配章节,全部插入

通过以下方式指定模式(优先级从高到低):

  1. CLI 参数 --mode
  2. 环境变量 SUMMARY_MODE
  3. config/settings.json 中的 default_mode

1. 单个视频摘要(YouTube)

video-summarizer --url "https://www.youtube.com/watch?v=VIDEO_ID"

2. B站视频摘要

video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx"

# 短链接也支持(自动跟随跳转)
video-summarizer --url "https://b23.tv/xxxxx"

# 指定图文模式
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --mode text-only
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --mode auto-insert
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --mode ai-review

# 自定义 whisper 模型(精度更高,但更慢)
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --whisper-model large-v3

# 跳过关键帧提取(等效 --mode text-only)
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --no-frames

# 自定义关键帧间隔(默认30秒一帧)
video-summarizer --url "https://www.bilibili.com/video/BV1xxxxx" --frame-interval 60

3. 频道扫描(过去 24 小时)

video-summarizer --channel "UC_x5XG1OV2P6uZZ5FSM9Ttw" --hours 24

4. 每日批量处理(Cron 用)

video-summarizer --config /path/to/channels.json --daily --output /tmp/video_daily.json

配置文件格式

channels.json:

{
  "channels": [
    {
      "name": "Lex Fridman",
      "id": "UCSHZKyawb77ixDdsGog4iWA",
      "url": "https://www.youtube.com/@lexfridman"
    },
    {
      "name": "Y Combinator",
      "id": "UCcefcZRL2oaA_uBNeo5UOWg",
      "url": "https://www.youtube.com/@ycombinator"
    }
  ],
  "hours_lookback": 24,
  "min_duration_seconds": 300,
  "max_videos_per_channel": 5
}

输出格式

{
  "generated_at": "2026-02-14T11:17:00Z",
  "items": [
    {
      "title": "视频标题",
      "url": "https://youtube.com/watch?v=...",
      "video_id": "VIDEO_ID",
      "platform": "youtube",
      "channel": "频道名",
      "duration": "15:30",
      "published": "2026-02-14T08:00:00Z",
      "has_transcript": true,
      "summary": "# 摘要内容(markdown)\n\n### 🎯 核心问题..."
    },
    {
      "video_id": "BV1xxxxx",
      "title": "B站视频标题",
      "url": "https://www.bilibili.com/video/BV1xxxxx",
      "platform": "bilibili",
      "has_transcript": true,
      "transcript_path": "/tmp/bili_BV1xxxxx_transcript.txt",
      "frame_files": ["/tmp/bili_BV1xxxxx_frames/frame_001.jpg", "..."],
      "frame_count": 12,
      "summary": "# 摘要内容(markdown)..."
    }
  ],
  "stats": {
    "total_videos": 5,
    "with_transcript": 4,
    "without_transcript": 1
  }
}

环境变量

变量用途必须
LLM_API_URL自定义 LLM API 端点
LLM_API_KEY自定义 LLM API Key
LLM_MODEL自定义模型名
OPENCLAW_GATEWAY_TOKENOpenClaw Gateway token
GITHUB_TOKENGitHub token(有 Copilot 订阅时可用)
POLLINATIONS_API_KEYPollinations API Key
SUMMARY_MODE图文模式:text-only / auto-insert / ai-review
WHISPER_MODELB站 whisper 模型大小(默认 small)
FRAME_INTERVALB站关键帧间隔秒数(默认 30)
FRAME_TIME_OFFSET帧时间戳偏移秒数,避开转场(默认 5)

无需任何 Key 也可运行:转录功能不需要 API Key;摘要功能会尝试 Pollinations 免费匿名调用。

故障排查

字幕获取失败

  • 视频可能没有字幕
  • 输出 JSON 中 has_transcript: false
  • Agent 应生成简短摘要(基于标题/描述)

yt-dlp 限流

  • 设置 REQUEST_DELAY_SECONDS (默认 3 秒)
  • 减少 max_videos_per_channel

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

通义晓蜜 - 智能外呼

触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。

Registry SourceRecently Updated
General

Letterboxd Watchlist

Scrape a public Letterboxd user's watchlist into a CSV/JSONL list of titles and film URLs without logging in. Use when a user asks to export, scrape, or mirror a Letterboxd watchlist, or to build watch-next queues.

Registry SourceRecently Updated
General

Seedance Video Generation

Generate AI videos using ByteDance Seedance. Use when the user wants to: (1) generate videos from text prompts, (2) generate videos from images (first frame, first+last frame, reference images), or (3) query/manage video generation tasks. Supports Seedance 1.5 Pro (with audio), 1.0 Pro, 1.0 Pro Fast, and 1.0 Lite models.

Registry SourceRecently Updated
4.2K17jackycser
General

Universal Skills Manager

The master coordinator for AI skills. Discovers skills from multiple sources (SkillsMP.com, SkillHub, and ClawHub), manages installation, and synchronization...

Registry SourceRecently Updated