← Back to Skills Marketplace
mhogan2013-9

Best Photo Video Maker

by mhogan2013-9 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
102
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install best-photo-video-maker
Description
turn photos and images into polished video slideshow with this best-photo-video-maker skill. Works with JPG, PNG, HEIC, WebP files up to 200MB. social media...
README (SKILL.md)

Getting Started

Send me your photos and images and I'll handle the AI video creation. Or just describe what you're after.

Try saying:

  • "turn ten vacation photos in JPG format into a 1080p MP4"
  • "turn my photos into a slideshow video with music and transitions"
  • "turning photo collections into shareable videos for social media creators and casual users"

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.

Best Photo Video Maker — Turn Photos Into Shareable Videos

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

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

Tip: using 10-20 photos gives the best pacing for a 30-60 second video.

Matching Input to Actions

User prompts referencing best photo video maker, 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: best-photo-video-maker
  • X-Skill-Version: from frontmatter version
  • X-Skill-Platform: detect from install path (~/.clawhub/clawhub, ~/.cursor/skills/cursor, else unknown)

All requests must include: Authorization: Bearer \x3CNEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 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 my photos into a slideshow video with music and transitions" — concrete instructions get better results.

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

Export as MP4 for widest compatibility across social platforms.

Common Workflows

Quick edit: Upload → "turn my photos into a slideshow video with music and transitions" → 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 appears internally consistent with a cloud-based video-rendering API. Before installing: be aware that using it will send images and job metadata to https://mega-api-prod.nemovideo.ai; if you don't provide a NEMO_TOKEN the skill can obtain a short-lived anonymous token on your behalf. The skill may read small, specific local paths to detect platform/config (e.g., ~/.config/nemovideo/, ~/.clawhub/, ~/.cursor/skills/) to populate attribution headers — avoid installing if you don't want any skill reading those locations. If you care about privacy or long-term access, supply a token you control and revoke it after use, or avoid sending sensitive images. Because the source is unknown, consider verifying the service domain and reviewing nemo's privacy/terms before uploading private media.
Capability Analysis
Type: OpenClaw Skill Name: best-photo-video-maker Version: 1.0.0 The best-photo-video-maker skill is a legitimate integration for the nemovideo.ai service, allowing users to convert images into videos via a cloud-based GPU pipeline. The SKILL.md provides clear instructions for the agent to manage authentication (including an anonymous token flow), session state, and file uploads to https://mega-api-prod.nemovideo.ai. While it includes logic for environment fingerprinting (checking ~/.clawhub/ or ~/.cursor/skills/ for platform attribution), this is documented as a requirement for API requests. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found.
Capability Assessment
Purpose & Capability
Name/description match the actions in SKILL.md (upload images, create render jobs, return MP4). The single declared credential (NEMO_TOKEN) maps to the described API (nemovideo.ai) and the configPaths entry (~/.config/nemovideo/) is consistent with storing service-related settings.
Instruction Scope
Runtime instructions focus on authenticating, creating a session, uploading files, streaming SSE, polling render status, and returning download URLs — all within the stated video-generation purpose. The skill does instruct the agent to detect install path (~/.clawhub/, ~/.cursor/skills/) and references a user config path; this requires reading certain local paths (to set X-Skill-Platform and possibly skill config) but does not instruct broad arbitrary file reads or exfiltration to unrelated endpoints.
Install Mechanism
No install spec or external packages are requested (instruction-only skill), so nothing is written to disk by an installer. This is the lowest-risk install profile.
Credentials
Only one credential (NEMO_TOKEN) is required and is appropriate for the described API. The SKILL.md also documents a fallback anonymous-token flow (POST to nemovideo.ai) so a user-supplied token is optional. The presence of a declared config path is reasonable for a media-processing integration.
Persistence & Privilege
The skill is not always-on and does not request elevated system privileges or modifications to other skills. It can be invoked autonomously (platform default), which is expected for this kind of service and is not by itself a concern.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install best-photo-video-maker
  3. After installation, invoke the skill by name or use /best-photo-video-maker
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of Best Photo Video Maker — Turn Photos Into Shareable Videos - Transform photo collections (JPG, PNG, HEIC, WebP up to 200MB) into high-quality 1080p MP4 videos in 30–60 seconds. - Simple workflows for uploading, editing, adding music, and exporting finished slideshow videos. - Automatic setup connects you securely to the cloud rendering API—no registration required for 100 free trial credits. - Built-in session management allows batching and iterative edits; your timeline updates with every change. - Full error handling, file format guidance, and export tips included for a smooth user experience.
Metadata
Slug best-photo-video-maker
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Best Photo Video Maker?

turn photos and images into polished video slideshow with this best-photo-video-maker skill. Works with JPG, PNG, HEIC, WebP files up to 200MB. social media... It is an AI Agent Skill for Claude Code / OpenClaw, with 102 downloads so far.

How do I install Best Photo Video Maker?

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

Is Best Photo Video Maker free?

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

Which platforms does Best Photo Video Maker support?

Best Photo Video Maker is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Best Photo Video Maker?

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

💬 Comments