Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Video Summarizer(视频摘录+Notion存档)

v1.0.10

将 B 站/YouTube/小红书/抖音视频转换为结构化 Notion 总结文档,自动上传截图,一键推送 Notion

2· 251·1 current·1 all-time
byhaozhenjie@ajayhao

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for ajayhao/video-summarizer.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Video Summarizer(视频摘录+Notion存档)" (ajayhao/video-summarizer) from ClawHub.
Skill page: https://clawhub.ai/ajayhao/video-summarizer
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: DASHSCOPE_API_KEY, ALIYUN_OSS_AK, ALIYUN_OSS_SK, ALIYUN_OSS_BUCKET_ID, ALIYUN_OSS_ENDPOINT
Required binaries: ffmpeg (>=6.1), yt-dlp (>=2026.03.17)
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install video-summarizer

ClawHub CLI

Package manager switcher

npx clawhub@latest install video-summarizer
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Declared binaries (ffmpeg, yt-dlp) and Python dependencies (requests, oss2, python-dotenv, biliup) are appropriate for downloading videos, extracting audio, transcribing, uploading to OSS and calling an AI API. Required env vars (DASHSCOPE_API_KEY and ALIYUN_OSS_*) directly map to the AI analysis and OSS upload features described. The use of biliup for Bilibili cookies is declared and present in scripts.
Instruction Scope
SKILL.md and scripts instruct the agent to: read ~/.openclaw/.env, possibly read/write ~/.cookies/bilibili_cookies.txt, download videos (yt-dlp or custom douyin downloader), extract audio, send transcript/subtitles/metadata to DashScope (DASHSCOPE API) and optionally to Groq for transcription, upload screenshots to Aliyun OSS, and optionally call Notion. These actions are consistent with the skill's purpose but involve sending user content and metadata to third-party services and writing sensitive cookies/API keys to disk — the behaviour is expected but privacy-sensitive and should be used with appropriate keys and test data.
Install Mechanism
Install metadata proposes platform package managers (brew/apt) for ffmpeg and yt-dlp and pip packages for Python dependencies. No arbitrary binary downloads or obscure URLs are used in the install spec. The pip packages are standard for this functionality (requests, oss2, python-dotenv, biliup).
Credentials
Required env variables (DASHSCOPE_API_KEY and ALIYUN_OSS_AK/SK/Bucket/Endpoint) are proportionate to the described capabilities. However, ALIYUN_OSS_AK/SK are powerful credentials — the skill requests full access info to a bucket and SK is sensitive; the README/ SKILL.md recommends minimal-permission buckets but you must enforce that. Notion and GROQ keys are optional (documented). The skill reads ~/.openclaw/.env and writes cookie files to ~/.cookies — both contain sensitive tokens and session data.
Persistence & Privilege
The skill does not request always:true or other elevated platform privileges. It stores configuration and cookie files under user home but does not alter other skills or global agent settings. Autonomous invocation is allowed (platform default) but not combined with unusual privileges in this package.
Assessment
This skill appears to do what it says: download videos, transcribe/analyze with a third‑party AI (DashScope), upload screenshots to Aliyun OSS, and optionally push results to Notion. Before installing: - Do not put production or broad-scoped secrets into ~/.openclaw/.env. Create a dedicated OSS sub-account/key with only PutObject/GetObject on a single bucket and, if possible, set an IP whitelist. - Treat DASHSCOPE_API_KEY, GROQ_API_KEY and NOTION_API_KEY as sensitive — use test or throwaway keys for initial evaluation. Transcripts and extracted text are sent to DashScope/Groq. - Bilibili cookies are stored in ~/.cookies/bilibili_cookies.txt; these contain session tokens. Only generate/use them on a machine you control and delete them when not needed. - The skill requires making uploads public-read for OSS images (SKILL.md recommends public-read). If that is unacceptable for your data/privacy, do not provide a public bucket or modify the upload script to keep objects private. - Review the scripts (especially douyin_downloader.py, video-summarize.sh, upload-to-oss.py, and push-to-notion.py) and test in an isolated environment (VM/container) with non-sensitive videos before use. - If you need higher assurance, ask the maintainer for a signed release or a provenance link (source repo/homepage) — the package lists a GitHub URL in docs but the skill registry entry shows 'unknown' source and no homepage; this lowers confidence and you may prefer to run it in a sandbox first.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎬 Clawdis
Binsffmpeg (>=6.1), yt-dlp (>=2026.03.17)
EnvDASHSCOPE_API_KEY, ALIYUN_OSS_AK, ALIYUN_OSS_SK, ALIYUN_OSS_BUCKET_ID, ALIYUN_OSS_ENDPOINT

