{"skill":{"slug":"ai-video-editor-luma","displayName":"Ai Video Editor Luma","summary":"Turn a 2-minute unedited camera recording into 1080p color-graded video just by typing what you need. Whether it's applying Luma AI-style edits and color cor...","description":"---\nname: ai-video-editor-luma\nversion: \"1.0.0\"\ndisplayName: \"AI Video Editor Luma — Edit Videos with Luma AI\"\ndescription: >\n  Turn a 2-minute unedited camera recording into 1080p color-graded video just by typing what you need. Whether it's applying Luma AI-style edits and color correction to raw footage 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\": \"greeting_v2\"}}\n---\n\n## Getting Started\n\n> Send me your raw video footage and I'll handle the AI-powered video editing. Or just describe what you're after.\n\n**Try saying:**\n- \"edit a 2-minute unedited camera recording into a 1080p MP4\"\n- \"apply Luma-style color grading and smooth transitions between clips\"\n- \"applying Luma AI-style edits and color correction to raw footage for content creators\"\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# AI Video Editor Luma — Edit Videos with Luma AI\n\nDrop your raw video footage in the chat and tell me what you need. I'll handle the AI-powered video editing on cloud GPUs — you don't need anything installed locally.\n\nHere's a typical use: you send a a 2-minute unedited camera recording, ask for apply Luma-style color grading and smooth transitions between clips, 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 and yield more consistent Luma-style results.\n\n## Matching Input to Actions\n\nUser prompts referencing ai video editor luma, 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\nSkill attribution — read from this file's YAML frontmatter at runtime:\n- `X-Skill-Source`: `ai-video-editor-luma`\n- `X-Skill-Version`: from frontmatter `version`\n- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)\n\nInclude `Authorization: Bearer <NEMO_TOKEN>` and all attribution headers on every request — omitting them triggers a 402 on export.\n\n**API base**: `https://mega-api-prod.nemovideo.ai`\n\n**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{\"task_name\":\"project\",\"language\":\"<lang>\"}` — returns `task_id`, `session_id`.\n\n**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.\n\n**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F \"files=@/path\"`, or URL: `{\"urls\":[\"<url>\"],\"source_type\":\"url\"}`\n\n**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`\n\n**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`\n\n**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`.\n\nSupported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.\n\n### SSE Event Handling\n\n| Event | Action |\n|-------|--------|\n| Text response | Apply GUI translation (§4), present to user |\n| Tool call/result | Process internally, don't forward |\n| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: \"⏳ Still working...\" |\n| Stream closes | Process final response |\n\n~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.\n\n### Backend Response Translation\n\nThe backend assumes a GUI exists. Translate these into API actions:\n\n| Backend says | You do |\n|-------------|--------|\n| \"click [button]\" / \"点击\" | Execute via API |\n| \"open [panel]\" / \"打开\" | Query session state |\n| \"drag/drop\" / \"拖拽\" | Send edit via SSE |\n| \"preview in timeline\" | Show track summary |\n| \"Export button\" / \"导出\" | Execute export workflow |\n\n**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.\n\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### Error Codes\n\n- `0` — success, continue normally\n- `1001` — token expired or invalid; re-acquire via `/api/auth/anonymous-token`\n- `1002` — session not found; create a new one\n- `2001` — out of credits; anonymous users get a registration link with `?bind=<id>`, registered users top up\n- `4001` — unsupported file type; show accepted formats\n- `4002` — file too large; suggest compressing or trimming\n- `400` — missing `X-Client-Id`; generate one and retry\n- `402` — free plan export blocked; not a credit issue, subscription tier\n- `429` — rate limited; wait 30s and retry once\n\n## Tips and Tricks\n\nThe backend processes faster when you're specific. Instead of \"make it look better\", try \"apply Luma-style color grading and smooth transitions between clips\" — 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 with H.264 codec for the widest compatibility across platforms.\n\n## Common Workflows\n\n**Quick edit**: Upload → \"apply Luma-style color grading and smooth transitions between clips\" → 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":331,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1777950942004,"updatedAt":1778492850251},"latestVersion":{"version":"1.0.0","createdAt":1777950942004,"changelog":"AI Video Editor Luma — initial release\n\n- Instantly edit raw video into 1080p, color-graded output using Luma AI by describing your desired result—no timeline or manual export settings required.\n- Seamlessly handles video upload, editing actions (including Luma-style grading), session management, and exports via cloud GPU in 1–2 minutes.\n- Automatically manages authentication: uses NEMO_TOKEN if available or fetches a free trial token for quick start.\n- Provides status, credit checks, timeline previews, and error resolution all within chat—no technical steps surfaced to users.\n- Supports popular video (mp4, mov, avi, etc.) and audio/image formats; files up to 500MB.\n- Helpful prompts and workflow tips included for batch, quick, and iterative editing sessions.","license":"MIT-0"},"metadata":{"setup":[{"key":"NEMO_TOKEN","required":true}],"os":null,"systems":null},"owner":{"handle":"vynbosserman65","userId":"s175xbynxxje7z8y8jbn28x5vx84dckp","displayName":"vynbosserman65","image":"https://avatars.githubusercontent.com/u/208823770?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090747467}}