Install
openclaw skills install baidu-vod-desubtitle百度智能云VOD字幕擦除工具。支持从本地或网盘选取视频进行字幕擦除,支持全局/对白/自定义区域三种模式,支持批量处理文件夹中的视频,处理后可下载到本地或上传到网盘。当用户提及"字幕擦除"、"擦除字幕"、"去除字幕"时触发。
openclaw skills install baidu-vod-desubtitle智能识别并擦除视频中的字幕区域,支持多种擦除模式和高级配置。
禁止直接执行命令!必须按以下流程引导用户:
1. 识别意图 → 判断擦除类型(字幕/Logo/时间范围)
2. 收集参数 → 使用 Question 工具询问用户
3. 确认配置 → 展示参数让用户确认
4. 用户确认 → 才能执行命令
错误示例(禁止):
用户: 帮我擦除这个视频的字幕
Agent: [直接执行 python3 desubtitle.py video.mp4 --mode global] ❌
正确示例:
用户: 帮我擦除这个视频的字幕
Agent: 请选择处理方式:
[1] 单个视频
[2] 批量处理文件夹
用户: 1
Agent: 请选择擦除方式:
[1] 全局擦除 - 自动识别所有字幕区域
[2] 对白擦除 - 只擦除底部对白字幕
[3] 自定义区域 - 指定坐标擦除
用户: 1
Agent: 请提供视频文件路径:
用户: /Downloads/video.mp4
Agent: [执行命令] ✓
满足以下任一条件时触发:
根据用户描述,识别属于哪种场景:
| 用户描述关键词 | 场景类型 | 推荐操作 |
|---|---|---|
| "擦除字幕"、"去除字幕"、"消字幕" | 字幕擦除 | 询问处理方式和擦除方式 |
| "擦除Logo"、"去除水印"、"去掉角标" | 区域擦除 | 直接使用 manual 模式 |
| "只擦除某一段"、"前几分钟" | 时间范围 | manual + time-range |
| "查任务"、"任务状态" | 任务查询 | --list/--query |
| "删除任务" | 任务删除 | --delete |
交互模板:
用户: 帮我把这个视频的字幕擦除
Agent: 请选择处理方式:
[1] 单个视频 - 处理单个视频文件
[2] 批量处理文件夹 - 处理文件夹中的所有视频
用户: 1 或 2
交互模板:
Agent: 请提供视频文件路径:
用户: /Downloads/video.mp4
交互模板:
Agent: 请提供文件夹路径(将处理该文件夹下所有视频文件):
用户: /Downloads/videos/
Agent: 正在扫描文件夹中的视频文件...
找到 5 个视频文件:
1. video1.mp4
2. video2.mp4
3. video3.mp4
4. video4.mp4
5. video5.mp4
确认处理这些视频吗?
扫描文件夹的实现:
使用 Glob 工具扫描常见视频格式:
Glob: <文件夹路径>/**/*.mp4
Glob: <文件夹路径>/**/*.mkv
Glob: <文件夹路径>/**/*.avi
Glob: <文件夹路径>/**/*.mov
Glob: <文件夹路径>/**/*.webm
交互模板:
Agent: 请选择擦除方式:
[1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
[2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
[3] 自定义区域 - 手动指定坐标擦除
用户: 1
擦除方式说明:
| 方式 | 命令参数 | 适用场景 |
|---|---|---|
| 全局擦除 | --mode global | 综艺、广告、不确定字幕位置、想擦除所有字幕 |
| 对白擦除 | --mode dialog | 电影、电视剧、访谈、只需擦除底部对白字幕 |
| 自定义区域 | --mode manual --areas "x,y,w,h" | Logo、水印、角标、特定位置 |
必须收集:
交互模板:
用户: 帮我去掉视频左上角的Logo
Agent: 请提供Logo区域的坐标(格式: x,y,宽度,高度):
- x: Logo左边距离视频左边的像素
- y: Logo上边距离视频上边的像素
- 宽度: Logo的宽度
- 高度: Logo的高度
提示:可以用视频播放器截图,在图片编辑器中查看像素坐标。
用户: 50,30,200,80
Agent: 收到,Logo区域: (50,30) 宽200 高80
确认执行吗?
用户: 确认
Agent: [执行: --mode manual --areas "50,30,200,80"]
必须收集:
交互模板:
用户: 只擦除视频前30秒的字幕
Agent: 好的,时间范围擦除需要指定区域坐标。
请提供字幕区域的坐标(格式: x,y,宽度,高度):
用户: 0,900,1920,60
Agent: 收到,将擦除前30秒的区域 (0,900,1920,60)。
确认执行吗?
用户: 确认
Agent: [执行: --mode manual --areas "0,900,1920,60" --time-range 0 30000]
收集完参数后,展示配置让用户确认:
单个视频:
Agent: 确认以下配置:
- 视频文件: /Downloads/video.mp4
- 擦除方式: 全局擦除
- 输出目录: ./output
确认执行吗?
批量处理:
Agent: 确认以下配置:
- 处理模式: 批量处理
- 视频数量: 5 个
- 擦除方式: 全局擦除
- 输出目录: ./output
确认执行吗?
用户请求
│
├─ 查询任务? ──────────────────────► --list / --query
│
├─ 删除任务? ──────────────────────► --delete
│
└─ 处理视频?
│
├─ 处理方式?
│ ├─ 单个视频 ──► 获取视频文件路径
│ └─ 批量处理 ──► 获取文件夹路径 → 扫描视频文件 → 展示列表确认
│
├─ 擦除什么?
│ ├─ "字幕" ──► 询问擦除方式
│ │ ├─ 全局擦除 ──► --mode global
│ │ ├─ 对白擦除 ──► --mode dialog
│ │ └─ 自定义区域 ──► --mode manual + 询问坐标
│ │
│ ├─ "Logo/水印" ──► --mode manual + 询问坐标
│ │
│ └─ "某段时间" ──► --mode manual + areas + time-range
│
└─ 确认执行
│
├─ 来自网盘? ──► 询问是否上传回网盘
│
└─ 执行命令
python3 scripts/desubtitle.py <视频> --mode global
适用场景:综艺、广告、不确定字幕位置、想擦除所有字幕 特点:智能识别并擦除所有字幕区域
python3 scripts/desubtitle.py <视频> --mode dialog
适用场景:电影、电视剧、访谈节目 特点:只擦除底部对白字幕,保留其他文字
python3 scripts/desubtitle.py <视频> --mode manual --areas "x,y,w,h"
适用场景:去除特定位置的Logo、水印、角标
python3 scripts/desubtitle.py video1.mp4 video2.mp4 video3.mp4 --mode global
适用场景:批量处理多个视频文件 特点:所有视频使用相同的擦除模式
Agent: 请选择擦除方式:
[1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
[2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
[3] 自定义区域 - 手动指定坐标擦除
用户: 不知道选哪个
Agent: 建议选择 [1] 全局擦除,会自动识别所有字幕区域,适用于大多数场景。
用户: 我要擦除Logo,但不知道坐标
Agent: 您可以:
1. 用视频播放器截图
2. 在图片编辑器(如PS、画图)中打开截图
3. 查看Logo左上角的坐标(x,y)和尺寸(宽,高)
或者告诉我Logo的大概位置:
[1] 左上角
[2] 右上角
[3] 左下角
[4] 右下角
用户: 右上角
Agent: 请告诉我Logo大概占视频宽高的比例?
例如:宽200像素,高50像素
用户: 宽150,高40
Agent: 好的,右上角Logo,宽150高40。
假设视频是1920x1080,Logo坐标大约是:
x=1770, y=0, width=150, height=40
确认使用这个坐标吗?
Agent: 正在扫描文件夹中的视频文件...
未找到视频文件。请确认文件夹路径正确,且包含以下格式的视频:
.mp4, .mkv, .avi, .mov, .webm
请重新提供文件夹路径:
export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频路径> --mode <模式>
export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频1> <视频2> <视频3> --mode <模式>
export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频路径> \
--mode <global|dialog|manual> \
--model <v3|v4> \
--areas "x,y,w,h" \
--time-range <开始ms> <结束ms> \
--output-dir <输出目录> \
--upload-netdisk \
--netdisk-dir <网盘目录>
用户: 帮我把 /Downloads/movie.mp4 的字幕擦除
Agent: 请选择处理方式:
[1] 单个视频
[2] 批量处理文件夹
用户: 1
Agent: 请选择擦除方式:
[1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
[2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
[3] 自定义区域 - 手动指定坐标擦除
用户: 2
Agent: 确认配置:
- 视频文件: /Downloads/movie.mp4
- 擦除方式: 对白擦除
- 输出目录: ./output
确认执行吗?
用户: 确认
Agent: 正在处理...
[执行: --mode dialog]
✓ 处理完成,结果已保存到: ./output/desubtitled_movie.mp4
用户: 帮我擦除一个文件夹里所有视频的字幕
Agent: 请选择处理方式:
[1] 单个视频
[2] 批量处理文件夹
用户: 2
Agent: 请提供文件夹路径:
用户: /Downloads/videos/
Agent: 正在扫描文件夹中的视频文件...
找到 3 个视频文件:
1. ep01.mp4
2. ep02.mp4
3. ep03.mp4
请选择擦除方式:
[1] 全局擦除(推荐)
[2] 对白擦除
[3] 自定义区域
用户: 1
Agent: 确认配置:
- 处理模式: 批量处理
- 视频数量: 3 个
- 擦除方式: 全局擦除
- 输出目录: ./output
确认执行吗?
用户: 确认
Agent: 正在批量处理...
[执行: ep01.mp4 ep02.mp4 ep03.mp4 --mode global]
✓ 全部处理完成
用户: 帮我去掉视频左上角的Logo
Agent: 请提供Logo区域的坐标(格式: x,y,宽度,高度):
用户: 20,20,180,60
Agent: 确认配置:
- 擦除区域: (20,20) 宽180 高60
- 擦除方式: 自定义区域
确认执行吗?
用户: 确认
Agent: [执行: --mode manual --areas "20,20,180,60"]
✓ 处理完成
export BAIDU_VOD_AK="your_access_key"
export BAIDU_VOD_SK="your_secret_key"
获取方式:
如需从网盘下载或上传到网盘,需要:
bdpan login 登录--no-wait 参数不等待,稍后查询任务状态