← Back to Skills Marketplace
mory128

Free Motion Video Skill

by mory128 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
103
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install free-motion-video-skill
Description
animate video clips into motion-enhanced videos with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. content creators use it for adding cinemat...
README (SKILL.md)

Getting Started

Ready when you are. Drop your video clips here or describe what you want to make.

Try saying:

  • "animate a 30-second static product video into a 1080p MP4"
  • "add smooth camera motion and dynamic movement to my static clip"
  • "adding cinematic camera movement to static or flat video footage for content creators"

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.

Free Motion Video Skill — Add Motion to Video Clips

Drop your video clips in the chat and tell me what you need. I'll handle the free motion animation on cloud GPUs — you don't need anything installed locally.

Here's a typical use: you send a a 30-second static product video, ask for add smooth camera motion and dynamic movement to my static clip, and about 30-60 seconds later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.

One thing worth knowing — shorter clips under 15 seconds produce the smoothest motion results.

Matching Input to Actions

User prompts referencing free motion video skill, 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.

Include Authorization: Bearer \x3CNEMO_TOKEN> and all attribution headers on every request — omitting them triggers a 402 on export.

Skill attribution — read from this file's YAML frontmatter at runtime:

  • X-Skill-Source: free-motion-video-skill
  • X-Skill-Version: from frontmatter version
  • X-Skill-Platform: detect from install path (~/.clawhub/clawhub, ~/.cursor/skills/cursor, else unknown)

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.

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

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

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.

Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.

Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)

Common Workflows

Quick edit: Upload → "add smooth camera motion and dynamic movement to my static clip" → Download MP4. Takes 30-60 seconds 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 "add smooth camera motion and dynamic movement to my static clip" — concrete instructions get better results.

Max file size is 500MB. Stick to MP4, MOV, AVI, WebM for the smoothest experience.

Export as MP4 for widest compatibility across social platforms.

Usage Guidance
This skill appears to do what it claims: it uploads videos to an external service (mega-api-prod.nemovideo.ai) and uses a NEMO_TOKEN to authenticate. Before installing, confirm you trust that domain/service and their privacy practices because any video you send will be uploaded off your machine. If you are privacy-conscious: (1) avoid sending sensitive footage, (2) use a temporary or anonymous token rather than long-lived credentials, (3) verify the service's hostname via other sources, and (4) be aware the skill may check common installation paths and a config folder (~/.config/nemovideo/) to set attribution headers. The skill does not request unrelated credentials or install code locally, but because it is instruction-only there is no code to audit — treat the network endpoints it calls as the primary trust boundary.
Capability Analysis
Type: OpenClaw Skill Name: free-motion-video-skill Version: 1.0.0 The skill provides video motion enhancement services by interfacing with the nemovideo.ai API. It includes detailed instructions for the agent to manage authentication tokens, handle SSE streams for video processing, and perform file uploads/exports. While it requests the agent to detect its environment by checking specific paths (e.g., ~/.clawhub/), this is used for platform attribution in headers and is consistent with the skill's stated purpose. The instructions also include security-conscious directives to avoid printing raw tokens or JSON to the user interface.
Capability Assessment
Purpose & Capability
The skill's name/description (animate video clips) matches what the SKILL.md instructs (upload video, create session, SSE for edits, render/export endpoints). The single required credential (NEMO_TOKEN) is consistent with a hosted API service.
Instruction Scope
Instructions route user actions to specific API endpoints, handle token acquisition (anonymous-token), store session_id, upload files (multipart or URL), poll render status, and include attribution headers. They also instruct reading this file's YAML frontmatter and detecting install path (~/.clawhub/, ~/.cursor/skills/) to set X-Skill-Platform — reading those paths is not necessary for core functionality and requires inspecting the user's filesystem, which is a minor privacy/scope consideration but not disproportionate.
Install Mechanism
Instruction-only skill with no install spec or code to write. This is low-risk from an installation perspective (nothing is downloaded or executed locally by the skill itself).
Credentials
Only one environment variable is required (NEMO_TOKEN), which is the expected service credential. Metadata also lists a config path (~/.config/nemovideo/), which aligns with storing session or client config; no unrelated credentials or broad secret access is requested.
Persistence & Privilege
always:false and autonomous invocation is allowed (platform default). The skill instructs saving session_id and using tokens for API calls, but it does not demand permanent elevated privileges or changes to other skills' configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install free-motion-video-skill
  3. After installation, invoke the skill by name or use /free-motion-video-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Free Motion Video Skill — Initial Release - Add smooth, cinematic camera motion to static or flat video clips. - Supports MP4, MOV, AVI, and WebM files up to 500MB; output is 1080p MP4. - Automatic connection to cloud processing with free token setup; no local install needed. - Quick turnaround — most clips process in 30–90 seconds; batch and iterative workflows supported. - Clear status/error messages and visual timeline previews for edits and exports. - Useful for content creators seeking automated, high-quality video motion enhancement.
Metadata
Slug free-motion-video-skill
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Free Motion Video Skill?

animate video clips into motion-enhanced videos with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. content creators use it for adding cinemat... It is an AI Agent Skill for Claude Code / OpenClaw, with 103 downloads so far.

How do I install Free Motion Video Skill?

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

Is Free Motion Video Skill free?

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

Which platforms does Free Motion Video Skill support?

Free Motion Video Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Free Motion Video Skill?

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

💬 Comments