- SKILL.md: new 'Finding stock materials' section (on-demand, not mandatory) - 5 material sources: 爱给网, B站素材酷, Tenor, GIPHY, Klipy - Language-based priority (Chinese users → 爱给网 + B站素材酷) - Semantic search term expansion guidance - B站素材酷: bcut-resource-search userscript or direct API - Anti-bot fallback: browser-based tools - README.md + README.zh.md: add 'npx skills add' install method - Compatible with open agent skills ecosystem (73+ frameworks) - git clone as fallback option - New 'Stock Material Search' section
131 lines
5.8 KiB
Markdown
131 lines
5.8 KiB
Markdown
# Video Edit Planner 视频剪辑规划助手
|
||
|
||
一个 agent skill,通过迭代式对话帮助规划视频剪辑——转录音频、按需提取关键帧、分析画面内容,最终生成结构化的剪辑规划。
|
||
|
||
**仓库地址**: https://git.nite07.com/nite/video-edit-planner-skill
|
||
|
||
## 功能特性
|
||
|
||
- **音频转录** — 内置 [funasr-script](https://github.com/modelscope/FunASR),支持 Fun-ASR-Nano(高质量,中文优化)和 SenseVoice(快速预览)两种模型
|
||
- **按需抽帧** — 基于 ffmpeg 的片段剪辑(`-c copy`)+ 场景变化检测 + 均匀采样,优先使用硬件加速(CUDA/NVDEC)
|
||
- **产物索引** — SQLite 数据库记录所有转录、剪辑片段和帧图片,避免跨会话重复处理
|
||
- **视觉分析指引** — 二分查找式帧采样策略;兼容 agent 运行时提供的任何视觉模型
|
||
- **迭代式剪辑规划** — Markdown 表格输出(时间码、片段描述、操作建议、转场方式、备注),支持追问细化
|
||
- **Agent 无关** — 不包含任何平台特定工具名;兼容任何 agent 框架(Hermes、Claude Code、Codex 等)
|
||
|
||
## 快速开始
|
||
|
||
### 前置依赖
|
||
|
||
| 依赖 | 安装方式 |
|
||
|---|---|
|
||
| `ffmpeg` + `ffprobe` | Linux: `pacman -S ffmpeg` / `apt install ffmpeg`;macOS: `brew install ffmpeg`;Windows: `winget install Gyan.FFmpeg` |
|
||
| `uv` | Linux: `pacman -S uv`;macOS: `brew install uv`;Windows: `winget install astral-sh.uv`;备用: `pip install uv` |
|
||
| `python3` | Linux: `pacman -S python`;macOS: `brew install python`;Windows: `winget install Python.Python.3` |
|
||
|
||
### 安装 skill
|
||
|
||
**方式一:`npx skills add`(推荐)**
|
||
|
||
本 skill 兼容 [开放 agent skills 生态](https://www.npmjs.com/package/skills),可以直接安装:
|
||
|
||
```bash
|
||
# 全局安装(跨项目可用)
|
||
npx skills add git@git.nite07.com:nite/video-edit-planner-skill.git -g -y
|
||
|
||
# 安装到指定 agent
|
||
npx skills add git@git.nite07.com:nite/video-edit-planner-skill.git -g -a claude-code -y
|
||
|
||
# 列出可用 skill(不安装)
|
||
npx skills add git@git.nite07.com:nite/video-edit-planner-skill.git --list
|
||
```
|
||
|
||
支持 73+ agent 框架,包括 Claude Code、Codex、Cursor、OpenCode 等。
|
||
|
||
**方式二:`git clone`(手动)**
|
||
|
||
```bash
|
||
git clone git@git.nite07.com:nite/video-edit-planner-skill.git ~/.hermes/skills/media/video-edit-planner
|
||
```
|
||
|
||
Hermes Agent 用户克隆到 `~/.hermes/skills/media/`。其他 agent 请遵循各自的 skills 目录约定。
|
||
|
||
### 首次使用
|
||
|
||
转录脚本需要一次性依赖安装:
|
||
|
||
```bash
|
||
cd ~/.hermes/skills/media/video-edit-planner/scripts/transcription && uv sync
|
||
```
|
||
|
||
这会创建一个隔离的 venv,包含 `funasr`、`torch`、`torchaudio`。如果你之前通过 uv 安装过这些包,缓存会被复用——首次成本仅为链接步骤。
|
||
|
||
## 工作流程
|
||
|
||
```
|
||
1. 检查依赖(ffmpeg、uv、python3)
|
||
2. 收集输入(视频路径 + 音轨索引)
|
||
3. 询问剪辑需求
|
||
4. 转录音频(如索引中已有缓存则跳过)
|
||
5. 按需提取片段和帧(agent 自主判断转录稿是否足够)
|
||
6. 用视觉模型分析帧(二分查找式采样)
|
||
7. 生成 Markdown 表格剪辑规划 + 总体建议
|
||
8. 迭代——用户追问,规划逐步细化
|
||
```
|
||
|
||
## 素材搜索(可选)
|
||
|
||
规划剪辑时,用户可能需要素材——贴纸、GIF、梗图视频片段、B-roll 等。skill 按需提供素材搜索指引。
|
||
|
||
### 素材来源
|
||
|
||
| 来源 | 网址 | 内容 | 适用场景 |
|
||
|---|---|---|---|
|
||
| 爱给网 | https://www.aigei.com/ | 中文梗图视频片段(热梗,4.2万+),免费下载 | 中文创作者(B站/抖音) |
|
||
| B站素材酷 | https://cool.bilibili.com/ | 哔哩哔哩平台素材(视频、音频、BGM、模板、贴纸) | B站创作者;大量中文梗图 |
|
||
| Tenor | https://tenor.com/ | GIF + 贴纸,支持 30+ 语言含中文,免费 API | 快速 GIF/贴纸搜索 |
|
||
| GIPHY | https://giphy.com/ | 最大 GIF 库,30+ 语言,贴纸频道 | 英文/多语言 GIF 搜索 |
|
||
| Klipy | https://klipy.com/ | 本地化 GIF/贴纸/片段 API,支持中文 | API 集成搜索,本地化 |
|
||
|
||
中文用户优先推荐爱给网和B站素材酷。
|
||
|
||
### B站素材酷搜索
|
||
|
||
B站素材酷没有内置搜索功能。可以使用 [bcut-resource-search](https://git.nite07.com/nite/bcut-resource-search) 油猴脚本添加搜索功能,或让 agent 直接查询 API。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
video-edit-planner/
|
||
├── SKILL.md # Skill 定义(工作流程、指引、注意事项)
|
||
├── README.md # 英文说明
|
||
├── README.zh.md # 本文件(中文)
|
||
├── scripts/
|
||
│ ├── transcription/ # 内置 funasr-script(自包含 uv 项目)
|
||
│ │ ├── pyproject.toml
|
||
│ │ ├── uv.lock
|
||
│ │ ├── funasr_common.py # 共享:ffprobe、音频提取、模型运行
|
||
│ │ ├── funasr_nano.py # Fun-ASR-Nano 入口(高质量)
|
||
│ │ ├── funasr_fast.py # SenseVoice 入口(快速预览)
|
||
│ │ └── funasr_regular.py # Paraformer 入口(对比用)
|
||
│ ├── frames/
|
||
│ │ └── extract_frames.py # 片段提取 + 抽帧(ffmpeg 封装)
|
||
│ └── index/
|
||
│ └── manage_index.py # SQLite 索引管理(8 个子命令)
|
||
└── references/
|
||
└── frame-extraction-guide.md # 视觉模型 token 成本、分辨率/批次指引
|
||
```
|
||
|
||
## 索引数据库
|
||
|
||
所有处理产物记录在 SQLite 数据库(`<视频文件名>.vedit.db`)中,存放在视频文件同目录:
|
||
|
||
- **transcription** — JSON 路径、音轨索引、时长
|
||
- **clips** — 起止时间、文件路径、提取原因
|
||
- **frames** — 时间戳、文件路径、场景分数、提取方法
|
||
|
||
这避免了跨会话对同一视频重复转录或重复抽帧。
|
||
|
||
## 许可证
|
||
|
||
MIT |