← Back to Skills Marketplace
vcarolxhberger

Add Subtitle To Video Canva

by vcarolxhberger · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
62
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install add-subtitle-to-video-canva
Description
Get captioned videos ready to post, without touching a single slider. Upload your video clips (MP4, MOV, AVI, WebM, up to 500MB), say something like "add sub...
README (SKILL.md)

Getting Started

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

Try saying:

  • "add my video clips"
  • "export 1080p MP4"
  • "add subtitles to my video in"

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.

Add Subtitle to Video Canva — Add Captions and Export Videos

Send me your video clips 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 2-minute Canva-exported MP4 presentation, type "add subtitles to my video in English", and you'll get a 1080p MP4 back in roughly 30-60 seconds. All rendering happens server-side.

Worth noting: shorter clips under 3 minutes generate subtitles significantly faster.

Matching Input to Actions

User prompts referencing add subtitle to video canva, 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: add-subtitle-to-video-canva
  • 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

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 subtitles to my video in English" → 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 subtitles to my video in English" — 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
What to check before installing/using: - Understand who runs the backend: the skill calls https://mega-api-prod.nemovideo.ai for all work — your videos and any token you supply go to that service. If you don't trust that endpoint, do not provide files or your NEMO_TOKEN. - The skill will accept any NEMO_TOKEN found in the environment; if you have an existing NEMO_TOKEN for other uses, consider running the skill in a sandbox or supply a throwaway/anonymous token instead. - The name implies 'Canva' but there is no Canva API integration or Canva credentials requested — the skill is a separate nemo-backed service targeted at Canva users. Treat the branding as marketing rather than a guarantee of integration. - The SKILL.md instructs reading the skill's YAML frontmatter and probing install path to set attribution headers; this requires reading local file(s) and checking common install directories. If you are uncomfortable with that, inspect the skill file locally first or decline to install. - Because this is instruction-only, there is no installer to review, but the runtime behavior involves network calls and file uploads. If you need higher assurance, ask the publisher for privacy/security info, or request an implementation that documents data retention and encryption. If you want, I can list the exact HTTP requests the skill will make and where your data will be sent, or help craft a minimal wrapper that isolates any existing NEMO_TOKEN before running the skill.
Capability Analysis
Type: OpenClaw Skill Name: add-subtitle-to-video-canva Version: 1.0.0 The skill provides a legitimate interface for a video subtitling service (nemovideo.ai). It manages authentication, session creation, and video uploads to a remote cloud GPU pipeline as described in SKILL.md. While it includes logic for platform attribution by checking local installation paths (e.g., ~/.cursor/skills/), its behavior is transparently aligned with its stated purpose of cloud-based video processing and lacks indicators of malicious intent or unauthorized data exfiltration.
Capability Assessment
Purpose & Capability
The skill name and description emphasize 'Canva' users, but the runtime instructions call a third-party API (mega-api-prod.nemovideo.ai) and do not integrate with Canva's API or ask for Canva credentials. Requiring only NEMO_TOKEN is coherent for a nemo-backed service, but the marketing/branding vs actual integration is misleading. Also the SKILL.md frontmatter declares configPaths (~/.config/nemovideo/) while the registry metadata earlier listed no required config paths — an internal inconsistency.
Instruction Scope
Instructions direct the agent to: use an environment NEMO_TOKEN or obtain an anonymous token by POSTing to an external URL; create sessions; upload user files; poll render status; and read this file's YAML frontmatter and detect install path to populate attribution headers. These actions are expected for a remote render service, but the file-system path detection and reading the skill's frontmatter means the agent will examine local paths and the skill file at runtime — broader than a strictly 'pass-through' subtitle helper but not obviously malicious.
Install Mechanism
This is instruction-only (no install spec and no code files), so nothing is written to disk by an installer and there is no package download risk.
Credentials
The skill requests a single service credential (NEMO_TOKEN) which is appropriate for calling the nemo backend. However, it will use any NEMO_TOKEN found in the environment (so an existing token you use elsewhere could be reused) and its frontmatter references a config path (~/.config/nemovideo/) that may be read at runtime — the registry metadata did not list this, producing a discrepancy. No unrelated secrets (AWS, GitHub, etc.) are requested.
Persistence & Privilege
The skill is not set to always:true, has no installer, and does not request elevated/system-wide configuration changes. It can be invoked autonomously (platform default), which increases blast radius but is not itself unusual.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install add-subtitle-to-video-canva
  3. After installation, invoke the skill by name or use /add-subtitle-to-video-canva
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Add Subtitle to Video Canva — Version 1.0.0 - Initial release for fast, easy subtitle addition and video export built for Canva users. - Upload video clips (MP4, MOV, AVI, WebM up to 500MB) and automatically generate captions in English. - No installation required; works fully online with 1080p MP4 export. - Secure session and credits management with anonymous or token-based login. - Supports multiple common video, audio, and image formats for input. - User prompts instantly trigger upload, subtitle, export, credits, or status actions.
Metadata
Slug add-subtitle-to-video-canva
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 Canva?

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

How do I install Add Subtitle To Video Canva?

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

Is Add Subtitle To Video Canva free?

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

Which platforms does Add Subtitle To Video Canva support?

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

Who created Add Subtitle To Video Canva?

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

💬 Comments