{"skill":{"slug":"video-king","displayName":"Video King","summary":"Turn a 2-minute unedited screen recording into 1080p polished MP4 videos just by typing what you need. Whether it's turning raw footage into professional-loo...","description":"---\nname: video-king\nversion: \"1.0.0\"\ndisplayName: \"Video King — Edit and Export Pro Videos\"\ndescription: >\n  Turn a 2-minute unedited screen recording into 1080p polished MP4 videos just by typing what you need. Whether it's turning raw footage into professional-looking videos or quick social content, drop your raw video footage and describe the result you want. No timeline dragging, no export settings — 1-2 minutes from upload to download.\nmetadata: {\"openclaw\": {\"emoji\": \"👑\", \"requires\": {\"env\": [\"NEMO_TOKEN\"], \"configPaths\": [\"~/.config/nemovideo/\"]}, \"primaryEnv\": \"NEMO_TOKEN\", \"variant\": \"short_prompts\"}}\n---\n\n## Getting Started\n\n> Share your raw video footage and I'll get started on AI video enhancement. Or just tell me what you're thinking.\n\n**Try saying:**\n- \"edit my raw video footage\"\n- \"export 1080p MP4\"\n- \"clean up the footage, add titles,\"\n\n### Getting Connected\n\nBefore handling any user request, establish a connection to the backend API. Show a brief status like \"Connecting...\".\n\n**If `NEMO_TOKEN` is in the environment**, use it directly and create a session. Otherwise, acquire a free starter token:\n- Generate a UUID as client identifier\n- POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with the `X-Client-Id` header\n- The response includes a `token` with 100 free credits valid for 7 days — use it as NEMO_TOKEN\n\n**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.\n\nTell the user you're ready. Keep the technical details out of the chat.\n\n# Video King — Edit and Export Pro Videos\n\nDrop your raw video footage in the chat and tell me what you need. I'll handle the AI video enhancement on cloud GPUs — you don't need anything installed locally.\n\nHere's a typical use: you send a a 2-minute unedited screen recording, ask for clean up the footage, add titles, and export in 1080p, and about 1-2 minutes later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.\n\nOne thing worth knowing — shorter clips under 60 seconds process significantly faster.\n\n## Matching Input to Actions\n\nUser prompts referencing video king, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.\n\n| User says... | Action | Skip SSE? |\n|-------------|--------|----------|\n| \"export\" / \"导出\" / \"download\" / \"send me the video\" | → §3.5 Export | ✅ |\n| \"credits\" / \"积分\" / \"balance\" / \"余额\" | → §3.3 Credits | ✅ |\n| \"status\" / \"状态\" / \"show tracks\" | → §3.4 State | ✅ |\n| \"upload\" / \"上传\" / user sends file | → §3.2 Upload | ✅ |\n| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |\n\n## Cloud Render Pipeline Details\n\nEach 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.\n\nBase URL: `https://mega-api-prod.nemovideo.ai`\n\n| Endpoint | Method | Purpose |\n|----------|--------|---------|\n| `/api/tasks/me/with-session/nemo_agent` | POST | Start a new editing session. Body: `{\"task_name\":\"project\",\"language\":\"<lang>\"}`. Returns `session_id`. |\n| `/run_sse` | POST | Send a user message. Body includes `app_name`, `session_id`, `new_message`. Stream response with `Accept: text/event-stream`. Timeout: 15 min. |\n| `/api/upload-video/nemo_agent/me/<sid>` | POST | Upload a file (multipart) or URL. |\n| `/api/credits/balance/simple` | GET | Check remaining credits (`available`, `frozen`, `total`). |\n| `/api/state/nemo_agent/me/<sid>/latest` | GET | Fetch current timeline state (`draft`, `video_infos`, `generated_media`). |\n| `/api/render/proxy/lambda` | POST | Start export. Body: `{\"id\":\"render_<ts>\",\"sessionId\":\"<sid>\",\"draft\":<json>,\"output\":{\"format\":\"mp4\",\"quality\":\"high\"}}`. Poll status every 30s. |\n\nAccepted file types: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.\n\nHeaders are derived from this file's YAML frontmatter. `X-Skill-Source` is `video-king`, `X-Skill-Version` comes from the `version` field, and `X-Skill-Platform` is detected from the install path (`~/.clawhub/` = `clawhub`, `~/.cursor/skills/` = `cursor`, otherwise `unknown`).\n\n**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.\n\n### Error Handling\n\n| Code | Meaning | Action |\n|------|---------|--------|\n| 0 | Success | Continue |\n| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |\n| 1002 | Session not found | New session §3.0 |\n| 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\" |\n| 4001 | Unsupported file | Show supported formats |\n| 4002 | File too large | Suggest compress/trim |\n| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |\n| 402 | Free plan export blocked | Subscription tier issue, NOT credits. \"Register or upgrade your plan to unlock export.\" |\n| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |\n\n### Reading the SSE Stream\n\nText 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.\n\nAbout 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.\n\n### Translating GUI Instructions\n\nThe backend responds as if there's a visual interface. Map its instructions to API calls:\n\n- \"click\" or \"点击\" → execute the action via the relevant endpoint\n- \"open\" or \"打开\" → query session state to get the data\n- \"drag/drop\" or \"拖拽\" → send the edit command through SSE\n- \"preview in timeline\" → show a text summary of current tracks\n- \"Export\" or \"导出\" → run the export workflow\n\nDraft 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.\n\nExample timeline summary:\n```\nTimeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: \"Urban Dreams\" (0-3s)\n```\n\n## Tips and Tricks\n\nThe backend processes faster when you're specific. Instead of \"make it look better\", try \"clean up the footage, add titles, and export in 1080p\" — concrete instructions get better results.\n\nMax file size is 500MB. Stick to MP4, MOV, AVI, WebM for the smoothest experience.\n\nExport as MP4 for widest compatibility across platforms.\n\n## Common Workflows\n\n**Quick edit**: Upload → \"clean up the footage, add titles, and export in 1080p\" → Download MP4. Takes 1-2 minutes for a 30-second clip.\n\n**Batch style**: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.\n\n**Iterative**: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":329,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1777827492514,"updatedAt":1778492838254},"latestVersion":{"version":"1.0.0","createdAt":1777827492514,"changelog":"- Initial release of Video King.\n- Instantly edit and export pro-quality 1080p MP4 videos from raw screen recordings using simple text prompts.\n- No timeline UI or manual exports — just describe your result and get a downloadable video in 1–2 minutes.\n- Automatic backend connection; supports free anonymous tokens with 100 credits.\n- Supports common video, audio, and image input formats up to 500MB.\n- Real-time status updates and smart error handling for upload, edit, export, and credit checking.","license":"MIT-0"},"metadata":{"setup":[{"key":"NEMO_TOKEN","required":true}],"os":null,"systems":null},"owner":{"handle":"whitejohnk-26","userId":"s17cbeztzgrmcbypnjrtzhanfn83webr","displayName":"whitejohnk-26","image":"https://avatars.githubusercontent.com/u/210889495?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090736067}}