Install

Install ffmpeg and yt-dlp (brew)
Bins: ffmpeg, yt-dlp
brew install ffmpeg yt-dlp
latestvk97aj5r05p62ebv397dsdhgb7184tyha
251downloads
2stars
11versions
Updated 1w ago
v1.0.10
MIT-0

Video Summarizer — OpenClaw Skill

将 B 站/YouTube/小红书/抖音视频转换为结构化 Notion 总结文档,自动上传截图,一键推送 Notion。

版本: 1.0.10
发布: 2026-04-14
许可: MIT
作者: Ajay Hao


⚠️ 安全提示

  • 本技能会将视频内容发送至第三方 AI 服务进行分析
  • 建议使用专用 API Key(非生产环境)
  • OSS Bucket 请配置最小权限(仅写入/读取)
  • B 站 Cookies 仅在你控制的设备上使用

📖 技能描述

核心能力

  • 🎬 多平台支持: B 站、YouTube、小红书、抖音
  • 📝 智能分析: AI 提取关键概念、核心要点、注意事项
  • 📸 截图嵌入: 基于 AI 分析结果自动生成关键帧截图
  • ☁️ 图床集成: 阿里云 OSS 自动上传,永久链接
  • 🚀 一键推送: 自动推送 Notion 数据库

技术特性

  • 双模式转录: Plan A(官方字幕)优先,Plan B(语音转录)兜底
  • 并行优化: 字幕下载与视频下载并行执行,节省 32% 时间
  • GPU 自适应: 自动检测显存,选择最优 Whisper 模型
  • 断点续跑: 支持从中断点恢复,避免重复处理
  • 四层标签: 标题 hashtag → 元数据 → AI 关键词 → 默认值

🔐 安全与隐私说明

敏感数据处理

文件/路径用途敏感性用户控制
~/.cookies/bilibili_cookies.txtB 站官方字幕获取高(Session Token)用户主动扫码生成,可随时删除
~/.openclaw/.envAPI Keys 存储用户自行配置,skill 不修改
/tmp/video-summarizer-*/临时输出处理完成后可手动清理

外部服务端点

服务域名用途传输数据
DashScopedashscope.aliyuncs.comAI 分析字幕文本、元数据
阿里云 OSSoss-cn-shanghai.aliyuncs.com图床上传截图、封面图
Groqapi.groq.com备用转录(可选,需代理)音频片段
Bilibilibilibili.com视频下载/字幕无(仅下载)
YouTubeyoutube.com视频下载/字幕无(仅下载)
抖音douyin.com / iesdouyin.com视频下载无(仅下载)

说明:

  • Groq API 为可选加速方案,未配置时自动降级到本地 Faster-Whisper
  • 抖音专用下载器 douyin_downloader.py 已移除硅基流动依赖,使用与主流程一致的 Groq API + 本地降级方案

最小权限建议

  • OSS Bucket: 创建专用 Bucket,仅授予 PutObject/GetObject 权限
  • API Keys: 使用子账号 Key,设置 IP 白名单
  • 测试环境: 首次使用建议在隔离环境测试

🎯 平台支持详情

Bilibili(完整支持)

字幕: ✅ 官方字幕 + 自动字幕
语音转录: ✅ 支持(Plan B)
Cookies: 推荐(获取官方字幕)
下载工具: yt-dlp (>=2026.03.17)

操作步骤

# 1. 扫码登录(首次使用,获取官方字幕)
cd ~/.openclaw/skills/video-summarizer/scripts
./bili-login.sh

# 2. 处理视频
./video-summarize.sh "https://www.bilibili.com/video/BV1xxxx"

# 3. 查看结果
cat /tmp/video-summarizer-*/summary.md

说明:

  • Cookies 文件:~/.cookies/bilibili_cookies.txt
  • 无 Cookies 时使用 Plan B 语音转录
  • 支持 b23.tv 短链

YouTube(完整支持)

