/SKILL.md
视频学习笔记自动化流程。自动识别视频来源(B 站/YouTube), 调用不同策略生成结构化笔记并上传飞书。 B 站:yt-dlp → Whisper → GLM YouTube:Supadata API → GLM
npx skillsauth add jioup777/bilibili-video-processor video-to-feishuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本 SKILL 用于将 B 站/YouTube 视频自动转化为结构化学习笔记并上传到飞书文档。
支持格式:
https://www.bilibili.com/video/BVxxxxxhttps://www.youtube.com/watch?v=xxxxx输入视频链接
↓
识别来源(B 站 / YouTube)
↓
┌─────────────────┬─────────────────┐
│ B 站 │ YouTube │
├─────────────────┼─────────────────┤
│ yt-dlp 下载音频 │ Supadata API │
│ Whisper 转录 │ 获取转录文本 │
│ GLM 整理笔记 │ GLM 整理笔记 │
└─────────────────┴─────────────────┘
↓
上传飞书文档
video_url="https://www.youtube.com/watch?v=xxxxx"
if [[ "$video_url" == *"bilibili.com"* ]]; then
source="bilibili"
video_id=$(echo "$video_url" | grep -oP 'BV\w+')
elif [[ "$video_url" == *"youtube.com"* ]] || [[ "$video_url" == *"youtu.be"* ]]; then
source="youtube"
video_id=$(echo "$video_url" | grep -oP '(?<=v=)[^&]+|(?<=youtu\.be/)[^?]+')
else
echo "❌ 不支持的视频来源"
exit 1
fi
echo "来源: $source, ID: $video_id"
yt-dlp --cookies /path/to/cookies.txt \
-f "bestaudio" \
-o "/tmp/bilibili_${video_id}.%(ext)s" \
"$video_url"
输出:/tmp/bilibili_{BV号}.m4a
⚠️ 推荐模型:Small
Whisper 模型对比: | 模型 | 大小 | 准确率 | 速度 | |------|------|--------|------| | Tiny | 39 MB | 65% | 最快 | | Base | 74 MB | 74% | 快 | | Small | 244 MB | 80% | 平衡 ✅ | | Medium | 769 MB | 85% | 慢 | | Large | 1550 MB | 88% | 最慢 |
⚠️ 关键:必须使用虚拟环境
source ~/.openclaw/venv/bin/activate
whisper /tmp/bilibili_${video_id}.m4a \
--language Chinese \
--model small \
--output_dir /tmp/ \
--output_format txt
输出:/tmp/bilibili_{BV号}.txt
import requests
api_key = "YOUR_GLM_API_KEY" # 从配置文件读取
with open(f'/tmp/bilibili_{video_id}.txt', 'r') as f:
transcript = f.read()
prompt = f"""你是一位专业的学习笔记整理专家。以下是视频的语音转录文本:
**转录文本**:
{transcript}
**输出要求**:
1. 核心概念:主题的核心概念是什么
2. 核心价值:为什么重要
3. 使用方法:如何使用
4. 对比示例:前后对比
5. 适用场景:哪些场景适用
6. 实用模板:直接可用的模板
7. 底层原理:为什么有效
格式:Markdown,结构清晰,包含代码示例和对比表格。
"""
response = requests.post(
"https://open.bigmodel.cn/api/paas/v4/chat/completions",
headers={'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'},
json={"model": "glm-4-Flash", "messages": [{"role": "user", "content": prompt}]}
)
note = response.json()['choices'][0]['message']['content']
API 配置:
获取转录:
curl -s "https://api.supadata.ai/v1/youtube/transcript?videoId=${video_id}" \
-H "X-API-Key: YOUR_SUPADATA_API_KEY" \
> /tmp/youtube_transcript_${video_id}.json
解析转录文本:
import json
with open(f'/tmp/youtube_transcript_{video_id}.json', 'r') as f:
data = json.load(f)
# 提取纯文本
transcript = ''.join([seg['text'] for seg in data['content']])
# 保存为文本文件
with open(f'/tmp/youtube_transcript_{video_id}.txt', 'w') as f:
f.write(transcript)
输出:/tmp/youtube_transcript_{video_id}.txt
import requests
api_key = "YOUR_GLM_API_KEY" # 从配置文件读取
with open(f'/tmp/youtube_transcript_{video_id}.txt', 'r') as f:
transcript = f.read()
prompt = f"""请将以下 YouTube 视频转录内容整理成结构化的学习笔记:
要求:
1. 提取核心观点和关键概念
2. 使用 Markdown 格式,包含标题、列表、表格
3. 保持口语化但逻辑清晰
4. 标注视频元信息
5. 输出中文
视频链接:https://www.youtube.com/watch?v={video_id}
转录内容:
{transcript[:18000]}
"""
response = requests.post(
"https://open.bigmodel.cn/api/paas/v4/chat/completions",
headers={'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'},
json={"model": "glm-4-Flash", "messages": [{"role": "user", "content": prompt}]}
)
note = response.json()['choices'][0]['message']['content']
使用 OpenClaw 的 feishu_doc 工具:
# 创建飞书文档节点
feishu_doc create \
--title "{视频标题} - {来源}学习笔记" \
--folder_token "YOUR_FOLDER_TOKEN"
# 写入笔记内容
feishu_doc write \
--doc_token "{文档token}" \
--content "{笔记内容}"
| 指标 | B 站(Whisper) | YouTube(Supadata) | |------|----------------|-------------------| | 转录速度 | 3-10 分钟 | 5-10 秒 | | 费用 | 免费 | 1 credit/视频 | | 准确度 | 依赖音频质量 | 依赖官方字幕 | | 适用场景 | 无官方字幕 | 有官方字幕 |
config/glm-config.json:
{
"api_key": "YOUR_GLM_API_KEY",
"model": "glm-4-Flash",
"enabled": true
}
config/supadata-config.json:
{
"api_key": "YOUR_SUPADATA_API_KEY",
"base_url": "https://api.supadata.ai/v1",
"plan": "Free (100/mo)"
}
config/feishu-config.json:
{
"space_id": "YOUR_SPACE_ID",
"parent_node_token": "YOUR_PARENT_NODE_TOKEN",
"enabled": true
}
可能原因:
解决方案:
检查项:
MIT License
本 SKILL 由 OpenClaw 社区维护 | 最后更新:2026-03-08 支持:B 站、YouTube | 自动判断来源
tools
A股多空辩论深度分析 - 多空研究员对抗辩论式个股深度研究,输出结构化投资简报
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.