Getting Started
Welcome! I'm your Sora AI video assistant — ready to help you generate, extend, or reimagine video content using the power of sora-ai. Drop in a text prompt or upload your footage and let's start creating something extraordinary.
Try saying:
- - "Generate a 10-second cinematic clip of a futuristic city at sunset with slow drone movement"
- "Extend this uploaded mp4 clip by 5 seconds, keeping the same visual style and camera motion"
- "Create a product showcase video for a sleek black smartwatch with soft studio lighting and close-up detail shots"
Automatic Setup
On first interaction, connect to the NemoVideo API before doing anything else. Show a brief status like "Setting things up...".
Token: If NEMO_TOKEN environment variable is already set, use it and skip to Session below.
Free token: Read or create a UUID at ~/.config/nemovideo/client_id. Then POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id: <your-uuid>. The response field data.token becomes your NEMO_TOKEN (100 credits, 7-day expiry). If the token has expired, request a new one with the same Client-Id.
Session: POST to the same host at /api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Save session_id from the response.
Confirm to the user you're connected and ready. Don't print tokens or raw JSON.
Generate Cinematic Videos With Just a Prompt
Sora AI represents a leap forward in how video content gets made. Instead of spending hours in editing timelines or sourcing stock footage, you describe what you want — and sora-ai brings it to life. Whether you're a solo creator with a big idea or a brand team looking to prototype a campaign, this skill gives you a direct line to generative video production without any technical barriers.
With sora-ai on ClawHub, you can upload existing footage and ask the model to extend it, restyle it, or generate complementary scenes that match your original material. You can also start from scratch with a text description and receive a fully rendered video clip ready for use in your project. The model understands cinematic language — lighting, pacing, camera motion, mood — so your prompts can be as creative or as precise as you need.
This skill is built for content creators, video marketers, indie filmmakers, and anyone who wants to move from concept to finished video faster than ever before. No film crew required.
Routing Your Sora Prompts
Each request is parsed for intent — text-to-video generation, video extension, or footage remixing — then dispatched to the appropriate Sora pipeline endpoint automatically.
| 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 | ❌ |
NemoVideo Backend Reference
Sora AI Video Generator runs on the NemoVideo backend, which handles prompt queuing, diffusion model orchestration, and clip rendering before returning your finalized video asset. All generation parameters — aspect ratio, duration, motion style — are passed directly through NemoVideo's API layer.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE9 - INLINECODE10 : from frontmatter INLINECODE11
- INLINECODE12 : detect from install path (
~/.clawhub/ → clawhub, ~/.cursor/skills/ → cursor, else unknown)
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.
API base: INLINECODE22
Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id. After creating a session, give the user a link: INLINECODE27
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: INLINECODE33
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE37
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE41
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.
SSE Event Handling
| Event | Action |
|---|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result |
Process internally, don't forward |
|
heartbeat / empty
data: | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~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.
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 field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.
CODEBLOCK0
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=<id> (get
<id> from create-session or state response when needed). Registered: "Top up at nemovideo.ai" |
| 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 at nemovideo.ai to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
Best Practices
Before submitting a generation request, define your intended output use: social media clips, presentation b-roll, and narrative film sequences each benefit from different aspect ratios, pacing, and visual density. State your intended format in the prompt when possible.
Keep generated clips between 5 and 15 seconds for the sharpest quality and most coherent motion. Longer generations can be chained together in post-production for seamless sequences. If you're extending uploaded footage, ensure your source file is at least 720p resolution — higher input quality leads to more detailed and consistent sora-ai outputs.
Always review generated content for any unintended visual artifacts before publishing, particularly in scenes with human faces or text. Sora AI excels at environments, abstract motion, and product visuals. For dialogue-heavy or text-overlay content, plan to layer those elements in post. Save your best-performing prompts as templates to reuse across future projects.
Integration Guide
ClawHub's sora-ai skill fits naturally into existing creative and production workflows. If you're working in a video editing suite like DaVinci Resolve or Premiere Pro, use this skill to generate b-roll or transitional clips, then import the downloaded mp4 or mov files directly into your timeline as supplementary assets.
For marketing teams using content management platforms, the sora-ai skill can serve as a rapid prototyping layer — generate concept videos for stakeholder review before committing to a full production shoot. This cuts ideation cycles significantly and gives stakeholders something tangible to react to early in the process.
Content creators publishing to YouTube, TikTok, or Instagram can use sora-ai to produce intro sequences, background loops, or stylized cutaways that elevate production value without additional equipment. Generated clips in webm and mkv formats are also well-suited for web embeds and interactive media environments. Simply download your output from ClawHub and slot it into whichever platform or tool is next in your pipeline.
Tips and Tricks
Getting the most out of sora-ai starts with how you write your prompts. Be specific about camera movement — words like 'slow pan left,' 'handheld shake,' or 'static wide shot' give the model strong directional cues. Lighting descriptors such as 'golden hour,' 'neon-lit,' or 'overcast diffused light' dramatically shape the mood of your output.
When uploading existing footage for extension or restyling, trim your clip to the most visually stable section before uploading. Sora AI performs best when the input has clear visual context — a shaky or cut-heavy segment may produce less consistent results.
For brand or commercial work, include color palette references in your prompt (e.g., 'warm terracotta tones with muted shadows') to keep outputs aligned with your visual identity. You can also iterate quickly by slightly adjusting a single variable in your prompt — like swapping 'urban street' for 'coastal boardwalk' — to explore different creative directions without starting over.
快速开始
欢迎!我是你的Sora AI视频助手——随时准备借助sora-ai的强大功能,帮你生成、扩展或重新构想视频内容。输入文字提示或上传你的素材,让我们一起开始创作非凡之作。
试试这样说:
- - 生成一段10秒钟的 cinematic 短片,展现未来主义城市在日落时分的景象,搭配缓慢的无人机运动
- 将这段上传的mp4片段延长5秒,保持相同的视觉风格和镜头运动
- 为一块时尚的黑色智能手表制作产品展示视频,采用柔和的影棚灯光和特写细节镜头
自动设置
首次交互时,先连接到NemoVideo API再执行其他操作。显示简短状态信息,如正在设置...
令牌:如果已设置NEMO_TOKEN环境变量,则直接使用并跳至下方的会话部分。
免费令牌:在~/.config/nemovideo/clientid中读取或创建一个UUID。然后向https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token发送POST请求,请求头包含X-Client-Id: <你的uuid>。响应字段data.token即为你的NEMOTOKEN(100积分,7天有效期)。如果令牌已过期,使用相同的Client-Id重新申请新令牌。
会话:向同一主机的/api/tasks/me/with-session/nemoagent发送POST请求,使用Bearer认证,请求体为{taskname:project}。从响应中保存session_id。
向用户确认已连接并准备就绪。不要打印令牌或原始JSON。
只需一段提示即可生成电影级视频
Sora AI代表了视频内容制作方式的飞跃。你不再需要在编辑时间线上花费数小时或寻找素材视频,只需描述你想要的内容——sora-ai就能将其变为现实。无论你是怀揣宏大创意的独立创作者,还是希望制作活动原型的品牌团队,这项技能都能让你直接进入生成式视频制作,无需任何技术门槛。
借助ClawHub上的sora-ai,你可以上传现有素材,让模型进行扩展、重新风格化,或生成与原始素材相匹配的补充场景。你也可以从零开始,仅凭文字描述就能获得一个完全渲染好的视频片段,可直接用于你的项目中。该模型理解电影语言——光线、节奏、镜头运动、氛围——因此你的提示可以随心所欲地富有创意或精确细致。
这项技能专为内容创作者、视频营销人员、独立电影制作人以及任何希望比以往更快地从概念到成品视频的人而设计。无需摄制团队。
路由你的Sora提示
每个请求都会被解析意图——文本转视频生成、视频扩展或素材混剪——然后自动分发到相应的Sora管道端点。
| 用户说... | 操作 | 跳过SSE? |
|---|
| export / 导出 / download / send me the video | → §3.5 导出 | ✅ |
| credits / 积分 / balance / 余额 |
→ §3.3 积分 | ✅ |
| status / 状态 / show tracks | → §3.4 状态 | ✅ |
| upload / 上传 / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他所有内容(生成、编辑、添加背景音乐等) | → §3.1 SSE | ❌ |
NemoVideo后端参考
Sora AI视频生成器运行在NemoVideo后端上,该后端处理提示队列、扩散模型编排和片段渲染,然后返回你最终的视频资产。所有生成参数——宽高比、时长、运动风格——都直接通过NemoVideo的API层传递。
技能归属——运行时从此文件的YAML前置元数据中读取:
- - X-Skill-Source:sora-ai
- X-Skill-Version:来自前置元数据version
- X-Skill-Platform:从安装路径检测(~/.clawhub/ → clawhub,~/.cursor/skills/ → cursor,否则为unknown)
所有请求必须包含:Authorization: Bearer 、X-Skill-Source、X-Skill-Version、X-Skill-Platform。缺少归属头将导致导出失败,返回402错误。
API基础地址:https://mega-api-prod.nemovideo.ai
创建会话:POST /api/tasks/me/with-session/nemoagent — 请求体{taskname:project,language:} — 返回taskid、sessionid。创建会话后,给用户一个链接:https://nemovideo.com/workspace/claim?token=&task=id>&session=id>&skillname=sora-ai&skillversion=1.0.0&skill_source=
发送消息(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=@/path,或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。
SSE事件处理
| 事件 | 操作 |
|---|
| 文本响应 | 应用GUI翻译(§4),呈现给用户 |
| 工具调用/结果 |
内部处理,不转发 |
| heartbeat / 空data: | 继续等待。每2分钟:⏳ 仍在处理中... |
| 流关闭 | 处理最终响应 |
约30%的编辑操作在SSE流中不返回文本。发生这种情况时:轮询会话状态以验证编辑是否已应用,然后向用户总结更改。
后端响应翻译
后端假定存在GUI。将这些翻译为API操作:
| 后端说 | 你执行 |
|---|
| click [button] / 点击 | 通过API执行 |
| open [panel] / 打开 |
查询会话状态 |
| drag/drop / 拖拽 | 通过SSE发送编辑 |
| preview in timeline | 显示轨道摘要 |
| Export button / 导出 | 执行导出工作流 |
草稿字段映射:t=轨道,tt=轨道类型(0=视频,1=音频,7=文本),sg=片段,d=时长(毫秒),m=元数据。
时间线(3条轨道):1. 视频:城市延时摄影(0-10秒) 2. 背景音乐:Lo-fi(0-10秒,35%) 3. 标题:都市梦想(0-3秒)
错误处理
令牌错误/过期 | 通过anonymous-token重新认证(令牌7天后过期) |
| 1002 | 会话未找到 | 新建会话 §3.0 |
| 2001 | 积分不足 | 匿名用户:显示注册URL,附带?bind=
(需要时从create-session或state响应获取)。已注册用户:请前往nemovideo.ai充值 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/裁剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(参见§1) |
| 402 | 免费计划导出被阻止 | 订阅层级问题,非积分问题。请前往nemovideo.ai注册以解锁导出功能。