99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
---
|
||
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 提取音频和字幕
|