← Back to Skills Marketplace
qiaotucodes

cutmv

by 魏然 · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
471
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install cutmv
Description
Video processing tool using FFmpeg for cutting, format conversion, compression, frame/audio extraction, watermarking, and subtitle addition.
README (SKILL.md)

SKILL.md - cutmv Video Tool

Skill Name

cutmv-video-tool

Description

A video processing skill for OpenClaw that leverages FFmpeg to perform video/audio cutting, format conversion, and compression. Perfect for handling video files for messaging apps with file size limits.

Capabilities

  • Video Cutting: Split video/audio by time range
  • Format Conversion: Convert between video/audio formats (mp4, avi, mp3, wav, etc.)
  • Video Compression: Compress videos with adjustable bitrate
  • Frame Extraction: Extract frames from videos at specified intervals
  • Audio Extraction: Extract audio track from video
  • Audio Replacement: Replace or mix audio in video
  • Text Watermark: Add text overlay on video (requires freetype)
  • Subtitle: Add .srt/.ass subtitle files to video

Use Cases

  1. Compress videos to send via WeChat/Lark/Telegram (16MB limit)
  2. Extract screenshots from videos for analysis
  3. Convert video formats for different platforms
  4. Cut specific segments from long videos

Requirements

System Requirements

  • FFmpeg installed and available in PATH
  • Python 3.7+

Python Dependencies

  • None (uses subprocess to call ffmpeg)

Installation

  1. Ensure FFmpeg is installed on your system:

    • macOS: brew install ffmpeg
    • Ubuntu: sudo apt install ffmpeg
    • Windows: Download from ffmpeg.org or winget install ffmpeg
  2. Place the skill files in your workspace:

    ~/openclaw-workspace/skills/cutmv-video-tool/
    ├── SKILL.md
    ├── skill.py
    ├── README.md
    └── README-CN.md
    

Usage

Python API

from skill import VideoTool

tool = VideoTool()

# Compress video for messaging
tool.compress("input.mp4", "output.mp4", bitrate="1000k")

# Cut video segment
tool.cut("input.mp4", "clip.mp4", start_time=30, end_time=90)

# Convert format
tool.convert("input.mp4", "output.avi", "avi")

# Extract frames every 10 seconds
tool.extract_frames("input.mp4", "./frames/", interval=10)

CLI Usage

# Compress video
python skill.py compress input.mp4 output.mp4 1000k

# Cut video
python skill.py cut input.mp4 clip.mp4 0 60

# Convert format
python skill.py convert input.mp4 output.mp3 mp3

Configuration

No additional configuration required. The skill uses system FFmpeg installation.

Testing

Run the built-in tests:

python skill.py test

License

MIT License

Author

  • Isaac (@QiaoTuCodes)

Acknowledgments

  • OpenClaw team for the platform
  • FFmpeg team for media processing tools

Author Identity: yanyan@3c3d77679723a2fe95d3faf9d2c2e5a65559acbc97fef1ef37783514a80ae453

Usage Guidance
This skill appears to do what it claims (video ops via FFmpeg), but check these before installing: - Verify FFmpeg/ffprobe are required: SKILL.md and code require ffmpeg on PATH even though the registry metadata omits it. Ensure you have FFmpeg installed from a trusted source. - Review the code locally (skill.py) before running. There is use of eval() when parsing ffprobe output — that is a potential code-injection risk if input metadata is malicious. If you will process untrusted files, either sandbox execution or patch the code to avoid eval (e.g., parse the fraction safely). - Confirm provenance: source/homepage is unknown. Prefer skills with a verifiable repository or maintainer identity. The README references a GitHub repo and authors; validate those links and signatures if possible. - Run the tests and the CLI in a safe environment (sandbox or VM) to observe behavior: python skill.py test and sample operations on harmless media files. - If you need tighter security, request the author to (1) update registry metadata to list ffmpeg/ffprobe as required binaries, (2) remove eval and handle ffprobe output safely, and (3) provide a canonical source/repo for review. Given these issues, proceed with caution. The problems look like sloppy metadata and one unsafe code pattern rather than clear malicious intent, hence 'suspicious' with medium confidence.
Capability Analysis
Type: OpenClaw Skill Name: cutmv Version: 1.0.0 The `skill.py` file contains a critical Remote Code Execution (RCE) vulnerability. The `get_video_info` function uses `eval()` on the `r_frame_rate` value extracted from video metadata via `ffprobe`. An attacker could craft a malicious video file whose metadata contains arbitrary Python code, leading to its execution. Additionally, the `add_subtitle` and `add_text_watermark` functions are vulnerable to command injection, as user-controlled `subtitle_file`, `style`, and `text` arguments are embedded into FFmpeg filter strings without robust sanitization, potentially allowing arbitrary FFmpeg commands or filter-based exploits.
Capability Assessment
Purpose & Capability
The skill's name, README, SKILL.md, and code all describe an FFmpeg-based video tool, which is coherent. However the registry metadata claims no required binaries/configs while SKILL.md and skill.py clearly require FFmpeg and ffprobe on PATH — the declared requirements are incomplete. The source/homepage is 'unknown' even though README references a GitHub repo URL, so provenance is unclear.
Instruction Scope
SKILL.md stays within the expected scope (running ffmpeg/ffprobe via skill.py). It does not instruct reading unrelated system files or using external endpoints. The runtime uses subprocess with argument lists (no shell=True), which is safer. However skill.py uses eval(...) when parsing ffprobe's r_frame_rate which is an unsafe pattern if ffprobe output can be tampered with or if untrusted metadata is processed.
Install Mechanism
No install spec (instruction-only plus a Python file) — lowest install risk. The skill relies on a system FFmpeg/ffprobe installation as documented in SKILL.md rather than pulling arbitrary code from the network during install.
Credentials
The skill declares no required environment variables or credentials, which is appropriate. But it fails to declare the required system binaries (ffmpeg/ffprobe) in the registry metadata — an omission that underreports the actual external dependency. There are no requests for unrelated secrets or config paths.
Persistence & Privilege
The skill does not request persistent privileges (always:false) and does not modify other skills or system settings. Autonomous invocation is allowed (default) but that's normal for skills and not combined with other high-risk factors here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cutmv
  3. After installation, invoke the skill by name or use /cutmv
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
cutmv-video-tool 1.0.0 initial release: - Provides video and audio processing features powered by FFmpeg. - Supports video cutting, format conversion, and video compression. - Can extract frames or audio from video, and replace or mix audio tracks. - Adds text watermarks and subtitle files to videos. - Usable as both a Python API and a CLI tool, with no external Python dependencies required.
Metadata
Slug cutmv
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is cutmv?

Video processing tool using FFmpeg for cutting, format conversion, compression, frame/audio extraction, watermarking, and subtitle addition. It is an AI Agent Skill for Claude Code / OpenClaw, with 471 downloads so far.

How do I install cutmv?

Run "/install cutmv" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is cutmv free?

Yes, cutmv is completely free (open-source). You can download, install and use it at no cost.

Which platforms does cutmv support?

cutmv is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created cutmv?

It is built and maintained by 魏然 (@qiaotucodes); the current version is v1.0.0.

💬 Comments