← Back to Skills Marketplace
peand-rover

Image To Video Bot

by peandrover adam · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
75
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install image-to-video-bot
Description
convert images into animated video clips with this skill. Works with JPG, PNG, WEBP, HEIC files up to 200MB. marketers, social media creators use it for conv...
README (SKILL.md)

Getting Started

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

Try saying:

  • "convert my images"
  • "export 1080p MP4"
  • "turn these images into a slideshow"

Getting Connected

Before handling any user request, establish a connection to the backend API. Show a brief status like "Connecting...".

If NEMO_TOKEN is in the environment, use it directly and create a session. Otherwise, acquire a free starter token:

  • Generate a UUID as client identifier
  • POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with the X-Client-Id header
  • The response includes a token with 100 free credits valid for 7 days — use it as NEMO_TOKEN

Then create a session by POSTing to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer authorization and body {"task_name":"project","language":"en"}. The session_id in the response is needed for all following requests.

Tell the user you're ready. Keep the technical details out of the chat.

Image to Video Bot — Convert Images into Videos

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

Say you have five product photos in JPG format and want to turn these images into a slideshow video with transitions and background music — the backend processes it in about 30-60 seconds and hands you a 1080p MP4.

Tip: using images with similar dimensions produces smoother transitions.

Matching Input to Actions

User prompts referencing image to video bot, 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.

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

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

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.

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 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)

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=\x3Cid> (get \x3Cid> from create-session or state response when needed). Registered: "Top up credits in your account"
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 or upgrade your plan to unlock export."
429 Rate limit (1 token/client/7 days) Retry in 30s once

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "turn these images into a slideshow video with transitions and background music" — concrete instructions get better results.

Max file size is 200MB. Stick to JPG, PNG, WEBP, HEIC for the smoothest experience.

Export as MP4 for widest compatibility across social platforms.

Common Workflows

Quick edit: Upload → "turn these images into a slideshow video with transitions and background music" → 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.

Usage Guidance
This skill uploads your images to https://mega-api-prod.nemovideo.ai for cloud rendering and uses a NEMO_TOKEN (or it will request an anonymous token from that API). Before installing, confirm you trust that external service and avoid uploading sensitive or confidential images. If you have an account, prefer providing your own NEMO_TOKEN rather than relying on anonymous tokens. Also note a small manifest inconsistency (SKILL.md mentions a config path ~/.config/nemovideo/ while the registry metadata did not); you may wish to ask the publisher to clarify that. Overall the skill appears coherent and limited to its stated image→video purpose.
Capability Analysis
Type: OpenClaw Skill Name: image-to-video-bot Version: 1.0.0 The skill is a legitimate integration for the 'nemovideo.ai' cloud service, designed to convert images into videos. It provides clear instructions for the AI agent to handle authentication (via NEMO_TOKEN or an anonymous token flow), file uploads, and session management. The requested permissions (environment variables and config paths) and the use of attribution headers (X-Skill-Source/Platform) are consistent with the stated purpose of the tool and standard API integration practices.
Capability Assessment
Purpose & Capability
The skill's name/description match the actions in SKILL.md (upload images, create render jobs, return MP4). It declares NEMO_TOKEN as the primary credential which is appropriate. Minor mismatch: the registry metadata reported no required config paths, but the SKILL.md metadata references ~/.config/nemovideo/ for attribution — this is likely benign but inconsistent and worth clarifying.
Instruction Scope
Instructions stay within the stated purpose: establish a session, upload images, send SSE messages, poll render status, and return a download URL. The skill will read its YAML frontmatter for attribution and probe install-path patterns to set X-Skill-Platform (requires reading its own file path / environment), and will POST to an external API to obtain an anonymous token if NEMO_TOKEN is not present. These behaviors are coherent with its goals but do involve reading some local install-path info and sending user images to an external service.
Install Mechanism
Instruction-only skill with no install spec or code files; nothing is downloaded or written during install. This is the lowest-risk install surface.
Credentials
Only one credential (NEMO_TOKEN) is required and is clearly the service token used for API authorization. The SKILL.md also describes obtaining a short-lived anonymous token if none is provided, which reduces the need for additional secrets. No unrelated secrets or multiple credentials are requested.
Persistence & Privilege
The skill is not always-enabled and does not request elevated or persistent platform privileges. It does not attempt to modify other skills or system-wide settings. The only persistent artifact implied is the server-side render job tied to the session token (expected for cloud rendering).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install image-to-video-bot
  3. After installation, invoke the skill by name or use /image-to-video-bot
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
image-to-video-bot 1.0.0 — Initial release - Converts JPG, PNG, WEBP, and HEIC images (up to 200MB) into 1080p MP4 videos using a cloud render pipeline. - Supports marketers and creators with slideshow creation, video editing, and background music/audio track features. - Handles connection, authentication, and session management, including automatic fallback to a free starter token if needed. - Exposes core workflows like uploading, editing, previewing, and exporting videos with clear user instructions and feedback. - Includes built-in error handling for tokens, sessions, credits, files, and export limitations. - Optimized for fast processing (30-60 seconds per job) and easy integration into chat workflows.
Metadata
Slug image-to-video-bot
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Image To Video Bot?

convert images into animated video clips with this skill. Works with JPG, PNG, WEBP, HEIC files up to 200MB. marketers, social media creators use it for conv... It is an AI Agent Skill for Claude Code / OpenClaw, with 75 downloads so far.

How do I install Image To Video Bot?

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

Is Image To Video Bot free?

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

Which platforms does Image To Video Bot support?

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

Who created Image To Video Bot?

It is built and maintained by peandrover adam (@peand-rover); the current version is v1.0.0.

💬 Comments