← Back to Skills Marketplace
mory128

Add Subtitle To Video Extension

by mory128 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
72
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install add-subtitle-to-video-extension
Description
Get captioned video files ready to post, without touching a single slider. Upload your video files (MP4, MOV, AVI, WebM, up to 500MB), say something like "ad...
README (SKILL.md)

Getting Started

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

Try saying:

  • "add my video files"
  • "export 1080p MP4"
  • "add English subtitles to my video"

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.

Add Subtitle to Video Extension — Generate and Embed Video Subtitles

Send me your video files and describe the result you want. The subtitle generation runs on remote GPU nodes — nothing to install on your machine.

A quick example: upload a 3-minute tutorial video in MP4 format, type "add English subtitles to my video automatically", and you'll get a 1080p MP4 back in roughly 30-60 seconds. All rendering happens server-side.

Worth noting: shorter clips under 5 minutes generate subtitles fastest.

Matching Input to Actions

User prompts referencing add subtitle to video extension, 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.

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.

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

  • X-Skill-Source: add-subtitle-to-video-extension
  • 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

Backend Response Translation

The backend assumes a GUI exists. Translate these into API actions:

Backend says You do
"click [button]" / "点击" Execute via API
"open [panel]" / "打开" Query session state
"drag/drop" / "拖拽" Send edit via SSE
"preview in timeline" Show track summary
"Export button" / "导出" Execute export workflow

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.

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)

Common Workflows

Quick edit: Upload → "add English subtitles to my video automatically" → 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 English subtitles to my video automatically" — 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.

Usage Guidance
This skill will send any video files you give it to a third-party backend (mega-api-prod.nemovideo.ai) for transcription, compositing, and rendering. Confirm you trust that service and understand their privacy/retention policy before uploading sensitive footage. Note the small metadata mismatch: SKILL.md mentions a config path (~/.config/nemovideo/) while the registry summary did not — ask the author whether the skill will store tokens or files locally. If you prefer more control, supply your own NEMO_TOKEN (account) instead of allowing anonymous token creation so you can monitor usage and credits. Finally, verify costs, rate limits, and whether rendered files will be retained on the remote server.
Capability Assessment
Purpose & Capability
The skill name/description (add subtitles and render video) align with the declared primary credential (NEMO_TOKEN) and the runtime instructions that call nemovideo.ai APIs. One inconsistency: the registry metadata overview listed no required config paths, but the SKILL.md frontmatter declares a config path (~/.config/nemovideo/). This appears to be a benign metadata mismatch but worth noting.
Instruction Scope
Runtime instructions explicitly upload user video files to the remote backend, create sessions, stream SSE, and poll for render outputs — all expected for this service. The skill also instructs detecting an install path (to populate X-Skill-Platform) which implies reading the agent's install location; this is a limited filesystem probe (not broad file exfiltration) but should be considered. The skill will auto-obtain an anonymous token if NEMO_TOKEN is absent and uses it for uploads; users should understand that videos and derived subtitles are sent to the external API.
Install Mechanism
Instruction-only skill with no install spec and no code files. This is the lowest install risk — nothing is downloaded or written by an installer as part of the skill package itself.
Credentials
Only one credential is declared (NEMO_TOKEN) and is the primary credential used to authenticate to the described service. The skill will create an anonymous token if none is present; no unrelated credentials or broad environment access are requested. The declared config path (~/.config/nemovideo/) is plausible for storing service config, but its presence in SKILL.md (and absence in registry summary) is an inconsistency to verify.
Persistence & Privilege
The skill is not always-loaded and does not request elevated or permanent platform privileges. It does not instruct modifying other skills or system-wide config. Autonomous invocation is allowed (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 add-subtitle-to-video-extension
  3. After installation, invoke the skill by name or use /add-subtitle-to-video-extension
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of Add Subtitle to Video Extension — generate and embed video subtitles in the cloud. - Upload video files (MP4, MOV, AVI, WebM, up to 500MB) and generate English subtitles automatically. - Cloud processing: No local installation required, get 1080p MP4 downloads in 30-90 seconds. - Simple workflow: Upload, instruct to add subtitles, and export the captioned video. - Automatic token/session setup with free credits for new users. - Supports common video/audio/image formats; export in multiple file types. - Responsive to user prompts for uploading, exporting, checking status, and managing credits.
Metadata
Slug add-subtitle-to-video-extension
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Add Subtitle To Video Extension?

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

How do I install Add Subtitle To Video Extension?

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

Is Add Subtitle To Video Extension free?

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

Which platforms does Add Subtitle To Video Extension support?

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

Who created Add Subtitle To Video Extension?

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

💬 Comments