字幕: ✅ 自动字幕(多语言)
语音转录: ✅ 支持(Plan B)
Cookies: ❌ 不需要
下载工具: yt-dlp (>=2026.03.17)

操作步骤

# 直接处理(无需登录)
./video-summarize.sh "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# 指定输出目录
./video-summarize.sh "https://youtu.be/dQw4w9WgXcQ" /tmp/output

说明:

  • 需网络可达(可能需要代理)
  • 优先下载英文字幕,无则用语音转录
  • 支持 youtu.be 短链

小红书(基本支持)

字幕: ❌ 无字幕
语音转录: ✅ 唯一方式(Plan B)
Cookies: ❌ 不需要
下载工具: yt-dlp (>=2026.03.17)

操作步骤

# 直接处理(自动使用 Plan B 语音转录)
./video-summarize.sh "https://www.xiaohongshu.com/explore/xxxx"

# 或短链
./video-summarize.sh "https://xhslink.com/o/xxxx"

说明:

  • 必须使用 Plan B 语音转录
  • 推荐配置 GROQ_API_KEY 加速转录
  • 自动上传封面图到 OSS

抖音(完整支持)

字幕: ❌ 无字幕
语音转录: ✅ 唯一方式(Plan B)
Cookies: ❌ 不需要(专用下载器)
下载工具: douyin_downloader.py

操作步骤

# 直接处理(专用下载器,无需 Cookies)
./video-summarize.sh "https://www.douyin.com/video/7234567890"

# 支持短链
./video-summarize.sh "https://v.douyin.com/abc123/"

说明:

  • 使用专用下载器 douyin_downloader.py(仅用于获取元数据和下载视频)
  • 无反爬限制,无需 Cookies
  • 语音转录使用主流程的 transcribe-audio.py(Groq API + 本地降级)
  • douyin_downloader.py 的 extract 模式已移除硅基流动依赖,改用 Groq API + 本地降级

⚙️ 配置详解

环境变量(~/.openclaw/.env)

# ========== 必需配置 ==========

# 阿里云 OSS 图床
ALIYUN_OSS_AK=your_access_key_id
ALIYUN_OSS_SK=your_access_key_secret
ALIYUN_OSS_BUCKET_ID=your_bucket_name
ALIYUN_OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com

# AI 分析(DashScope API)
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx

# ========== 可选配置 ==========

# Notion 自动推送(可选)
NOTION_API_KEY=nop_xxxxxxxxxxxxxxxx
NOTION_VIDEO_SUMMARY_DATABASE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  # 单个数据库 ID

# 语音转录加速(Groq API,可选)
# 国内需代理访问,如未配置自动降级到本地 Faster-Whisper
# 不配置此项不影响使用
# 注意:douyin_downloader.py 也使用此变量(已移除硅基流动依赖)
GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxx

# 本地 Whisper 模型(有 GPU 时自动检测)
WHISPER_MODEL=base  # tiny/base/small/medium/large

OSS Bucket 要求

  • 访问权限: 公开可读(直接 URL 访问)
  • CORS 配置: 允许跨域访问(Notion 嵌入需要)
  • 存储类型: 标准存储(低频访问会影响加载速度)

Notion 数据库配置

数据库属性(Properties)

属性名类型说明来源
Titletitle视频标题(≤200 字符)Markdown # 标题
Sourcerich_text平台来源(Bilibili/YouTube/小红书/抖音)metadata.platform / URL 推断
Authorrich_textUP 主/作者名称Markdown **UP 主:** / metadata.uploader
Urlurl视频原始链接metadata.webpage_url / Markdown **链接:**
Tagsmulti_select标签(最多 5 个)三层策略提取
PubDatedate发布日期metadata.upload_date
Lengthrich_text视频时长(MM:SS 格式)metadata.duration_string
Coverfiles封面图片(可选,外部 URL)metadata.thumbnail
tsdate创建时间戳(ISO 8601,东八区 +08:00)当前时间

配置步骤

  1. 创建数据库(Table 视图)

  2. 添加上述 9 个属性(字段名必须完全匹配)

  3. 获取 Database ID

    • 打开数据库 → 复制 URL 中 ?v= 后的 ID
    • 示例:https://notion.so/your-workspace/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?v=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
    • Database ID = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  4. 配置环境变量

    NOTION_API_KEY=nop_xxxxxxxxxxxxxxxx
    NOTION_VIDEO_SUMMARY_DATABASE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  # 单个数据库
    

