Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Subtitle Generator Canva

v1.0.0

Turn a 2-minute tutorial video in MP4 format into 1080p captioned video files just by typing what you need. Whether it's adding styled subtitles to videos wi...

0· 65·0 current·0 all-time
bypeandrover adam@peand-rover

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for peand-rover/subtitle-generator-canva.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Subtitle Generator Canva" (peand-rover/subtitle-generator-canva) from ClawHub.
Skill page: https://clawhub.ai/peand-rover/subtitle-generator-canva
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: NEMO_TOKEN
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install subtitle-generator-canva

ClawHub CLI

Package manager switcher

npx clawhub@latest install subtitle-generator-canva
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name and description claim cloud subtitle generation and burning-in video captions. The only required credential (NEMO_TOKEN) and the API endpoints referenced in SKILL.md align with that purpose — uploading videos and rendering on a remote GPU service is expected.
Instruction Scope
Instructions direct the agent to upload user-provided video files to an external API and to persist a session_id/token for subsequent calls — expected for a cloud render service. However, the skill also instructs the agent to read its own YAML frontmatter and to detect an install path (examining ~/, ~/.clawhub, ~/.cursor paths) to set an X-Skill-Platform header. Reading install paths is broader filesystem access than strictly needed for subtitle generation and is worth flagging as unnecessary scope.
Install Mechanism
This is an instruction-only skill with no install spec and no code files. Nothing will be written to disk by an installer step in the skill bundle itself, which minimizes install-time risk.
!
Credentials
The skill requires a single credential (NEMO_TOKEN), which is coherent. Concerns: SKILL.md instructs creating/storing anonymous tokens automatically if none exist (the skill will obtain an auth token from an external endpoint), and it references a config path (~/.config/nemovideo/) in the frontmatter. The registry metadata you supplied lists no required config paths while the SKILL.md includes one — this mismatch is inconsistent. Additionally, the skill will transmit user video data and session tokens to an external service (mega-api-prod.nemovideo.ai), which is expected for cloud processing but is a privacy/exfiltration consideration.
Persistence & Privilege
always is false and model invocation is allowed by default. The skill expects to store a session_id and token for the session lifecycle, which is normal for this type of service. The skill does not request elevated platform privileges or permanent 'always' inclusion.
What to consider before installing
This skill will upload your video files and session tokens to an external service (mega-api-prod.nemovideo.ai) for processing. That is necessary for a cloud render pipeline but means your videos and metadata leave your machine — do not use it for sensitive or private footage unless you trust the service. Note the SKILL.md asks the agent to auto-generate and store anonymous tokens and to read the skill frontmatter and certain install paths; those behaviors are not dangerous by themselves but are broader filesystem access than strictly required. Also: the registry metadata you provided omits the config path that the SKILL.md references — ask the skill author to explain the discrepancy, confirm the service operator and privacy policy, and verify where tokens/session data are stored and how long they are retained. If you want to limit risk, prefer a skill tied to a known vendor or require explicit consent before uploading each file rather than automatic session token creation.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

💬 Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk9725t1hd4n6pw3gahsb3ckcax84q24w
65downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

Getting Started

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

Try saying:

  • "generate my video clips"
  • "export 1080p MP4"
  • "generate subtitles and export a captioned"

First-Time Connection

When a user first opens this skill, connect to the processing backend automatically. Briefly let them know (e.g. "Setting up...").

Authentication: Check if NEMO_TOKEN is set in the environment. If it is, skip to step 2.

  1. Obtain a free token: Generate a random UUID as client identifier. POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id set to that UUID. The response data.token is your NEMO_TOKEN — 100 free credits, valid 7 days.
  2. Create a session: POST to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Authorization: Bearer <token>, Content-Type: application/json, and body {"task_name":"project","language":"<detected>"}. Store the returned session_id for all subsequent requests.

Keep setup communication brief. Don't display raw API responses or token values to the user.

Subtitle Generator Canva — Generate and Burn In Subtitles

Drop your video clips in the chat and tell me what you need. I'll handle the subtitle generation on cloud GPUs — you don't need anything installed locally.

Here's a typical use: you send a a 2-minute tutorial video in MP4 format, ask for generate subtitles and export a captioned video like Canva style, and about 30-60 seconds later you've got a MP4 file ready to download. The whole thing runs at 1080p by default.

One thing worth knowing — shorter clips under 3 minutes generate subtitles significantly faster.

Matching Input to Actions

User prompts referencing subtitle generator canva, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.

User says...ActionSkip 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.

Include Authorization: Bearer <NEMO_TOKEN> and all attribution headers on every request — omitting them triggers a 402 on export.

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

  • X-Skill-Source: subtitle-generator-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":"<lang>"} — returns task_id, session_id.

Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.

Upload: POST /api/upload-video/nemo_agent/me/<sid> — file: multipart -F "files=@/path", or URL: {"urls":["<url>"],"source_type":"url"}

Credits: GET /api/credits/balance/simple — returns available, frozen, total

Session state: GET /api/state/nemo_agent/me/<sid>/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_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/<id> 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=<id>, 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 saysYou 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

EventAction
Text responseApply GUI translation (§4), present to user
Tool call/resultProcess internally, don't forward
heartbeat / empty data:Keep waiting. Every 2 min: "⏳ Still working..."
Stream closesProcess 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)

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "generate subtitles and export a captioned video like Canva style" — 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 platforms.

Common Workflows

Quick edit: Upload → "generate subtitles and export a captioned video like Canva style" → 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.

Comments

Loading comments...