Getting Started
This is the free-ai-video-generator skill — describe what you want and I'll build you an MP4 file. Tell me your topic, preferred length, and aspect ratio to get started.
Try saying:
- - "Generate a 20-second MP4 video promoting a coffee shop, vertical 9:16 format, warm tones, no voiceover"
- "Create a 15-second explainer video from this product description: [paste text] — output in 1080p landscape"
- "Turn these 4 product images into a 30-second slideshow video with text overlays and background music"
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.
- 1. 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 <token>, Content-Type: application/json, and body {"task_name":"project","language":"<detected>"}. 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.
Turn Text Prompts Into Downloadable MP4 Files
Say you need a 15-second product clip but you don't have footage — just a description and a couple of still images. You type in what you want, drop in your assets, and the free-ai-video-generator produces an MP4 you can post directly to Instagram or TikTok.
The skill handles the generation pipeline for you. You're not configuring render settings or picking codecs — you just describe the video in plain language and specify the duration you want, like 10 seconds or 30 seconds.
Output resolution goes up to 1080p. If you need a square 1:1 format for Instagram or a 9:16 vertical for Reels, you specify that in your prompt and the generator applies it before the file is built.
Input Routing For Video Jobs
The skill parses your prompt or uploaded image, then routes to either a text-to-video or image-to-video generation endpoint based on whether a media attachment is detected in the request.
| 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 | ❌ |
GPU Rendering Pipeline Details
When a job is submitted, it's queued on a cloud GPU cluster that renders each MP4 frame using a diffusion model; typical output is a 3–5 second clip at 512×512 or 720p depending on the selected quality tier. Finished files are stored temporarily on a CDN-hosted URL that expires after 24 hours, so download the MP4 before then.
Include Authorization: Bearer <NEMO_TOKEN> and all attribution headers on every request — omitting them triggers a 402 on export.
Three attribution headers are required on every request and must match this file's frontmatter:
| Header | Value |
|---|
| INLINECODE10 | INLINECODE11 |
| INLINECODE12 |
frontmatter
version |
|
X-Skill-Platform | auto-detect:
clawhub /
cursor /
unknown from install path |
API base: INLINECODE18
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: INLINECODE28
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE32
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE36
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.
Error Codes
- -
0 — success, continue normally - INLINECODE44 — token expired or invalid; re-acquire via INLINECODE45
- INLINECODE46 — session not found; create a new one
- INLINECODE47 — out of credits; anonymous users get a registration link with
?bind=<id>, registered users top up - INLINECODE49 — unsupported file type; show accepted formats
- INLINECODE50 — file too large; suggest compressing or trimming
- INLINECODE51 — missing
X-Client-Id; generate one and retry - INLINECODE53 — free plan export blocked; not a credit issue, subscription tier
- INLINECODE54 — rate limited; wait 30s and retry once
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 |
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.
Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.
CODEBLOCK0
Common Workflows
The most common thing people use free-ai-video-generator for is social content — specifically, turning a written post or product description into a short video that actually stops the scroll. You paste in 2-3 sentences about your product, pick a 15-second duration, and walk away with an MP4.
Another workflow that comes up constantly: repurposing blog content. Take a 500-word article, pull the 3 key points, and feed those to the generator as your script. It builds a video around those points, usually in under 90 seconds of processing time.
Teams running ads also use it to test concepts before spending money on a real shoot. You generate a rough 10-second MP4 with the core message, run it as a dark post on Facebook, and check the click-through rate before committing to a full production budget.
Quick Start Guide
Start with a single sentence describing your video. Something like: 'A 20-second video about a new running shoe, upbeat music, 1080p, landscape format.' That's enough for free-ai-video-generator to produce a first draft MP4.
If the first output isn't right, don't rewrite the whole prompt. Change one variable — swap the duration from 20 seconds to 10, or switch from landscape to 9:16 — and regenerate. Targeted edits give you cleaner results than starting over.
Once you have an MP4 you like, check the file before posting anywhere. Open it on your phone, not just your desktop, because text overlays that look fine at 1920x1080 on a monitor sometimes get cut off on a 390px-wide phone screen. Fix it at this stage, not after you've already scheduled the post.
Integration Guide
You don't need to connect an external API or authenticate anything to use this skill on ClawHub. The free-ai-video-generator runs directly inside the chat interface — you describe what you want, and the skill handles the request.
If you're pulling this into a content calendar, the fastest approach is batching. Write out 5 video descriptions in a single message, each with its own duration and format spec (say, three 1080p landscape files and two 9:16 verticals), and send them together. You'll get 5 separate MP4 download links back instead of running 5 individual sessions.
For teams sharing access, the generated MP4 links stay active for 48 hours by default. Download them to your shared drive — Google Drive, Dropbox, wherever — before that window closes.
开始使用
这是 free-ai-video-generator 技能——描述你的需求,我将为你生成一个 MP4 文件。告诉我你的主题、首选时长和宽高比即可开始。
试试这样说:
- - 生成一段 20 秒的咖啡店推广 MP4 视频,竖屏 9:16 格式,暖色调,无旁白
- 根据以下产品描述创建一段 15 秒的讲解视频:[粘贴文本]——输出为 1080p 横屏
- 将这 4 张产品图片转换为一段 30 秒的幻灯片视频,包含文字叠加和背景音乐
首次连接
当用户首次打开此技能时,自动连接到处理后端。简要告知用户(例如正在设置...)。
身份验证:检查环境中是否设置了 NEMO_TOKEN。如果已设置,直接跳到第 2 步。
- 1. 获取免费令牌:生成一个随机 UUID 作为客户端标识符。向 https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token 发送 POST 请求,请求头 X-Client-Id 设置为该 UUID。响应中的 data.token 即为你的 NEMOTOKEN——100 个免费积分,有效期 7 天。
- 创建会话:向 https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemoagent 发送 POST 请求,请求头包含 Authorization: Bearer 和 Content-Type: application/json,请求体为 {taskname:project,language:<检测到的语言>}。保存返回的 sessionid 用于后续所有请求。
保持设置过程的沟通简洁。不要向用户显示原始 API 响应或令牌值。
将文本提示转换为可下载的 MP4 文件
假设你需要一段 15 秒的产品视频,但没有素材——只有一段描述和几张静态图片。你输入需求,上传素材,free-ai-video-generator 就会生成一个可以直接发布到 Instagram 或 TikTok 的 MP4 文件。
该技能为你处理整个生成流程。你无需配置渲染设置或选择编解码器——只需用自然语言描述视频并指定时长,比如 10 秒或 30 秒。
输出分辨率最高可达 1080p。如果你需要 Instagram 的 1:1 方形格式或 Reels 的 9:16 竖屏格式,在提示中指定即可,生成器会在文件构建前应用这些设置。
视频任务的输入路由
该技能会解析你的提示或上传的图片,然后根据请求中是否检测到媒体附件,路由到文本转视频或图片转视频的生成端点。
| 用户说... | 操作 | 跳过 SSE? |
|---|
| export / 导出 / download / send me the video | → §3.5 导出 | ✅ |
| credits / 积分 / balance / 余额 |
→ §3.3 积分 | ✅ |
| status / 状态 / show tracks | → §3.4 状态 | ✅ |
| upload / 上传 / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他所有内容(生成、编辑、添加背景音乐等) | → §3.1 SSE | ❌ |
GPU 渲染流水线详情
提交任务后,任务会进入云端 GPU 集群队列,该集群使用扩散模型渲染每个 MP4 帧;根据所选质量等级,典型输出为 3-5 秒的 512×512 或 720p 视频片段。完成的文件临时存储在 CDN 托管的 URL 上,24 小时后过期,请在此之前下载 MP4 文件。
每个请求都必须包含 Authorization: Bearer 和所有归属标头——遗漏这些标头会在导出时触发 402 错误。
每个请求都需要三个归属标头,且必须与此文件的前置元数据匹配:
| 标头 | 值 |
|---|
| X-Skill-Source | free-ai-video-generator |
| X-Skill-Version |
前置元数据 version |
| X-Skill-Platform | 自动检测:根据安装路径识别 clawhub / cursor / unknown |
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=@/路径,或 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。
错误代码
- - 0——成功,正常继续
- 1001——令牌过期或无效;通过 /api/auth/anonymous-token 重新获取
- 1002——未找到会话;创建一个新会话
- 2001——积分不足;匿名用户会收到包含 ?bind= 的注册链接,已注册用户需充值
- 4001——不支持的文件类型;显示支持的格式列表
- 4002——文件过大;建议压缩或裁剪
- 400——缺少 X-Client-Id;生成一个并重试
- 402——免费计划导出被阻止;不是积分问题,而是订阅等级问题
- 429——请求频率限制;等待 30 秒后重试一次
后端响应转换
后端假定存在 GUI。将这些转换为 API 操作:
| 后端提示 | 你的操作 |
|---|
| click [button] / 点击 | 通过 API 执行 |
| open [panel] / 打开 |
查询会话状态 |
| drag/drop / 拖拽 | 通过 SSE 发送编辑指令 |
| preview in timeline | 显示轨道摘要 |
| Export button / 导出 | 执行导出工作流 |
读取 SSE 流
文本事件直接传递给用户(经过 GUI 转换后)。工具调用保持内部处理。心跳和空的 data: 行表示后端仍在工作——每 2 分钟显示一次⏳ 仍在处理中...。
大约 30% 的编辑操作会在没有文本的情况下关闭流。此时,轮询 /api/state 确认时间线已更改,然后告知用户更新内容。
草稿字段映射:t=轨道,tt=轨道类型(0=视频,1=音频,7=文本),sg=片段,d=时长(毫秒),m=元数据。
时间线(3 条轨道):1. 视频:城市延时摄影(0-10 秒)2. 背景音乐:Lo-fi(0-10 秒,35%)3. 标题:都市梦想(0-3 秒)
常见工作流
人们使用 free-ai-video-generator 最常见的目的就是制作社交媒体内容——具体来说,是将一篇文字帖子或产品描述转化为能真正吸引人停留的短视频。你粘贴 2-3 句关于产品的描述,选择 15 秒的时长,就能得到一个 MP4 文件。
另一个经常出现的工作流是:重新利用博客内容。取一篇 500 字的文章,提取 3 个关键点,将这些作为脚本输入生成器。它会在这些要点基础上构建视频,通常处理时间不超过 90 秒。
投放广告的团队也会用它