Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:40:57 +08:00
commit abc7aa590b
7 changed files with 501 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
---
name: parse-video
description: 根据 todolist.md 使用 MCP 解析视频元数据并下载。读取任务清单,调用 MCP 服务下载视频和封面,保存元数据 JSON更新任务完成状态。
---
# Parse Video - 视频解析下载
## 概述
根据 todolist.md 执行视频解析和下载。调用 MCP 服务获取元数据、下载视频和封面。
**前置条件**
- MCP `parse-video` 服务已配置运行
- 用户已提供 todolist.md
## 工作流程
### 1. 读取 todolist.md
从 todolist.md 获取待处理任务:
## 6VbNVltFQRX (http://xhslink.com/o/6VbNVltFQRX)
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.json
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.mp4
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX_cover.jpg
...
提取VideoId、原始 URL、输出路径。
### 2. 调用 MCP 解析元数据
```python
# 调用 MCP
metadata = mcp_parse_video(original_url)
# 增强元数据
metadata['video_id'] = video_id
metadata['original_url'] = original_url
# 保存到 todolist 指定路径
save_json(metadata, f"orgin/{video_id}/{video_id}.json")
```
### 3. 下载视频和封面
```python
# 使用 MCP 下载
mcp_download_video(
video_id=video_id,
video_url=metadata['videoUrls'],
output_dir=f"orgin/{video_id}/"
)
```
文件将保存为:
- `orgin/{VideoId}/{VideoId}.mp4`
- `orgin/{VideoId}/{VideoId}_cover.jpg`(如果有封面)
### 4. 更新 todolist.md
下载完成后标记任务:
```markdown
## 6VbNVltFQRX (http://xhslink.com/o/6VbNVltFQRX)
- [x] orgin/6VbNVltFQRX/6VbNVltFQRX.json
- [x] orgin/6VbNVltFQRX/6VbNVltFQRX.mp4
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX_cover.jpg
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.mp3 # rip-video 处理
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.srt # rip-video 处理
```
### 5. 输出报告
```
============================================================
视频下载完成!
============================================================
成功: {success}/{total}
失败: {failed}/{total}
输出目录: {outputDir}/orgin/
剩余解析次数: {leftTimes}
下一步:使用 rip-video 提取音频和字幕
============================================================
```
## 错误处理
- **MCP 服务不可用**:提示检查服务状态
- **速率限制**:显示剩余配额,等待后重试
- **解析失败**:跳过该视频,在报告中记录,不更新 todolist
- **下载失败**:记录错误,标记该项为失败
## 集成说明
**上游**plan-video 生成 todolist.md
**下游**rip-video 使用下载的 MP4 提取音频和字幕