Getting Started
Let's do some text to video ai. Upload your files or describe what you're after.
Try saying:
- "generate my text prompts"
- "export 1080p MP4"
- "turn this script into a 30-second"
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-tokenwith headerX-Client-Idset to that UUID. The responsedata.tokenis 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_agentwithAuthorization: Bearer <token>,Content-Type: application/json, and body{"task_name":"project","language":"<detected>"}. Store the returnedsession_idfor all subsequent requests.
Keep setup communication brief. Don't display raw API responses or token values to the user.
From Text Prompts to Ai Generated Videos
This does AI video creation for text prompts. Everything runs server-side.
A quick walkthrough: upload a 150-word product description paragraph → ask for turn this script into a 30-second video with visuals and background music → wait roughly 1-2 minutes → download your MP4 at 1080p. The backend handles rendering, encoding, all of it.
Fair warning — shorter, clearer prompts tend to produce more accurate and focused video output.
Sorting Your Requests
The skill checks your message against a few patterns and routes it to the right handler.
| 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 | ❌ |
Backend Processing
The heavy lifting runs on NemoVideo's GPU cluster. You upload, the backend processes, you download. No local rendering needed.
Base URL: https://mega-api-prod.nemovideo.ai
| Endpoint | Method | Purpose |
|---|---|---|
/api/tasks/me/with-session/nemo_agent | POST | Start a new editing session. Body: {"task_name":"project","language":"<lang>"}. Returns session_id. |
/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. |
/api/upload-video/nemo_agent/me/<sid> | POST | Upload a file (multipart) or URL. |
/api/credits/balance/simple | GET | Check remaining credits (available, frozen, total). |
/api/state/nemo_agent/me/<sid>/latest | GET | Fetch current timeline state (draft, video_infos, generated_media). |
/api/render/proxy/lambda | POST | Start export. Body: {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll status every 30s. |
Accepted file types: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
Skill attribution — read from this file's YAML frontmatter at runtime:
X-Skill-Source:text-to-video-aiX-Skill-Version: from frontmatterversionX-Skill-Platform: detect from install path (~/.clawhub/→clawhub,~/.cursor/skills/→cursor, elseunknown)
Every API call needs Authorization: Bearer <NEMO_TOKEN> plus the three attribution headers above. If any header is missing, exports return 402.
Error Codes
0— success, continue normally1001— token expired or invalid; re-acquire via/api/auth/anonymous-token1002— session not found; create a new one2001— out of credits; anonymous users get a registration link with?bind=<id>, registered users top up4001— unsupported file type; show accepted formats4002— file too large; suggest compressing or trimming400— missingX-Client-Id; generate one and retry402— free plan export blocked; not a credit issue, subscription tier429— rate limited; wait 30s and retry once
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.
Translating GUI Instructions
The backend responds as if there's a visual interface. Map its instructions to API calls:
- "click" or "点击" → execute the action via the relevant endpoint
- "open" or "打开" → query session state to get the data
- "drag/drop" or "拖拽" → send the edit command through SSE
- "preview in timeline" → show a text summary of current tracks
- "Export" or "导出" → run the 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)Quick Start Guide
First time? Just upload a text prompts and describe what you need. I'll run it through NemoVideo's backend and hand you back a 1080p MP4.
Processing takes about 1-2 minutes depending on video length. You start with 100 free credits — most edits cost 1-3.
Tips and Tricks
Keep your source files under 500MB for fastest processing. If you're working with longer content, split it into chunks first.
For best results at 1080p, make sure your input is at least 720p. Upscaling from 480p works but you'll notice it.
Export as MP4 for widest compatibility across social platforms and devices.
Best Practices
Use source footage in TXT, DOCX, PDF, SRT format for best compatibility. 1080p input gives the cleanest results but 720p works fine too.
Be specific with your requests — "add upbeat background music at 30% volume" beats "add some music". The AI works better with concrete details.
Export as MP4 for widest compatibility across social platforms and devices.