← Back to Skills Marketplace
vcarolxhberger

Script To Video

by vcarolxhberger · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
60
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install script-to-video
Description
Get AI-generated videos ready to post, without touching a single slider. Upload your written script (TXT, DOCX, PDF, plain text, up to 500MB), say something...
README (SKILL.md)

Getting Started

Share your written script and I'll get started on AI video creation. Or just tell me what you're thinking.

Try saying:

  • "convert my written script"
  • "export 1080p MP4"
  • "turn my script into a video"

Automatic Setup

On first interaction, connect to the processing 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: Generate a UUID as client identifier, then POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id: \x3Cuuid>. The response field data.token becomes your NEMO_TOKEN (100 credits, 7-day expiry).

Session: POST to https://mega-api-prod.nemovideo.ai/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.

Script to Video — Convert Scripts into Narrated Videos

This tool takes your written script and runs AI video creation through a cloud rendering pipeline. You upload, describe what you want, and download the result.

Say you have a 300-word product launch script and want to turn my script into a video with voiceover and matching visuals — the backend processes it in about 1-2 minutes and hands you a 1080p MP4.

Tip: shorter scripts under 200 words generate faster and stay more focused.

Matching Input to Actions

User prompts referencing script to video, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.

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

Cloud Render Pipeline Details

Each 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.

Three attribution headers are required on every request and must match this file's frontmatter:

Header Value
X-Skill-Source script-to-video
X-Skill-Version frontmatter version
X-Skill-Platform auto-detect: clawhub / cursor / unknown from install path

Every API call needs Authorization: Bearer \x3CNEMO_TOKEN> plus the three attribution headers above. If any header is missing, exports return 402.

API base: https://mega-api-prod.nemovideo.ai

Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"\x3Clang>"} — returns task_id, session_id.

Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"\x3Csid>","new_message":{"parts":[{"text":"\x3Cmsg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.

Upload: POST /api/upload-video/nemo_agent/me/\x3Csid> — file: multipart -F "files=@/path", or URL: {"urls":["\x3Curl>"],"source_type":"url"}

Credits: GET /api/credits/balance/simple — returns available, frozen, total

Session state: GET /api/state/nemo_agent/me/\x3Csid>/latest — key fields: data.state.draft, data.state.video_infos, data.state.generated_media

Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_\x3Cts>","sessionId":"\x3Csid>","draft":\x3Cjson>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/\x3Cid> 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.

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)

Error Codes

  • 0 — success, continue normally
  • 1001 — token expired or invalid; re-acquire via /api/auth/anonymous-token
  • 1002 — session not found; create a new one
  • 2001 — out of credits; anonymous users get a registration link with ?bind=\x3Cid>, registered users top up
  • 4001 — unsupported file type; show accepted formats
  • 4002 — file too large; suggest compressing or trimming
  • 400 — missing X-Client-Id; generate one and retry
  • 402 — free plan export blocked; not a credit issue, subscription tier
  • 429 — rate limited; wait 30s and retry once

Common Workflows

Quick edit: Upload → "turn my script into a video with voiceover and matching visuals" → Download MP4. Takes 1-2 minutes for a 30-second clip.

Batch style: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.

Iterative: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "turn my script into a video with voiceover and matching visuals" — concrete instructions get better results.

Max file size is 500MB. Stick to TXT, DOCX, PDF, plain text for the smoothest experience.

Export as MP4 for widest compatibility across platforms and devices.

Usage Guidance
This looks purpose-aligned, but expect it to contact the NemoVideo cloud service, use or create a service token, and upload any scripts or files you ask it to convert. Use a dedicated token and avoid sending sensitive documents unless you trust the provider.
Capability Analysis
Type: OpenClaw Skill Name: script-to-video Version: 1.0.0 The skill is a legitimate integration for a script-to-video service hosted at nemovideo.ai. It defines standard API interactions for authentication, file uploads, and video rendering. The instructions in SKILL.md are consistent with the stated purpose, and there is no evidence of data exfiltration (beyond the scripts intended for processing), malicious execution, or unauthorized access to sensitive local environment variables.
Capability Assessment
Purpose & Capability
The stated purpose and behavior are coherent: the skill uploads user-provided scripts or media to a NemoVideo cloud rendering API and returns downloadable video output.
Instruction Scope
The instructions include automatic first-use API setup and routing user intents to cloud API actions, but the scope is limited to the described video-generation workflow.
Install Mechanism
There is no install spec and no code files, reducing local execution risk, but the registry lists the source as unknown and no homepage is provided.
Credentials
The skill requires or creates a NEMO_TOKEN for the cloud service, which is expected for this integration but should be treated as a credential.
Persistence & Privilege
No local persistence, background worker, privileged OS access, or broad filesystem access is shown; remote render sessions/jobs are disclosed as part of the cloud workflow.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install script-to-video
  3. After installation, invoke the skill by name or use /script-to-video
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Script to Video 1.0.0 — initial release: - Instantly converts scripts (TXT, DOCX, PDF, or plain text) into narrated AI-generated videos. - Supports uploads up to 500MB and exports high-quality 1080p MP4 videos. - Designed for marketers, creators, and educators to streamline text-to-video production without manual editing. - Automated setup: free token generation and seamless session management with the processing API. - Supports common video formats (mp4, mov, avi, etc.), session-based editing, and credit balance checks. - Fast cloud rendering pipeline for quick turnaround (typically 1–2 minutes per clip).
Metadata
Slug script-to-video
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Script To Video?

Get AI-generated videos ready to post, without touching a single slider. Upload your written script (TXT, DOCX, PDF, plain text, up to 500MB), say something... It is an AI Agent Skill for Claude Code / OpenClaw, with 60 downloads so far.

How do I install Script To Video?

Run "/install script-to-video" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Script To Video free?

Yes, Script To Video is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Script To Video support?

Script To Video is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Script To Video?

It is built and maintained by vcarolxhberger (@vcarolxhberger); the current version is v1.0.0.

💬 Comments