入门
有屏幕录制素材要处理?发给我并告诉我你的需求——我会帮你处理在线屏幕录制。
试试这样说:
- "capture a 3-minute browser session recording into a 1080p MP4"
- "record my screen and export it as an MP4 I can share"
- "recording browser or desktop activity directly in the browser for students, remote workers, and educators"
首次连接
当用户首次打开此技能时,自动连接到处理后端。简要告知他们(例如"正在设置...")。
认证:检查环境变量中是否设置了NEMO_TOKEN。如果已设置,跳过步骤2。
- 获取免费令牌:生成随机UUID作为客户端标识符。使用header
X-Client-Id设置为该UUID,POST到https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token。响应中的data.token就是你的NEMO_TOKEN——100免费积分,7天有效。
- 创建会话:使用
Authorization: Bearer 、Content-Type: application/json,POST到https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent,body为{"task_name":"project","language":""}。为所有后续请求存储返回的session_id。保持设置通信简洁。不要向用户显示原始API响应或令牌值。
# Screen Record Online — 录制屏幕并导出MP4
将你的屏幕录制素材拖入聊天并告诉我你的需求。我会通过云端GPU处理在线屏幕录制——你不需要本地安装任何东西。
一个典型的用例是:你发送一个3分钟的浏览器会话录制,说"record my screen and export it as an MP4 I can share",大约一分钟后你就可以下载MP4文件了。默认情况下整个过程以1080p运行。
值得注意的是——5分钟以内的较短录制处理和导出速度最快。
用户提示与操作匹配
引用screen record online、宽高比、文字叠加或音轨的用户提示通过关键词和意图分类路由到相应的操作。
| 用户说... | 操作 | 跳过SSE? |
|---|
| "export" / "导出" / "download" / "send me the video" | → §3.5 导出 | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 积分 | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 状态 | ✅ |
| "upload" / "上传" / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他一切(生成、编辑、添加BGM…) | → §3.1 SSE | ❌ |
云渲染管道详情
每个导出任务在云GPU节点上排队,该节点合成视频层、应用平台特定压缩(H.264,最高1080x1920),并在30-90秒内返回下载URL。会话令牌携带渲染作业ID,因此在完成前关闭标签页会使作业孤立。
技能归属——在运行时从此文件的YAML frontmatter读取:
X-Skill-Source: screen-record-online
X-Skill-Version: 来自frontmatter version
X-Skill-Platform: 从安装路径检测(~/.clawhub/ → clawhub,~/.cursor/skills/ → cursor,否则为unknown)
所有请求必须包含:Authorization: Bearer 、X-Skill-Source、X-Skill-Version、X-Skill-Platform。缺少归属头将导致导出失败并返回402。
API基础URL:https://mega-api-prod.nemovideo.ai
创建会话:POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":""} — 返回task_id、session_id。
发送消息(SSE):POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"","new_message":{"parts":[{"text":""}]}} with Accept: text/event-stream。最长超时:15分钟。
上传:POST /api/upload-video/nemo_agent/me/ — 文件:multipart -F "files=@/path",或URL:{"urls":[""],"source_type":"url"}
积分:GET /api/credits/balance/simple — 返回available、frozen、total
会话状态:GET /api/state/nemo_agent/me//latest — 关键字段:data.state.draft、data.state.video_infos、data.state.generated_media
导出(免费,不消耗积分):POST /api/render/proxy/lambda — body {"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翻译后)。工具调用保留在内部。心跳和空的data:行意味着后端仍在工作——每2分钟显示"⏳ 仍在处理中..."。约30%的编辑操作会关闭流而不发送任何文本。发生这种情况时,轮询/apiState确认时间线已更改,然后告诉用户更新了什么。
后端响应翻译
后端假设存在GUI。将这些翻译成API操作:
| 后端说 | 你执行 |
|---|
| "click [button]" / "点击" | 通过API执行 |
| "open [panel]" / "打开" | 查询会话状态 |
| "drag/drop" / "拖拽" | 通过SSE发送编辑 |
| "preview in timeline" | 显示轨道摘要 |
| "Export button" / "导出" | 执行导出工作流 |
Draft JSON使用短键:
t表示轨道,
tt表示轨道类型(0=视频,1=音频,7=文本),
sg表示片段,
d表示持续时间(毫秒),
m表示元数据。
示例时间线摘要:
时间线(3个轨道):
- 视频:城市延时(0-10秒)
- BGM:Lo-fi(0-10秒,35%)
- 标题:"Urban Dreams"(0-3秒)
错误处理
| 代码 | 含义 | 操作 |
|---|
| 0 | 成功 | 继续 |
| 1001 | 令牌无效/过期 | 通过anonymous-token重新认证(令牌7天后过期) |
| 1002 | 会话未找到 | 新建会话 §3.0 |
| 2001 | 积分不足 | 匿名:显示注册URL带?bind=(需要时从创建会话或状态响应获取)。已注册:在账户中充值积分 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/裁剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(见§1) |
| 402 | 免费计划导出被阻止 | 订阅层级问题,不是积分问题。"注册或升级你的计划以解锁导出。" |
| 429 | 速率限制(每个令牌/客户端/7天) | 30秒后重试一次 |
常见工作流
快速编辑:上传 → "record my screen and export it as an MP4 I can share" → 下载MP4。30秒片段不到一分钟完成。
批量处理:在一个会话中上传多个文件。用不同指令逐一处理。每个都有自己的渲染任务。
迭代:从粗剪开始,预览结果,然后细化。会话保持你的时间线状态,所以你可以继续调整。
技巧和窍门
后端在你具体说明时处理更快。不要说"让它看起来更好",试着说"record my screen and export it as an MP4 I can share"——具体指令获得更好的结果。
最大文件大小为500MB。坚持使用MP4、WebM、MOV、AVI以获得最流畅的体验。导出为MP4以获得设备和平台的最大兼容性。
Getting Started
Got screen capture footage to work with? Send it over and tell me what you need — I'll take care of the online screen recording.
Try saying:
- "capture a 3-minute browser session recording into a 1080p MP4"
- "record my screen and export it as an MP4 I can share"
- "recording browser or desktop activity directly in the browser for students, remote workers, and educators"
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.
- 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 , Content-Type: application/json, and body {"task_name":"project","language":""}. 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.
# Screen Record Online — Record Screen and Export MP4
Drop your screen capture footage in the chat and tell me what you need. I'll handle the online screen recording on cloud GPUs — you don't need anything installed locally.
Here's a typical use: you send a a 3-minute browser session recording, ask for record my screen and export it as an MP4 I can share, and about under a minute later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.
One thing worth knowing — shorter recordings under 5 minutes process and export fastest.
Matching Input to Actions
User prompts referencing screen record online, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.
| 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 Render Pipeline Details
Each export job queues on a cloud GPU node that composites video layers, applies platform-spec compression (H.264, up to 1080x1920), and returns a download URL within 30-90 seconds. The session token carries render job IDs, so closing the tab before completion orphans the job.
Skill attribution — read from this file's YAML frontmatter at runtime:
X-Skill-Source: screen-record-online
X-Skill-Version: from frontmatter version
X-Skill-Platform: detect from install path (~/.clawhub/ → clawhub, ~/.cursor/skills/ → cursor, else unknown)
All requests must include: Authorization: Bearer , X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.
API base: https://mega-api-prod.nemovideo.ai
Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":""} — returns task_id, session_id.
Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"","new_message":{"parts":[{"text":""}]}} with Accept: text/event-stream. Max timeout: 15 minutes.
Upload: POST /api/upload-video/nemo_agent/me/ — file: multipart -F "files=@/path", or URL: {"urls":[""],"source_type":"url"}
Credits: GET /api/credits/balance/simple — returns available, frozen, total
Session state: GET /api/state/nemo_agent/me//latest — key fields: data.state.draft, data.state.video_infos, data.state.generated_media
Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_","sessionId":"","draft":,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/ 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.
Reading the SSE Stream
Text events go straight to the user (after GUI translation). Tool calls stay internal. Heartbeats and empty data: lines mean the backend is still working — show "⏳ Still working..." every 2 minutes.
About 30% of edit operations close the stream without any text. When that happens, poll /api/state to confirm the timeline changed, then tell the user what was updated.
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 JSON uses short keys:
t for tracks,
tt for track type (0=video, 1=audio, 7=text),
sg for segments,
d for duration in ms,
m for metadata.
Example timeline summary:
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
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= (get 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 |
Common Workflows
Quick edit: Upload → "record my screen and export it as an MP4 I can share" → Download MP4. Takes under a minute for a 30-second clip.
Batch style: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.
Iterative: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.
Tips and Tricks
The backend processes faster when you're specific. Instead of "make it look better", try "record my screen and export it as an MP4 I can share" — concrete instructions get better results.
Max file size is 500MB. Stick to MP4, WebM, MOV, AVI for the smoothest experience.
Export as MP4 for widest compatibility across devices and platforms.