Skill: lhx121619/baidu-vod-desubtitle (version 1.0.2)

--- name: baidu-vod-desubtitle description: 百度智能云VOD字幕擦除工具。支持从本地或网盘选取视频进行字幕擦除，支持全局/对白/自定义区域三种模式，支持批量处理文件夹中的视频，处理后可下载到本地或上传到网盘。当用户提及"字幕擦除"、"擦除字幕"、"去除字幕"时触发。 allowed-tools: Bash, Read, Glob, Grep, Write, Question argument-hint: "[视频路径] --mode <模式>" metadata: { "openclaw": { "requires": { "bins": ["python3"] } } } --- # 百度智能云 VOD 字幕擦除 Skill 智能识别并擦除视频中的字幕区域，支持多种擦除模式和高级配置。 ## ⚠️ 强制执行流程 **禁止直接执行命令！必须按以下流程引导用户：** ``` 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: [执行命令] ✓ ``` --- ## 触发规则 满足以下任一条件时触发： 1. 用户提及"字幕擦除"、"擦除字幕"、"去除字幕" 2. 用户需要处理视频中的字幕 3. 用户需要查询或删除字幕擦除任务 --- ## Agent 参数收集指南 ### 核心原则 1. **简洁优先**：直接询问处理方式，不绕弯子 2. **最小必要**：只收集必要参数，其他使用默认值 3. **渐进式**：从简单到复杂，避免一次性问太多 4. **推荐优先**：给出推荐选项，而非开放式问题 --- ## 第一步：识别用户意图 根据用户描述，识别属于哪种场景： | 用户描述关键词 | 场景类型 | 推荐操作 | |---------------|----------|----------| | "擦除字幕"、"去除字幕"、"消字幕" | 字幕擦除 | 询问处理方式和擦除方式 | | "擦除Logo"、"去除水印"、"去掉角标" | 区域擦除 | 直接使用 manual 模式 | | "只擦除某一段"、"前几分钟" | 时间范围 | manual + time-range | | "查任务"、"任务状态" | 任务查询 | --list/--query | | "删除任务" | 任务删除 | --delete | --- ## 第二步：收集必要参数 ### 第一步：询问处理方式 **交互模板：** ``` 用户: 帮我把这个视频的字幕擦除 Agent: 请选择处理方式： [1] 单个视频 - 处理单个视频文件 [2] 批量处理文件夹 - 处理文件夹中的所有视频 用户: 1 或 2 ``` --- ### 第二步：收集视频路径 #### 场景 A：单个视频 **交互模板：** ``` Agent: 请提供视频文件路径： 用户: /Downloads/video.mp4 ``` #### 场景 B：批量处理文件夹 **交互模板：** ``` 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、水印、角标、特定位置 | --- ### 场景 C：区域擦除（Logo/水印） **必须收集**： 1. 视频来源 2. 擦除区域坐标 **交互模板：** ``` 用户: 帮我去掉视频左上角的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"] ``` --- ### 场景 D：时间范围擦除 **必须收集**： 1. 视频来源 2. 擦除区域坐标 3. 开始时间 4. 结束时间 **交互模板：** ``` 用户: 只擦除视频前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 │ └─ 确认执行 │ ├─ 来自网盘？ ──► 询问是否上传回网盘 │ └─ 执行命令 ``` --- ## 推荐参数组合 ### 组合 1：全局擦除（推荐） ```bash python3 scripts/desubtitle.py <视频> --mode global ``` **适用场景**：综艺、广告、不确定字幕位置、想擦除所有字幕 **特点**：智能识别并擦除所有字幕区域 ### 组合 2：对白擦除 ```bash python3 scripts/desubtitle.py <视频> --mode dialog ``` **适用场景**：电影、电视剧、访谈节目 **特点**：只擦除底部对白字幕，保留其他文字 ### 组合 3：自定义区域擦除 ```bash python3 scripts/desubtitle.py <视频> --mode manual --areas "x,y,w,h" ``` **适用场景**：去除特定位置的Logo、水印、角标 ### 组合 4：批量处理 ```bash python3 scripts/desubtitle.py video1.mp4 video2.mp4 video3.mp4 --mode global ``` **适用场景**：批量处理多个视频文件 **特点**：所有视频使用相同的擦除模式 --- ## 常见问题处理 ### Q1：用户不知道选哪种擦除方式 ``` Agent: 请选择擦除方式： [1] 全局擦除 - 自动识别并擦除所有字幕区域（推荐） [2] 对白擦除 - 只擦除底部对白字幕，保留其他文字 [3] 自定义区域 - 手动指定坐标擦除 用户: 不知道选哪个 Agent: 建议选择 [1] 全局擦除，会自动识别所有字幕区域，适用于大多数场景。 ``` ### Q2：用户不知道坐标 ``` 用户: 我要擦除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 确认使用这个坐标吗？ ``` ### Q3：批量处理时文件夹中没有视频 ``` Agent: 正在扫描文件夹中的视频文件... 未找到视频文件。请确认文件夹路径正确，且包含以下格式的视频： .mp4, .mkv, .avi, .mov, .webm 请重新提供文件夹路径： ``` --- ## 执行命令模板 ### 单个视频 ```bash export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \ python3 scripts/desubtitle.py <视频路径> --mode <模式> ``` ### 批量处理 ```bash export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \ python3 scripts/desubtitle.py <视频1> <视频2> <视频3> --mode <模式> ``` ### 完整命令（所有参数） ```bash 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 <网盘目录> ``` --- ## 示例对话 ### 示例 1：单个视频 ``` 用户: 帮我把 /Downloads/movie.mp4 的字幕擦除 Agent: 请选择处理方式： [1] 单个视频 [2] 批量处理文件夹 用户: 1 Agent: 请选择擦除方式： [1] 全局擦除 - 自动识别并擦除所有字幕区域（推荐） [2] 对白擦除 - 只擦除底部对白字幕，保留其他文字 [3] 自定义区域 - 手动指定坐标擦除 用户: 2 Agent: 确认配置： - 视频文件: /Downloads/movie.mp4 - 擦除方式: 对白擦除 - 输出目录: ./output 确认执行吗？ 用户: 确认 Agent: 正在处理... [执行: --mode dialog] ✓ 处理完成，结果已保存到: ./output/desubtitled_movie.mp4 ``` ### 示例 2：批量处理 ``` 用户: 帮我擦除一个文件夹里所有视频的字幕 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] ✓ 全部处理完成 ``` ### 示例 3：Logo擦除 ``` 用户: 帮我去掉视频左上角的Logo Agent: 请提供Logo区域的坐标（格式: x,y,宽度,高度）： 用户: 20,20,180,60 Agent: 确认配置： - 擦除区域: (20,20) 宽180 高60 - 擦除方式: 自定义区域 确认执行吗？ 用户: 确认 Agent: [执行: --mode manual --areas "20,20,180,60"] ✓ 处理完成 ``` --- ## 前置条件 ### 1. VOD 凭证 ```bash export BAIDU_VOD_AK="your_access_key" export BAIDU_VOD_SK="your_secret_key" ``` 获取方式： 1. 登录 [百度智能云控制台](https://console.bce.baidu.com/) 2. 开通 [智能点播平台 VOD](https://cloud.baidu.com/product/vod.html) 3. 在 [安全认证](https://console.bce.baidu.com/iam/#/iam/accesslist) 获取 AK/SK ### 2. 网盘功能（可选） 如需从网盘下载或上传到网盘，需要： 1. 安装 bdpan CLI 2. 执行 `bdpan login` 登录 --- ## 处理时间 - 单个视频：约 5-15 分钟（取决于视频长度） - 批量处理：按视频数量累计 - 可使用 `--no-wait` 参数不等待，稍后查询任务状态 --- ## 注意事项 1. **文件大小限制**：单个文件 ≤ 5GB 2. **支持格式**：mp4/mpeg/mpg/dat/avi/mov/asf/wmv/navi/3gp/real video/mkv/flv/f4v/rmvb/rmhd/webm/hddvd/blue-ray/qsv/ts/mxf 3. **费用**：按处理时长计费 4. **白名单**：字幕擦除需要白名单权限，如提示"权限不足"请联系百度智能云开通 --- ## API 参考 - [字幕擦除 API 文档](https://cloud.baidu.com/doc/VOD/s/fmhiy9vqk)

path: _meta.json
content: version: 1.0.1
description: 百度智能云VOD字幕擦除工具

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)