视频内容分析器
自动下载视频并用AI分析内容,提取完整的语音文案,分析视频结构和节奏。
功能
- 1. 视频下载 - 支持B站、抖音、YouTube等主流平台
- 音频提取 - 用ffmpeg提取视频中的音频
- 语音转写 - 用OpenAI Whisper API转写为文字
- 内容分析 - AI分析视频结构、节奏、钩子等
前置要求
必须安装的工具
CODEBLOCK0
API Key
需要设置 OpenAI API Key(用于Whisper转写):
CODEBLOCK1
或在 ~/.openclaw/openclaw.json 中配置:
CODEBLOCK2
使用方法
输入
用户提供视频链接,例如:
- - B站: INLINECODE1
- 抖音: INLINECODE2
- YouTube: INLINECODE3
输出
完整的分析报告,包括:
- 1. 📝 完整文案(语音转写)
- 🎬 视频结构分析(章节/时间节点)
- 🪝 钩子分析
- ⏱️ 节奏分析
- 💡 内容总结
工作流程
CODEBLOCK3
关键帧提取(优化版)
自动提取策略
CODEBLOCK4
帧数建议
| 视频时长 | 建议帧数 | 间隔 |
|---|
| < 3 分钟 | 6-8 帧 | 每20-30秒 |
| 3-10 分钟 |
12-20 帧 | 每30秒 |
| 10-30 分钟 | 30-60 帧 | 每30秒 |
批量提取脚本
CODEBLOCK5
命令行示例
手动下载B站视频
CODEBLOCK6
提取音频
CODEBLOCK7
输出模板
CODEBLOCK8
[从danmaku.xml提取的高频弹幕]
---
## 🔥 成功原因总结
1. [核心爆款因素]
2. [情感共鸣点]
3. [创新/独特之处]
---
## 总结
[视频的核心内容和亮点]
注意事项
- 1. 📡 网络 - 下载视频需要稳定的网络
- 💰 费用 - Whisper API按分钟计费(~$0.006/分钟)
- ⏱️ 时间 - 完整分析需要3-5分钟
- 📏 长度 - 建议视频时长 < 30分钟
- 🔐 版权 - 仅供学习分析使用,勿用于商业目的
故障排除
下载失败
- - 检查网络连接
- 尝试使用代理
- B站可能需要Cookie认证
Whisper转写失败
- - 确认OPENAIAPIKEY正确设置
- 检查API余额
- 音频文件是否损坏
ffmpeg问题
- - 确认ffmpeg已安装: INLINECODE4
- Mac用户: INLINECODE5
```
视频内容分析器
自动下载视频并用AI分析内容,提取完整的语音文案,分析视频结构和节奏。
功能
- 1. 视频下载 - 支持B站、抖音、YouTube等主流平台
- 音频提取 - 用ffmpeg提取视频中的音频
- 语音转写 - 用OpenAI Whisper API转写为文字
- 内容分析 - AI分析视频结构、节奏、钩子等
前置要求
必须安装的工具
bash
安装 yt-dlp (视频下载)
pip3 install --break-system-packages yt-dlp
安装 ffmpeg (音频处理)
Mac: brew install ffmpeg
Ubuntu: sudo apt install ffmpeg
API Key
需要设置 OpenAI API Key(用于Whisper转写):
bash
export OPENAIAPIKEY=your-api-key
或在 ~/.openclaw/openclaw.json 中配置:
json
{
skills: {
openai-whisper-api: {
apiKey: your-api-key
}
}
}
使用方法
输入
用户提供视频链接,例如:
- - B站: https://www.bilibili.com/video/BV1xuPYzcEdo
- 抖音: https://www.douyin.com/video/xxx
- YouTube: https://www.youtube.com/watch?v=xxx
输出
完整的分析报告,包括:
- 1. 📝 完整文案(语音转写)
- 🎬 视频结构分析(章节/时间节点)
- 🪝 钩子分析
- ⏱️ 节奏分析
- 💡 内容总结
工作流程
- 1. 输入视频链接
↓
- 2. yt-dlp 下载视频
↓
- 3. 获取视频时长,计算关键帧数量
↓
- 4. ffmpeg 提取关键帧(每30秒1帧)
↓
- 5. 获取弹幕数据(若有)
↓
- 6. Whisper API 转写(若有API)
↓
- 7. AI 分析画面+弹幕+文案
↓
- 8. 输出完整报告
关键帧提取(优化版)
自动提取策略
bash
视频时长 / 30 = 关键帧数量
例如:8分钟视频 → 16-17张关键帧
提取关键帧(每30秒1帧)
ffmpeg -ss 00:00:00 -i video.mp4 -vframes 1 -q:v 2 frame_001.jpg -y
ffmpeg -ss 00:00:30 -i video.mp4 -vframes 1 -q:v 2 frame_002.jpg -y
ffmpeg -ss 00:01:00 -i video.mp4 -vframes 1 -q:v 2 frame_003.jpg -y
... 以此类推
帧数建议
| 视频时长 | 建议帧数 | 间隔 |
|---|
| < 3 分钟 | 6-8 帧 | 每20-30秒 |
| 3-10 分钟 |
12-20 帧 | 每30秒 |
| 10-30 分钟 | 30-60 帧 | 每30秒 |
批量提取脚本
python
import subprocess
import os
def extractframes(videopath, output_dir, interval=30):
提取视频关键帧
Args:
video_path: 视频文件路径
output_dir: 输出目录
interval: 帧间隔(秒),默认30秒
# 获取视频时长
cmd = [ffprobe, -v, error, -show_entries,
format=duration, -of, default=noprint_wrappers=1:nokey=1,
video_path]
result = subprocess.run(cmd, capture_output=True, text=True)
duration = float(result.stdout.strip())
# 计算帧数
num_frames = int(duration // interval) + 1
os.makedirs(outputdir, existok=True)
for i in range(num_frames):
seconds = i * interval
mins = seconds // 60
secs = seconds % 60
ts = f{mins:02d}:{secs:02d}
out = f{outputdir}/frame{i+1:03d}.jpg
cmd = [ffmpeg, -ss, ts, -i, video_path,
-vframes, 1, -q:v, 2, out, -y]
subprocess.run(cmd, capture_output=True)
print(f✓ 已提取 {out})
return num_frames
使用示例
extract_frames(/tmp/video.mp4, /tmp/frames, interval=30)
命令行示例
手动下载B站视频
bash
下载B站视频(仅音频)
yt-dlp -x --audio-format mp3 -o %(title)s.%(ext)s https://www.bilibili.com/video/BV1xuPYzcEdo
下载视频(最佳画质)
yt-dlp -f bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best -o %(title)s.%(ext)s https://www.bilibili.com/video/BV1xuPYzcEdo
仅下载字幕
yt-dlp --write-subs --skip-download -o %(title)s https://www.bilibili.com/video/BV1xuPYzcEdo
提取音频
bash
从视频提取音频
ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 2 output.mp3
或直接用yt-dlp
yt-dlp -x --audio-format mp3 https://www.bilibili.com/video/BV1xuPYzcEdo
输出模板
markdown
📹 视频内容分析报告
视频: [标题]
链接: [URL]
时长: [时长]
平台: [B站/抖音/YouTube]
关键帧数: [数量]
📝 完整文案
[Whisper转写的完整语音文案]
🎬 视频结构(基于关键帧)
| 时间 | 画面内容 | 阶段 |
|---|
| 0:00 | [第1帧描述] | 钩子 |
| 0:30 |
[第2帧描述] | 铺垫 |
| 1:00 | [第3帧描述] | 主题展开 |
| ... | ... | ... |
🪝 钩子分析
[开头画面的钩子设计分析]
🎯 内容分层
- - 开头 (0-1分钟):
- 中段 (1-5分钟):
- 高潮 (5-7分钟):
- 结尾 (7-分钟):
💡 爆款元素
[弹幕互动热点] |
| 记忆点 | [金句/名场面] |
📊 弹幕热点词
[从danmaku.xml提取的高频弹幕]
🔥 成功原因总结
- 1. [核心爆款因素]
- [情感共鸣点]
- [创新/独特之处]
总结
[视频的核心内容和亮点]
注意事项
- 1. 📡 网络 - 下载视频需要稳定的网络
- 💰 费用 - Whisper API按分钟计费(~$0.006/分钟)
- ⏱️ 时间 - 完整分析需要3-5分钟
- 📏 长度 - 建议视频时长 < 30分钟
- 🔐 版权 - 仅供学习分析使用,勿用于商业目的
故障排除
下载失败
- - 检查网络连接
- 尝试使用代理
- B站可能需要Cookie认证
Whisper转写失败
- - 确认OPENAIAPIKEY正确设置
- 检查API余额
- 音频文件是否损坏
ffmpeg问题
- - 确认ffmpeg已安装: ffmpeg -version
- Mac用户: brew install ffmpeg