← Back to Skills Marketplace
francemichaell-15

Format Converter

by francemichaell-15 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
111
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install format-converter
Description
Get converted MP4 files ready to post, without touching a single slider. Upload your video files (AVI, MOV, MKV, WebM, up to 500MB), say something like "conv...
README (SKILL.md)

Getting Started

Share your video files and I'll get started on format conversion. Or just tell me what you're thinking.

Try saying:

  • "convert my video files"
  • "export 1080p MP4"
  • "convert this AVI to MP4 so"

Quick Start Setup

This skill connects to a cloud processing backend. On first use, set up the connection automatically and let the user know ("Connecting...").

Token check: Look for NEMO_TOKEN in the environment. If found, skip to session creation. Otherwise:

  • Generate a UUID as client identifier
  • POST https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with X-Client-Id header
  • Extract data.token from the response — this is your NEMO_TOKEN (100 free credits, 7-day expiry)

Session: POST https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Keep the returned session_id for all operations.

Let the user know with a brief "Ready!" when setup is complete. Don't expose tokens or raw API output.

Format Converter — Convert Videos to MP4

This tool takes your video files and runs format conversion through a cloud rendering pipeline. You upload, describe what you want, and download the result.

Say you have a 2-minute AVI file from an old camera and want to convert this AVI to MP4 so I can upload it to YouTube — the backend processes it in about 20-40 seconds and hands you a 1080p MP4.

Tip: shorter clips under 60 seconds convert almost instantly.

Matching Input to Actions

User prompts referencing format converter, 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.

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

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

  • X-Skill-Source: format-converter
  • 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 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)

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "convert this AVI to MP4 so I can upload it to YouTube" — concrete instructions get better results.

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

MP4 with H.264 codec gives the best balance of quality and file size.

Common Workflows

Quick edit: Upload → "convert this AVI to MP4 so I can upload it to YouTube" → Download MP4. Takes 20-40 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 is coherent for cloud video conversion, but it WILL upload any files you give it to https://mega-api-prod.nemovideo.ai. Before using: (1) confirm you're comfortable sending your videos to that service (privacy/sensitivity), (2) consider creating or supplying your own NEMO_TOKEN if you want control over the account used, (3) be aware the skill may read its own frontmatter and detect install paths for attribution headers, and (4) note the minor metadata inconsistency about a config path in the SKILL.md frontmatter — it's likely packaging noise but worth confirming with the publisher if you need guarantees. If any of that is unacceptable, don't install/use the skill.
Capability Analysis
Type: OpenClaw Skill Name: format-converter Version: 1.0.0 The skill is a specialized tool for video conversion that interfaces with a cloud-based rendering API (mega-api-prod.nemovideo.ai). It provides detailed instructions for the agent to manage authentication tokens, handle file uploads, and process server-sent events (SSE) for video editing tasks. While it instructs the agent to check specific local paths (~/.clawhub/ or ~/.cursor/skills/) to determine the platform for attribution headers, this behavior is transparently documented and aligned with the skill's functional requirements for interacting with its backend service.
Capability Assessment
Purpose & Capability
The name/description (convert videos to MP4) matches the declared API endpoints and flows in SKILL.md. Requesting a NEMO_TOKEN and using nemo video endpoints is coherent. Minor inconsistency: the skill's YAML frontmatter (inside SKILL.md) lists a configPaths value (~/.config/nemovideo/) while the registry metadata earlier says Required config paths: none — this mismatch is a packaging/information inconsistency but not evidence of malicious behavior.
Instruction Scope
SKILL.md instructs the agent to (a) check for NEMO_TOKEN and, if missing, obtain an anonymous token from nemo's auth endpoint, (b) create sessions, (c) upload user files (multipart or URL), and (d) poll for render results via SSE or polling. These actions align with the stated purpose. Notable behaviors: the agent will send user video files to an external API (mega-api-prod.nemovideo.ai), will read the skill's own frontmatter to set attribution headers, and will detect install path to populate X-Skill-Platform — these are expected for attribution but do require reading some local paths/metadata.
Install Mechanism
No install spec and no code files (instruction-only). This is the lowest-risk install model — nothing is automatically downloaded or written to disk by an installer.
Credentials
Only one credential is declared (NEMO_TOKEN) and it is the primary credential used for API calls. The skill will obtain an anonymous token automatically if NEMO_TOKEN is absent; requiring a single service token is proportionate for a cloud conversion service. Users should understand that providing NEMO_TOKEN or using the anonymous token allows the service to receive/upload their video data.
Persistence & Privilege
always is false and there is no install-time persistence. The skill does not request ability to modify other skills or system-wide agent settings. Autonomous invocation is allowed (the platform default) but not combined with other concerning privileges.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install format-converter
  3. After installation, invoke the skill by name or use /format-converter
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of format-converter skill for converting video files to MP4 via a cloud-based processing backend. - Supports uploading AVI, MOV, MKV, WebM (up to 500MB) and returning downloadable 1080p MP4 files. - Handles user setup automatically, including token generation and session management. - Built-in commands for exporting videos, checking credits, viewing session state, and uploading files. - Clear mapping of user prompts to actions; processes requests via cloud API and summarizes progress and results. - Provides concise error handling and workflow tips for fast and compatible video conversions.
Metadata
Slug format-converter
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Format Converter?

Get converted MP4 files ready to post, without touching a single slider. Upload your video files (AVI, MOV, MKV, WebM, up to 500MB), say something like "conv... It is an AI Agent Skill for Claude Code / OpenClaw, with 111 downloads so far.

How do I install Format Converter?

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

Is Format Converter free?

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

Which platforms does Format Converter support?

Format Converter is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Format Converter?

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

💬 Comments