Skip to content

Commit c9eb82f

Browse files
committed
docs(bilibili-analyzer): reorganize documentation with examples and references
- Simplify SKILL.md description to focus on core functionality - Remove redundant features list and consolidate into concise overview - Streamline usage examples with essential commands and common scenarios - Simplify parameters table for better readability - Move detailed installation instructions to references/installation.md - Move FAQ section to references/faq.md - Add new examples/basic-usage.md for common use cases - Update index.json to include README.md and scripts/__init__.py - Improve documentation structure with clear reference links - Reduce SKILL.md from 331 to 52 lines while maintaining essential information
1 parent d63f959 commit c9eb82f

5 files changed

Lines changed: 276 additions & 315 deletions

File tree

skills/index.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,10 @@
345345
"basePath": "skills/tools/bilibili-analyzer",
346346
"files": [
347347
{ "path": "SKILL.md", "sha256": "PENDING" },
348+
{ "path": "references/installation.md", "sha256": "PENDING" },
349+
{ "path": "references/faq.md", "sha256": "PENDING" },
350+
{ "path": "examples/basic-usage.md", "sha256": "PENDING" },
351+
{ "path": "scripts/__init__.py", "sha256": "PENDING" },
348352
{ "path": "scripts/main.py", "sha256": "PENDING" },
349353
{ "path": "scripts/models.py", "sha256": "PENDING" },
350354
{ "path": "scripts/exceptions.py", "sha256": "PENDING" },

skills/tools/bilibili-analyzer/SKILL.md

Lines changed: 26 additions & 315 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,7 @@ source:
1212

1313
## Description
1414

15-
Bilibili视频分析器是一个自动化视频内容分析工具。提供B站视频URL后,系统会自动下载视频、提取关键帧、使用AI分析视频内容,并生成包含截图和时间戳的Markdown总结报告。
16-
17-
## Features
18-
19-
- 🔗 **URL解析**: 支持标准B站URL和短链接(b23.tv)
20-
- 📥 **智能下载**: 自动下载视频,支持重试和进度显示
21-
- 🎬 **帧提取**: 智能帧提取,支持场景变化检测
22-
- 🤖 **AI分析**: 多Claude Code实例并行分析
23-
- 📝 **报告生成**: 生成结构化Markdown报告,包含目录和摘要
24-
- 📊 **日志记录**: 完整的执行日志和错误追踪
25-
- 💾 **断点续传**: 支持部分结果保存,失败后可恢复
15+
自动化B站视频内容分析工具。提供视频URL后,系统自动下载视频、提取关键帧、AI分析内容,生成带截图和时间戳的Markdown报告。
2616

2717
## Trigger
2818

@@ -32,331 +22,52 @@ Bilibili视频分析器是一个自动化视频内容分析工具。提供B站
3222

3323
## Usage
3424

35-
### 基本用法
36-
37-
```bash
38-
# 进入脚本目录
39-
cd skills/tools/bilibili-analyzer/scripts
40-
41-
# 分析视频(最简单的用法)
42-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD"
43-
44-
# 使用短链接
45-
python main.py "https://b23.tv/xxxxx"
46-
```
47-
48-
### 自定义参数
49-
5025
```bash
51-
# 自定义帧提取间隔(每60秒提取一帧)
52-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -i 60
26+
# 基本用法
27+
python scripts/main.py "https://www.bilibili.com/video/BV1xx411c7mD"
5328

54-
# 限制最大帧数为30帧
55-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -m 30
29+
# 自定义帧间隔和最大帧数
30+
python scripts/main.py "https://www.bilibili.com/video/BV1xx411c7mD" -i 60 -m 30
5631

57-
# 指定输出目录
58-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -o ./my-reports
32+
# 指定输出目录和分析焦点
33+
python scripts/main.py "https://www.bilibili.com/video/BV1xx411c7mD" -o ./output -f text,faces
5934

60-
# 指定分析焦点(只分析文字和人脸)
61-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -f text,faces
62-
63-
# 调整并行worker数量
64-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -w 8
65-
66-
# 禁用场景检测(只按固定间隔提取)
67-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" --no-scene-detection
68-
```
69-
70-
### 组合使用
71-
72-
```bash
73-
# 完整示例:60秒间隔,最多20帧,只分析文字,输出到指定目录
74-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" \
75-
-i 60 \
76-
-m 20 \
77-
-f text \
78-
-o ./video-analysis \
79-
-w 4
80-
81-
# 详细日志模式
82-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -v
83-
84-
# 静默模式(只显示错误)
85-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -q
35+
# 短链接
36+
python scripts/main.py "https://b23.tv/xxxxx"
8637
```
8738

8839
## Parameters
8940

90-
| 参数 | 短参数 | 说明 | 默认值 | 示例 |
91-
|------|--------|------|--------|------|
92-
| `url` | - | B站视频URL(必需) | - | `https://www.bilibili.com/video/BV1xx411c7mD` |
93-
| `--interval` | `-i` | 帧提取间隔(秒) | 30 | `-i 60` |
94-
| `--max-frames` | `-m` | 最大帧数 | 50 | `-m 30` |
95-
| `--output` | `-o` | 输出目录 | ./bilibili | `-o ./output` |
96-
| `--focus` | `-f` | 分析焦点(逗号分隔) | text,objects,faces,actions,scene | `-f text,faces` |
97-
| `--workers` | `-w` | 并行分析worker数 | 4 | `-w 8` |
98-
| `--no-scene-detection` | - | 禁用场景变化检测 | false | `--no-scene-detection` |
99-
| `--retries` | - | 下载失败重试次数 | 3 | `--retries 5` |
100-
| `--verbose` | `-v` | 显示详细日志 | false | `-v` |
101-
| `--quiet` | `-q` | 静默模式 | false | `-q` |
102-
| `--version` | - | 显示版本信息 | - | `--version` |
103-
104-
### 分析焦点选项
105-
106-
| 焦点 | 说明 |
107-
|------|------|
108-
| `text` | 识别画面中的文字内容 |
109-
| `objects` | 识别画面中的物体 |
110-
| `faces` | 识别人脸和人物 |
111-
| `actions` | 识别动作和行为 |
112-
| `scene` | 识别场景类型和环境 |
113-
114-
## Output Structure
115-
116-
分析完成后,输出目录结构如下:
117-
118-
```
119-
./bilibili/{video_title}/
120-
├── report.md # Markdown分析报告
121-
├── frames/ # 提取的关键帧图片
122-
│ ├── frame_001_00-00-00.jpg
123-
│ ├── frame_002_00-00-30.jpg
124-
│ ├── frame_003_00-01-00.jpg
125-
│ └── ...
126-
├── analysis.log # 执行日志
127-
├── checkpoints/ # 检查点数据(用于断点续传)
128-
│ ├── frames.json
129-
│ └── analyses.json
130-
└── partial_report.json # 部分结果(如果分析中断)
131-
```
132-
133-
### 报告内容
134-
135-
生成的Markdown报告包含:
136-
137-
1. **视频元数据**: 标题、作者、时长、播放量等
138-
2. **执行摘要**: AI生成的视频内容概述
139-
3. **目录**: 带锚点链接的章节导航
140-
4. **时间线分析**: 按时间顺序的帧分析结果
141-
- 帧截图(嵌入图片)
142-
- 时间戳(HH:MM:SS格式)
143-
- 场景描述
144-
- 识别的物体、文字、人物等
41+
| 参数 | 说明 | 默认值 |
42+
|------|------|--------|
43+
| `url` | B站视频URL(必需) | - |
44+
| `-i, --interval` | 帧提取间隔(秒) | 30 |
45+
| `-m, --max-frames` | 最大帧数 | 50 |
46+
| `-o, --output` | 输出目录 | ./bilibili |
47+
| `-f, --focus` | 分析焦点 | text,objects,faces,actions,scene |
48+
| `-w, --workers` | 并行worker数 | 4 |
14549

14650
## Requirements
14751

148-
### System Dependencies
149-
150-
#### FFmpeg(必需)
151-
152-
FFmpeg用于从视频中提取关键帧,必须安装。
153-
154-
**Windows:**
155-
```powershell
156-
# 使用 Chocolatey
157-
choco install ffmpeg
158-
159-
# 或使用 Scoop
160-
scoop install ffmpeg
161-
162-
# 或手动下载
163-
# 访问 https://ffmpeg.org/download.html 下载并添加到PATH
164-
```
165-
166-
**macOS:**
167-
```bash
168-
# 使用 Homebrew
169-
brew install ffmpeg
170-
```
52+
- **FFmpeg**: 帧提取必需
53+
- **Python**: requests, yt-dlp
17154

172-
**Ubuntu/Debian:**
173-
```bash
174-
sudo apt update
175-
sudo apt install ffmpeg
176-
```
55+
详细安装说明见 [references/installation.md](references/installation.md)
17756

178-
**CentOS/RHEL:**
179-
```bash
180-
sudo yum install epel-release
181-
sudo yum install ffmpeg
182-
```
57+
## References
18358

184-
**验证安装:**
185-
```bash
186-
ffmpeg -version
187-
```
59+
- [安装指南](references/installation.md) - 系统依赖和Python包安装
60+
- [常见问题](references/faq.md) - FAQ和错误处理
18861

189-
### Python Dependencies
62+
## Examples
19063

191-
```bash
192-
# 创建虚拟环境(推荐)
193-
python -m venv venv
194-
source venv/bin/activate # Linux/macOS
195-
#
196-
.\venv\Scripts\activate # Windows
197-
198-
# 安装依赖
199-
pip install requests yt-dlp hypothesis pytest
200-
```
201-
202-
**依赖说明:**
203-
204-
|| 版本 | 用途 |
205-
|---|------|------|
206-
| `requests` | >=2.28.0 | HTTP请求,获取视频元数据 |
207-
| `yt-dlp` | >=2023.0.0 | 视频下载 |
208-
| `hypothesis` | >=6.0.0 | 属性测试(开发用) |
209-
| `pytest` | >=7.0.0 | 单元测试(开发用) |
210-
211-
### 完整安装脚本
212-
213-
```bash
214-
# 一键安装(Linux/macOS)
215-
#!/bin/bash
216-
set -e
217-
218-
# 安装FFmpeg
219-
if ! command -v ffmpeg &> /dev/null; then
220-
echo "Installing FFmpeg..."
221-
if [[ "$OSTYPE" == "darwin"* ]]; then
222-
brew install ffmpeg
223-
else
224-
sudo apt install -y ffmpeg
225-
fi
226-
fi
227-
228-
# 安装Python依赖
229-
pip install requests yt-dlp hypothesis pytest
230-
231-
echo "Installation complete!"
232-
```
64+
- [基本使用示例](examples/basic-usage.md) - 常用场景和命令示例
23365

23466
## Tags
23567

236-
`bilibili`, `video-analysis`, `ai`, `frame-extraction`, `markdown`, `automation`, `yt-dlp`, `ffmpeg`
68+
`bilibili`, `video-analysis`, `ai`, `frame-extraction`, `markdown`
23769

23870
## Compatibility
23971

24072
- Codex: ✅
24173
- Claude Code: ✅
242-
243-
## FAQ
244-
245-
### 基础问题
246-
247-
#### Q: 为什么需要FFmpeg?
248-
A: FFmpeg是一个强大的多媒体处理工具,本工具使用它从视频中提取关键帧。没有FFmpeg,帧提取功能将无法工作。
249-
250-
#### Q: 分析一个视频需要多长时间?
251-
A: 取决于多个因素:
252-
- 视频长度
253-
- 帧提取间隔和最大帧数
254-
- 网络速度(下载阶段)
255-
- AI分析并行度
256-
257-
一般来说,10分钟视频(默认设置)约需5-10分钟完成分析。
258-
259-
#### Q: 支持哪些视频格式?
260-
A: 支持B站所有可播放的视频格式。系统使用yt-dlp下载,会自动选择最佳质量。
261-
262-
### 错误处理
263-
264-
#### Q: 遇到"URL无效"错误怎么办?
265-
A: 请确保URL格式正确:
266-
- 标准格式: `https://www.bilibili.com/video/BV1xx411c7mD`
267-
- 短链接: `https://b23.tv/xxxxx`
268-
- 不支持番剧、直播等其他类型链接
269-
270-
#### Q: 下载失败怎么办?
271-
A: 可能的原因和解决方案:
272-
1. **网络问题**: 检查网络连接,使用`--retries`增加重试次数
273-
2. **视频不存在**: 确认视频未被删除或设为私有
274-
3. **地区限制**: 某些视频可能有地区限制
275-
276-
#### Q: FFmpeg报错怎么办?
277-
A:
278-
1. 确认FFmpeg已正确安装: `ffmpeg -version`
279-
2. 确认FFmpeg在系统PATH中
280-
3. 尝试重新安装FFmpeg
281-
282-
#### Q: AI分析失败怎么办?
283-
A: 系统会自动重试失败的分析任务。如果仍然失败:
284-
1. 检查Claude Code配置
285-
2. 查看日志文件了解详细错误
286-
3. 部分结果会保存到`partial_report.json`
287-
288-
### 高级用法
289-
290-
#### Q: 如何只分析视频的特定部分?
291-
A: 目前不支持指定时间范围,但可以通过调整参数间接实现:
292-
- 增大`--interval`跳过更多内容
293-
- 减小`--max-frames`限制分析帧数
294-
295-
#### Q: 如何提高分析速度?
296-
A:
297-
1. 增加并行worker: `-w 8`
298-
2. 减少帧数: `-m 20`
299-
3. 增大间隔: `-i 60`
300-
4. 禁用场景检测: `--no-scene-detection`
301-
302-
#### Q: 如何获取更详细的分析?
303-
A:
304-
1. 减小帧间隔: `-i 10`
305-
2. 增加最大帧数: `-m 100`
306-
3. 启用所有分析焦点: `-f text,objects,faces,actions,scene`
307-
308-
#### Q: 分析中断后如何恢复?
309-
A: 系统会自动保存检查点。目前需要重新运行命令,未来版本将支持从检查点恢复。
310-
311-
### 输出相关
312-
313-
#### Q: 报告中的图片路径是什么格式?
314-
A: 使用相对路径,格式为`./frames/frame_XXX_HH-MM-SS.jpg`,确保报告和frames目录在同一位置时图片可正常显示。
315-
316-
#### Q: 如何自定义报告格式?
317-
A: 目前不支持自定义模板,但可以修改`report_generator.py`中的模板。
318-
319-
#### Q: 日志文件在哪里?
320-
A: 日志文件`analysis.log`位于输出目录中,与`report.md`同级。
321-
322-
## Troubleshooting
323-
324-
### 常见错误代码
325-
326-
| 错误          | 原因       | 解决方案        |
327-
| -------------------------| ------------------| ------------------------|
328-
| `URLValidationError`  | URL格式不正确  | 使用正确的B站视频URL  |
329-
| `MetadataFetchError`  | 无法获取视频信息 | 检查视频是否存在/私有 |
330-
| `DownloadError`     | 下载失败     | 检查网络,增加重试次数 |
331-
| `FFmpegError`      | FFmpeg问题    | 安装/重装FFmpeg    |
332-
| `AnalysisError`     | AI分析失败    | 检查Claude Code配置  |
333-
| `ReportGenerationError` | 报告生成失败   | 检查输出目录权限    |
334-
335-
### 调试模式
336-
337-
使用`-v`参数启用详细日志:
338-
339-
```bash
340-
python main.py "https://www.bilibili.com/video/BV1xx411c7mD" -v
341-
```
342-
343-
日志将显示每个步骤的详细信息,便于定位问题。
344-
345-
## Version History
346-
347-
- **v1.0.0** (2026-01-27)
348-
- 初始版本
349-
- 支持URL解析和验证
350-
- 支持视频下载(带重试)
351-
- 支持帧提取(带场景检测)
352-
- 支持AI并行分析
353-
- 支持Markdown报告生成
354-
- 完整的日志和错误处理
355-
356-
## License
357-
358-
本工具使用Unlicense许可证,视频下载功能基于yt-dlp。
359-
360-
## Contributing
361-
362-
欢迎提交Issue和Pu

0 commit comments

Comments
 (0)