| name | plan-video |
| description | 视频处理任务规划工具。从用户输入中提取视频 URLs,生成唯一 VideoId,创建结构化的 todolist.md 追踪待生成文件。支持小红书、抖音、TikTok、B站、YouTube、快手等 11+ 平台。 |
Plan Video - 视频任务规划
概述
为批量视频处理创建结构化任务清单。提取 URLs → 生成 VideoIds → 创建 todolist.md 追踪文件。
使用时机
- 用户提供视频 URLs 需要批量处理
- 在下载/处理前需要规划任务结构
工作流程
1. 提取视频 URLs
从用户输入(消息/文件)中提取所有视频链接。
from scripts.extract_video_id import extract_urls
urls = extract_urls(user_input_text)
支持平台:小红书、抖音、TikTok、B站、YouTube、快手等
2. 提取 VideoId
为每个 URL 提取唯一标识符。
from scripts.extract_video_id import extract_video_id
video_id = extract_video_id(url)
# 'http://xhslink.com/o/6VbNVltFQRX' → '6VbNVltFQRX'
3. 生成 todolist.md
在输出目录创建任务清单,列出所有待生成文件。
格式:
# Video Processing Tasks
## {VideoId} ({原始短链接URL})
- [ ] orgin/{VideoId}/{VideoId}.json # 元数据,通过 skill `parse-video` 获得
- [ ] orgin/{VideoId}/{VideoId}.mp4 # 视频,通过 skill `parse-video` 获得
- [ ] orgin/{VideoId}/{VideoId}_cover.jpg # 封面,通过 skill `rip-video` 获得
- [ ] orgin/{VideoId}/{VideoId}.mp3 # 音频,通过 skill `rip-video` 获得
- [ ] orgin/{VideoId}/{VideoId}.srt # 字幕,通过 skill `rip-video` 获得
示例:
## 6VbNVltFQRX (http://xhslink.com/o/6VbNVltFQRX)
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.json
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.mp4
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX_cover.jpg
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.mp3
- [ ] orgin/6VbNVltFQRX/6VbNVltFQRX.srt
4. 输出报告
============================================================
视频处理计划已创建!
============================================================
找到视频: {total} 个
输出目录: {outputDir}/orgin/
任务列表: {outputDir}/todolist.md
可以继续使用 parse-video 和 rip-video 进行下载和处理。
============================================================
错误处理
- 未找到 URLs:提示用户未检测到有效视频链接
- VideoId 提取失败:跳过该 URL,在报告中说明
- 输出目录不存在:自动创建目录结构
- todolist.md 已存在:询问用户是否覆盖或追加
资源文件
scripts/extract_video_id.py
VideoId 提取工具。
函数:
extract_video_id(url: str) -> str:提取单个 URL 的 VideoIdextract_urls(text: str) -> list[str]:从文本提取所有视频 URLs
集成说明
此 skill 为后续处理准备基础:
- parse-video:使用 todolist.md 中的 VideoIds 和 URLs 解析元数据、下载视频
- rip-video:使用 todolist.md 中的 MP4 路径提取音频和字幕
todolist.md 是整个视频处理流程的中心追踪文档。