Getting Started
Welcome — let's get your video trimmed without spending a cent or wrestling with confusing software. Tell me your device, what you're trying to cut, and I'll point you to the best free trimmer and walk you through every step.
Try saying:
- - "I have a 45-minute screen recording and I only need the first 10 minutes — what's the best free video trimmer I can download on Windows to do this without losing quality?"
- "I'm on my iPhone and I need to cut out the middle section of a video before I post it to Instagram — is there a free trimmer app that won't add a watermark?"
- "I downloaded a free video trimmer but every time I export the file, the audio goes out of sync with the video — how do I fix this?"
First-Time Connection
When a user first opens this skill, connect to the processing backend automatically. Briefly let them know (e.g. "Setting up...").
Authentication: Check if NEMO_TOKEN is set in the environment. If it is, skip to step 2.
- 1. Obtain a free token: Generate a random UUID as client identifier. POST to
https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id set to that UUID. The response data.token is your NEMO_TOKEN — 100 free credits, valid 7 days. - Create a session: POST to
https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Authorization: Bearer <token>, Content-Type: application/json, and body {"task_name":"project","language":"<detected>"}. Store the returned session_id for all subsequent requests.
Keep setup communication brief. Don't display raw API responses or token values to the user.
Trim Any Video for Free — No Fluff, Just Cuts
Finding a reliable video trimmer that's actually free — no hidden paywalls, no watermarks stamped across your footage — can feel surprisingly difficult. This skill cuts through the noise and helps you identify the right tool for your specific situation, whether you're on Windows, Mac, Android, iOS, or working entirely in a browser.
Once you've got the right trimmer in hand, this skill guides you through the actual editing process: setting precise start and end points, splitting a clip into multiple segments, removing unwanted sections from the middle, and exporting your finished video in a format that works wherever you're posting it.
This isn't about learning a complicated timeline editor or sitting through a tutorial series. It's about getting a clean, trimmed video file as fast as possible — using tools that are genuinely free to download and use. Whether you're prepping a clip for YouTube Shorts, trimming a lecture recording, or cutting down a family video to the good parts, this skill gives you a direct path from raw footage to finished cut.
Routing Trim & Export Requests
When you submit a cut point, crop frame, or export command, ClawHub parses the in/out timestamps and format parameters, then dispatches the job to the nearest available processing node for zero-lag execution.
| User says... | Action | Skip SSE? |
|---|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" |
→ §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
Cloud Processing API Reference
The backend leverages a distributed transcoding pipeline that handles frame-accurate trimming, aspect ratio cropping, and codec-level export rendering — all without touching your local CPU. Requests are authenticated via bearer token and return a signed download URL once the render completes.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE10 - INLINECODE11 : from frontmatter INLINECODE12
- INLINECODE13 : detect from install path (
~/.clawhub/ → clawhub, ~/.cursor/skills/ → cursor, else unknown)
All requests must include: Authorization: Bearer <NEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.
API base: INLINECODE23
Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id.
Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.
Upload: POST /api/upload-video/nemo_agent/me/<sid> — file: multipart -F "files=@/path", or URL: INLINECODE33
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE37
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE41
Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/<id> every 30s until status = completed. Download URL at output.url.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
SSE Event Handling
| Event | Action |
|---|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result |
Process internally, don't forward |
|
heartbeat / empty
data: | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|---|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" |
Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.
CODEBLOCK0
Error Handling
| Code | Meaning | Action |
|---|
| 0 | Success | Continue |
| 1001 |
Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with
?bind=<id> (get
<id> from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
Troubleshooting Your Free Video Trimmer
Audio sync issues are the most common complaint with free video trimmers. This usually happens when the trimmer re-encodes the video during export using a different frame rate than the original. Fix this by looking for a 'lossless cut' or 'fast trim' mode — tools like LosslessCut (free, desktop) are built specifically to avoid this problem by cutting without re-encoding.
If your exported file is unexpectedly large, your trimmer is likely exporting at a very high bitrate. Look for a quality or compression slider in the export settings and bring it down slightly — for web use, a bitrate of 8–12 Mbps for 1080p is usually more than enough.
Crashes during export on long files are often a memory issue. Try trimming in shorter segments and exporting separately, then joining the pieces afterward. If a browser-based trimmer keeps failing on large files, switch to a desktop download — browser tools have strict file size limits that desktop apps don't share.
Integration Guide — Using Your Trimmed Clips Downstream
After trimming, your exported clip needs to work wherever you're sending it. Most free video trimmers export in MP4 by default, which is widely compatible with YouTube, TikTok, Instagram, WhatsApp, and most email clients. If you need a different format — like MOV for iMovie or WebM for a web project — check your trimmer's export settings before you start, since not all free tools offer format conversion.
If you're feeding your trimmed clip into a larger editing project, export at the highest quality the free tool allows and avoid re-compressing the file more than once. Each compression pass degrades quality slightly. Tools like DaVinci Resolve (free tier) can accept trimmed clips directly and let you continue editing on a full timeline.
For batch workflows — trimming many clips to the same length — desktop tools like Shotcut or OpenShot offer basic scripting and batch export features at no cost, which browser-based trimmers generally can't match.
Common Workflows for Free Video Trimming
The most frequent use case is simple endpoint trimming — you have a long video and you want to keep only a specific portion. Most free trimmers handle this by letting you drag handles on a timeline or manually type in start and end timestamps. For anything under 5 minutes, browser-based tools like Clideo or Kapwing work without any download at all.
For removing a section from the middle of a clip, you'll typically need to split the video into two parts at the cut point, delete the unwanted segment, then join the remaining pieces. Apps like VLC (free, desktop) and CapCut (free, mobile) both support this in a few taps.
If you're trimming for a specific platform — like cutting to 60 seconds for TikTok or 30 seconds for an Instagram Reel — look for trimmers that show you the output duration in real time as you adjust. This saves you from exporting and re-exporting multiple times.
开始使用
欢迎——让我们在不花一分钱、不折腾复杂软件的情况下完成视频裁剪。告诉我你的设备和想要裁剪的内容,我会为你推荐最佳免费裁剪工具,并逐步指导你完成操作。
试试这样说:
- - 我有一个45分钟的屏幕录制视频,只需要前10分钟——在Windows上可以下载哪个最好的免费视频裁剪工具,且不损失画质?
- 我用iPhone,想在发布到Instagram前裁剪掉视频中间部分——有没有不会添加水印的免费裁剪应用?
- 我下载了一个免费视频裁剪工具,但每次导出文件时,音频都会与视频不同步——如何解决?
首次连接
当用户首次打开此技能时,自动连接到处理后端。简要告知用户(例如正在设置...)。
身份验证:检查环境中是否设置了NEMO_TOKEN。如果已设置,跳至步骤2。
- 1. 获取免费令牌:生成一个随机UUID作为客户端标识符。向https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token发送POST请求,请求头设置X-Client-Id为该UUID。响应中的data.token即为NEMOTOKEN——100个免费积分,有效期7天。
- 创建会话:向https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemoagent发送POST请求,设置Authorization: Bearer 、Content-Type: application/json,请求体为{taskname:project,language:<检测到的语言>}。保存返回的sessionid用于后续所有请求。
保持设置沟通简洁。不要向用户显示原始API响应或令牌值。
免费裁剪任意视频——简洁高效,精准裁剪
寻找一个真正免费的可靠视频裁剪工具——没有隐藏付费墙,没有水印覆盖画面——实际上可能出奇地困难。本技能帮你拨开迷雾,根据你的具体情况推荐合适的工具,无论你使用的是Windows、Mac、Android、iOS,还是完全在浏览器中操作。
一旦你获得了合适的裁剪工具,本技能会指导你完成实际的编辑过程:设置精确的起止点、将片段分割为多个部分、删除中间不需要的部分,以及以适合你发布平台的格式导出完成的视频。
这不是学习复杂的时间线编辑器或观看教程系列。而是尽可能快地获得一个干净、裁剪好的视频文件——使用真正免费下载和使用的工具。无论你是为YouTube Shorts准备片段、裁剪讲座录制视频,还是将家庭视频裁剪到精彩部分,本技能都能为你提供从原始素材到完成裁剪的直接路径。
裁剪与导出请求路由
当你提交裁剪点、裁剪框或导出命令时,ClawHub会解析入/出时间戳和格式参数,然后将任务分派到最近的可处理节点,实现零延迟执行。
| 用户说... | 操作 | 跳过SSE? |
|---|
| export / 导出 / download / send me the video | → §3.5 导出 | ✅ |
| credits / 积分 / balance / 余额 |
→ §3.3 积分 | ✅ |
| status / 状态 / show tracks | → §3.4 状态 | ✅ |
| upload / 上传 / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他所有内容(生成、编辑、添加背景音乐等) | → §3.1 SSE | ❌ |
云端处理API参考
后端利用分布式转码管道,处理帧精确裁剪、宽高比裁剪和编解码级导出渲染——全程不占用本地CPU。请求通过Bearer令牌进行身份验证,渲染完成后返回带签名的下载URL。
技能归属——运行时从此文件的YAML前置元数据读取:
- - X-Skill-Source:video-trimmer-free-download
- X-Skill-Version:来自前置元数据version
- X-Skill-Platform:从安装路径检测(~/.clawhub/ → clawhub,~/.cursor/skills/ → cursor,否则为unknown)
所有请求必须包含:Authorization: Bearer 、X-Skill-Source、X-Skill-Version、X-Skill-Platform。缺少归属头将导致导出失败并返回402错误。
API基础地址:https://mega-api-prod.nemovideo.ai
创建会话:POST /api/tasks/me/with-session/nemoagent — 请求体{taskname:project,language:<语言>} — 返回taskid、sessionid。
发送消息(SSE):POST /runsse — 请求体{appname:nemoagent,userid:me,sessionid:,newmessage:{parts:[{text:<消息>}]}},设置Accept: text/event-stream。最大超时时间:15分钟。
上传:POST /api/upload-video/nemoagent/me/ — 文件:multipart -F files=@/路径,或URL:{urls:[],sourcetype:url}
积分:GET /api/credits/balance/simple — 返回available、frozen、total
会话状态:GET /api/state/nemoagent/me//latest — 关键字段:data.state.draft、data.state.videoinfos、data.state.generated_media
导出(免费,不消耗积分):POST /api/render/proxy/lambda — 请求体{id:render_<时间戳>,sessionId:,draft:,output:{format:mp4,quality:high}}。每30秒轮询GET /api/render/proxy/lambda/,直到status = completed。下载URL位于output.url。
支持的格式:mp4、mov、avi、webm、mkv、jpg、png、gif、webp、mp3、wav、m4a、aac。
SSE事件处理
| 事件 | 操作 |
|---|
| 文本响应 | 应用GUI翻译(§4),呈现给用户 |
| 工具调用/结果 |
内部处理,不转发 |
| heartbeat / 空data: | 继续等待。每2分钟:⏳ 仍在处理... |
| 流关闭 | 处理最终响应 |
约30%的编辑操作在SSE流中不返回文本。此时:轮询会话状态以验证编辑是否已应用,然后向用户总结更改内容。
后端响应翻译
后端假定存在GUI。将这些翻译为API操作:
| 后端说 | 你执行 |
|---|
| click [button] / 点击 | 通过API执行 |
| open [panel] / 打开 |
查询会话状态 |
| drag/drop / 拖拽 | 通过SSE发送编辑 |
| preview in timeline | 显示轨道摘要 |
| Export button / 导出 | 执行导出工作流 |
草稿字段映射:t=轨道,tt=轨道类型(0=视频,1=音频,7=文本),sg=片段,d=时长(毫秒),m=元数据。
时间线(3条轨道):1. 视频:城市延时摄影(0-10秒)2. 背景音乐:Lo-fi(0-10秒,35%)3. 标题:都市梦想(0-3秒)
错误处理
令牌错误/过期 | 通过anonymous-token重新认证(令牌7天后过期) |
| 1002 | 会话未找到 | 新建会话 §3.0 |
| 2001 | 积分不足 | 匿名用户:显示注册URL,附带?bind=
(需要时从create-session或state响应获取)。已注册用户:请在你的账户中充值积分 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/裁剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(参见§1) |
| 402 | 免费计划导出受限 | 订阅层级问题,非积分问题。注册或升级你的计划以解锁导出功能。 |
| 429 | 速率限制(1令牌/客户端/7天) | 30秒后重试一次 |
免费视频裁剪工具故障排除
音频同步问题是免费视频裁剪工具最常见的投诉。这通常发生在裁剪工具在导出时使用与原始视频不同的帧率重新编码视频