数据库视图示例

┌─────────┬──────────┬─────────┬──────┬──────┬─────────┬────────┬───────┬─────────────┐
│ Title   │ Source   │ Author  │ Url  │ Tags │ PubDate │ Length │ Cover │ ts          │
│ title   │ text     │ text    │ url  │ multi│ date    │ text   │ files │ date        │
└─────────┴──────────┴─────────┴──────┴──────┴─────────┴────────┴───────┴─────────────┘

🏗️ 系统架构

处理流程

用户输入 (视频 URL)
       ↓
Step 1: 平台识别 + 元数据
       ↓
┌──────┴──────┐
↓             ↓
Step 2: 字幕   Step 3: 视频下载  ← 并行执行
       ↓             ↓
       └──────┬──────┘
              ↓
Step 4: 文本提取 (VTT → TXT / Plan B 转录)
       ↓
Step 5: AI 分析 (DashScope API - qwen3.5-plus)
       ↓
Step 6: 截图生成 (ffmpeg, 基于 AI 时间戳)
       ↓
Step 7: OSS 上传 (截图 + 封面)
       ↓
Step 8: Markdown 渲染
       ↓
Step 9: Notion 推送 (可选)

技术栈

层级技术
编排层Bash (video-summarize.sh)
分析层Python + DashScope API (qwen3.5-plus)
转录层Groq API (可选) / Faster-Whisper (本地)
工具层yt-dlp (>=2026.03.17), ffmpeg (>=6.1), oss2, requests

数据文件

文件来源用途
metadata.jsonyt-dlp / douyin_downloader视频元数据
transcript.txtVTT 提取 / Plan B 转录纯文本字幕
ai_result.jsonanalyze-subtitles-ai.pyAI 分析结果
screenshot_urls.txtupload-to-oss.py截图 OSS 链接
summary.mdanalyze-subtitles-ai.py最终总结

📋 脚本清单

核心脚本(4 个)

脚本功能
video-summarize.sh主流程编排(Plan A/B 自动选择)
analyze-subtitles-ai.pyAI 分析 + Markdown 渲染
upload-to-oss.pyOSS 图床上传(截图 + 封面)
push-to-notion.pyNotion 推送

平台工具(2 个)

脚本功能
bili-login.shB 站扫码登录(获取 Cookies)
douyin_downloader.py抖音专用下载器(无需 Cookies,转录使用 Groq API + 本地降级)

辅助工具(4 个)

脚本功能
download-audio.shPlan B: 音频下载
transcribe-audio.pyPlan B: 语音转录(GPU 自适应)
check-config.sh配置检查
convert-bili-cookie.pyCookies 格式转换

🎯 Plan A vs Plan B

对比表

项目Plan APlan B
字幕来源平台官方字幕语音转录
准确率90%+80-90%
速度快 (1-2 分钟)较慢 (3-5 分钟)
依赖Cookies(B 站)GPU 或 API Key

各平台使用情况

平台Plan APlan B默认
Bilibili✅ 官方 + 自动✅ 备用Plan A
YouTube✅ 自动字幕✅ 备用Plan A
小红书❌ 无✅ 唯一Plan B
抖音❌ 无✅ 唯一Plan B

Plan B 双层降级方案

1. Groq API (whisper-large-v3) → 云端高速(可选,需配置 GROQ_API_KEY 且网络可达)
   └─ 失败/未配置 → 降级到本地

2. Faster-Whisper (本地) → GPU/CPU 自适应
   ├─ GPU ≥8GB  → large-v2 模型
   ├─ GPU ≥4GB  → medium 模型
   ├─ GPU ≥2GB  → small 模型
   ├─ GPU ≥1GB  → base 模型 (GPU)
   └─ 无 GPU    → base 模型 (CPU)

说明:

  • Groq API 为可选配置,未配置时直接使用本地 Faster-Whisper
  • 本地转录无需任何 API Key,完全离线运行
  • 国内使用 Groq 需配置代理
  • 抖音专用下载器 douyin_downloader.py 也使用此降级方案(已移除硅基流动依赖)

📁 输出文件结构

