Getting Started
Welcome to your video-editor-online workspace — whether you're trimming a raw recording or building a fully captioned reel from scratch, you're in the right place. Drop your video details or describe what you need edited and let's get it done.
Try saying:
- - "I have a 12-minute screen recording of a tutorial — help me cut it down to the key moments and add chapter markers for YouTube"
- "Convert my horizontal 16:9 wedding highlight clip to a 9:16 vertical format for Instagram Reels without cropping out the subjects"
- "My podcast video has inconsistent audio levels and I need to add auto-synced captions before uploading to LinkedIn — what's the best approach?"
Getting Connected
Before handling any user request, establish a connection to the backend API. Show a brief status like "Connecting...".
If NEMO_TOKEN is in the environment, use it directly and create a session. Otherwise, acquire a free starter token:
- - Generate a UUID as client identifier
- POST to
https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with the X-Client-Id header - The response includes a
token with 100 free credits valid for 7 days — use it as NEMO_TOKEN
Then create a session by POSTing to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer authorization and body {"task_name":"project","language":"en"}. The session_id in the response is needed for all following requests.
Tell the user you're ready. Keep the technical details out of the chat.
Edit Any Video Without Leaving Your Browser
Most people don't need a full desktop suite — they need to trim a clip, slap on some captions, and get it uploaded before the moment passes. This skill is built around that reality. Whether you're cutting down a long recording into a punchy 60-second reel or converting horizontal footage into a vertical format for Instagram Stories, the video-editor-online workflow keeps things fast and friction-free.
You describe what you want — in plain language — and this skill maps your intent to the right editing actions. Want to remove the first 10 seconds, add auto-generated subtitles, and export at 1080p? Just say so. No menus to dig through, no timeline drag-and-drop required unless you want it.
It also handles the less obvious stuff: suggesting cuts based on pacing, recommending export settings for YouTube vs. TikTok, and flagging common mistakes like mismatched audio levels or incorrect frame rates. It's the kind of guidance you'd get from a video editor friend who actually knows what they're doing.
Routing Edits to the Right Pipeline
When you submit a trim, cut, merge, or export request, ClawHub parses your intent and routes it to the matching video processing endpoint based on the operation type, codec requirements, and output format you've selected.
| 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 Rendering API Reference
All timeline renders, frame extractions, and transcode jobs run through a distributed cloud backend that handles H.264, H.265, and WebM encoding without touching your local CPU. Processed assets are temporarily staged in a secure buffer and streamed directly to your browser for download once the render pipeline completes.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE8 - INLINECODE9 : from frontmatter INLINECODE10
- INLINECODE11 : 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: INLINECODE21
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: INLINECODE31
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE35
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE39
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 Common Video Editor Online Issues
Export fails or stalls at a certain percentage — This usually happens when the source file has a codec your browser-based editor doesn't support natively (common with .MKV or older .AVI files). Convert your source to H.264 MP4 before importing and you'll avoid 90% of export failures.
Subtitles are out of sync after export — If your video was recorded at a variable frame rate (common with screen recorders and phone cameras), subtitle timing calculated at a fixed frame rate will drift. Re-encode the source at a constant frame rate (24fps or 30fps) before adding captions.
Video looks pixelated after export — Check your export bitrate. Many online editors default to low bitrate settings to reduce file size. For 1080p content, aim for at least 8 Mbps for standard motion and 16+ Mbps for fast-moving footage.
Audio and video fall out of sync mid-clip — This is almost always a source file issue, not an editor bug. Run your file through a remux tool to realign the audio track before editing.
Integration Guide — Connecting Video Editor Online to Your Workflow
Connecting to cloud storage — Most browser-based video editors support direct import from Google Drive, Dropbox, and OneDrive. Instead of uploading large files each time, link your cloud folder once and pull footage directly. This is especially useful for teams sharing raw footage across locations.
Automating repetitive edits with templates — If you produce recurring content formats — weekly recaps, product demos, interview cuts — build a reusable template with your intro, outro, font styles, and color grades locked in. Export the template and import it at the start of each new project to skip the setup phase entirely.
Publishing directly to platforms — Several video-editor-online tools support one-click publishing to YouTube, TikTok, and Instagram. Set up your channel credentials inside the editor's publish settings once, then export and post without downloading the file to your device first. This cuts the final step of your workflow significantly.
Webhook and Zapier triggers — If your editor supports it, set up a Zap that notifies your team in Slack or sends a review link via email the moment an export completes. Keeps feedback loops tight without manual status updates.
开始使用
欢迎进入你的在线视频编辑器工作区——无论是剪辑原始录制内容,还是从头制作带字幕的完整短片,你都来对地方了。只需提供你的视频详情或描述你需要编辑的内容,我们就能完成工作。
试试这样说:
- - 我有一段12分钟的教程屏幕录制——帮我剪辑出关键片段,并为YouTube添加章节标记
- 将我的16:9横向婚礼精彩片段转换为9:16纵向格式用于Instagram Reels,且不裁剪掉主体
- 我的播客视频音频电平不一致,需要在上传到LinkedIn之前添加自动同步字幕——最佳方案是什么?
建立连接
在处理任何用户请求之前,先建立与后端API的连接。显示一个简短的状态提示,如正在连接...。
如果环境中存在NEMO_TOKEN,直接使用它并创建一个会话。否则,获取一个免费的起始令牌:
- - 生成一个UUID作为客户端标识符
- 使用X-Client-Id头向https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token发送POST请求
- 响应中包含一个token,附带100个免费积分,有效期7天——将其用作NEMO_TOKEN
然后创建会话,向https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemoagent发送POST请求,使用Bearer授权和请求体{taskname:project,language:en}。响应中的session_id在后续所有请求中都需要使用。
告诉用户你已准备就绪。不要在聊天中透露技术细节。
无需离开浏览器即可编辑任何视频
大多数人不需要完整的桌面套件——他们只需要剪辑一段片段、添加一些字幕,然后在时机过去之前上传。本技能正是基于这一现实而构建。无论你是将长录制内容剪辑成精炼的60秒短片,还是将横向素材转换为Instagram故事的纵向格式,在线视频编辑器工作流程都能保持快速且无摩擦。
你用通俗的语言描述你想要的效果,本技能会将你的意图映射到正确的编辑操作。想要删除前10秒、添加自动生成的字幕并以1080p导出?直接说出来就行。无需翻阅菜单,除非你需要,否则也不需要时间轴拖放操作。
它还能处理不太明显的问题:根据节奏建议剪辑点、推荐YouTube与TikTok的导出设置、标记常见错误如音频电平不匹配或帧率不正确。这就像从一个真正懂行的视频编辑朋友那里得到的指导。
将编辑路由到正确的处理管道
当你提交修剪、剪切、合并或导出请求时,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参考
所有时间轴渲染、帧提取和转码任务都通过分布式云端后端运行,处理H.264、H.265和WebM编码,无需占用本地CPU。处理后的资产临时存储在安全缓冲区中,并在渲染管道完成后直接流式传输到浏览器供下载。
技能归属——运行时从此文件的YAML前置元数据读取:
- - X-Skill-Source:video-editor-online
- 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=@/path,或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. 标题:Urban Dreams(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秒后重试一次 |
常见在线视频编辑器问题排查
导出在某个百分比失败或卡住——这通常是因为源文件包含浏览器编辑器不原生支持的编解码器(常见于.MKV或较旧的.AVI文件)。在导入前将源文件