output/
├── summary.md              # 📝 最终总结(主要成果)
├── screenshot_urls.txt     # 🔗 截图 OSS 链接
├── metadata.json           # 📊 视频元数据
├── transcript.txt          # 📄 纯文本字幕
├── screenshots/            # 📸 截图原图(本地备份)
├── cover.jpg              # 🖼️ 封面图(本地备份)
└── *.log                   # 📋 日志文件(verbose 模式)

OSS 路径规范

截图路径: /screenshots/<平台>/<视频 ID>_<时间戳>/<截图文件>

screenshots/bilibili/BV1eTPEzNEqf_20260405_053203/screenshot_01.jpg
screenshots/douyin/7234567890_20260405_175010/chapter_01.jpg
screenshots/xhs/69c1493b000000002003b3ce_20260405_152852/screenshot_01.jpg
screenshots/youtube/dQw4w9WgXcQ_20260405_120000/screenshot_01.jpg

封面路径: thumbnails/<平台>/<视频 ID>/cover.jpg

thumbnails/bilibili/BV1eTPEzNEqf/cover.jpg
thumbnails/douyin/7234567890/cover.jpg

🏷️ 标签策略

四层提取策略

1. 标题 hashtag → #([\w\u4e00-\u9fa5]+)
   示例:"#AI 教程 #大模型原理" → ["AI 教程", "大模型原理"]

2. 元数据 tags → yt-dlp 提取的原始标签
   示例:["原理", "AI", "教程", "claude", "大模型"]

3. AI 关键词 → AI 分析提取的核心概念
   示例:["Transformer", "注意力机制", "深度学习"]

4. 默认值 → 视频总结/知识分享/学习
   当前三层都为空时使用

标签规则

  • 长度: 2-15 字符(兼容英文如 "openclaw")
  • 数量: 最多 5 个
  • 去重: 自动去重,保留唯一值
  • 优先级: 1 → 2 → 3 → 4

🔧 故障排查

Cookies 过期(B 站)

# 重新扫码登录
./bili-login.sh

配置检查

# 运行检查脚本
./check-config.sh

查看详细日志

# 使用 verbose 模式
./video-summarize.sh "URL" --verbose

# 查看错误日志
cat /tmp/output/error.log

常见问题

问题原因解决方案
截图 404OSS 路径不匹配python3 upload-to-oss.py auto /tmp/output
标签默认值标签提取失败检查标题 hashtag 格式 #标签
转录失败无 GPU/API 配额检查 GROQ_API_KEY,或确保 faster-whisper 已安装
Notion 推送失败API Key 过期更新 NOTION_API_KEY(可选功能,仅 --push 需要)
并行任务失败依赖缺失检查 ffmpeg / yt-dlp 安装(版本要求:ffmpeg >= 6.1, yt-dlp >= 2026.03.17)
抖音下载失败链接格式错误使用完整 URL 或 v.douyin.com 短链
抖音文案提取失败无 API Keydouyin_downloader.py 会自动降级到本地 Faster-Whisper,无需单独配置

📊 性能基准

处理时间(10 分钟视频)

平台Plan APlan B(本地)Plan B(Groq)
Bilibili~90 秒~150 秒~120 秒
YouTube~90 秒~150 秒~120 秒
小红书-~150 秒~120 秒
抖音-~150 秒~120 秒

优化效果: 并行优化后节省约 30 秒(32%↓)


📝 输出格式(summary.md)

  1. 标题 + Tags + Author
  2. 📝 Note — AI 概述(150-250 字)
  3. 📺 视频信息 — 链接/时长/播放数据
  4. 📚 关键概念 — 术语表格(3-5 个,按时间排序)
  5. 🎯 核心要点 — emoji+ 描述 + 时间戳(5-8 个)
  6. 🎬 视频章节 — 标题 + 时间轴 + 截图
  7. ⚠️ 注意事项 — 特别提醒(2-4 个)
  8. 💡 总结 — AI 归纳(200-300 字)

🔜 后续优化

计划中

  • 代码重构(提取公共函数)
  • 单元测试(核心函数覆盖率 80%+)
  • 性能优化(截图并行上传、结果缓存)
  • 支持更多平台(TikTok、Instagram Reels)

📞 更多文档


维护人: Ajay Hao
项目地址: https://github.com/AjayHao/video-summarizer
OpenClaw Skill: 已发布到 clawdhub

Comments

Loading comments...