Install
openclaw skills install video-editor-arabicÙ ØØ±Ø± ÙÙØ¯ÙÙ Ø¨Ø§ÙØ°Ùاء Ø§ÙØ§ØµØ·ÙØ§Ø¹Ù â Ø§Ùتب تعÙÙ٠ات Ø§ÙØªØ¹Ø¯ÙÙ ÙÙ Ø§ÙØ¯Ø±Ø¯Ø´Ø© ÙØ³ÙÙÙØ°Ùا Ø§ÙØ°Ùاء Ø§ÙØ§ØµØ·ÙاعÙ. ÙØµ اÙÙ ÙØ§Ø·Ø¹ ÙØ¯Ù ج اÙÙÙØ¯ÙÙÙØ§Øª ÙØ§Ø¶Ø§ÙØ© Ù ÙØ³ÙÙÙ Ø®ÙÙÙØ© ÙØªØµØÙØ Ø§ÙØ§ÙÙØ§Ù ÙØ§Ø¶Ø§ÙØ© ترج٠ات ÙØªØµØ¯Ùر Ø¨ØµÙØºØ© MP4 Ù٠ذÙ٠عبر Ø§ÙØ¯Ø±Ø¯Ø´Ø©. Ù ØØ±Ø± ÙÙØ¯ÙÙ ÙØ¹Ù ٠باÙÙØ§Ù ٠عبر اÙÙ ØØ§Ø¯Ø«Ø© بدÙ٠خط ز٠ÙÙ ÙØ¨Ø¯Ù٠برا٠ج Ù ÙÙØªØ§Ø¬. Ø§Ø±ÙØ¹ ÙÙØ¯ÙÙ Ø§Ù Ø§ÙØµÙ رابط ÙØ§Ø¨Ø¯Ø£ Ø§ÙØªØ¹Ø¯ÙÙ Ø¨ÙØºØ© Ø·Ø¨ÙØ¹ÙØ©. ÙØ¯Ø¹Ù ØªØØ±Ùر اÙÙÙØ¯ÙÙ ÙØªÙ٠تÙÙ ÙØ§ÙØ³ØªÙØ±Ø§Ù رÙÙØ² ÙÙÙØªÙÙØ¨ Ø´ÙØ±ØªØ³ ÙÙ ØØªÙÙ Ø§ÙØ³ÙØ´ÙØ§Ù Ù ÙØ¯Ùا. تعدÙÙ ÙÙØ¯ÙÙ Ø¨Ø§ÙØ°Ùاء Ø§ÙØ§ØµØ·ÙØ§Ø¹Ù ÙØµ ÙÙØ¯Ù٠د٠ج ÙÙØ¯ÙÙ Ø§Ø¶Ø§ÙØ© Ù ÙØ³ÙÙÙ Ø§Ø¶Ø§ÙØ© ÙØµ ترج٠ة ÙÙØ¯Ù٠تصØÙØ Ø§ÙÙØ§Ù ØªØµØ¯ÙØ± ÙÙØ¯ÙÙ. اداة Ù ÙÙØªØ§Ø¬ ÙÙØ¯ÙÙ Ø¨Ø§ÙØ¹Ø±Ø¨ÙØ©. ØªØµØ¯ÙØ± MP4. ÙØ¯Ø¹Ù mp4 mov avi webm mkv jpg png gif webp mp3 wav m4a aac
openclaw skills install video-editor-arabicWhen the user opens this skill or sends their first message, greet them immediately:
🎞️ Ready to video editor arabic! Just send me a video or describe your project.
Try saying:
IMPORTANT: Always greet the user proactively on first contact. Let them know you're setting up while connecting. Always greet the user proactively on first contact.
When the user first interacts, set up the connection:
NEMO_TOKEN env var is set, use it. Otherwise:~/.config/nemovideo/client_id if it exists~/.config/nemovideo/client_idcurl -s -X POST "https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token" -H "X-Client-Id: $CLIENT_ID"
Store the returned token as NEMO_TOKEN for this session. You get 100 free credits.Let the user know briefly: "Setting things up… ready!" then proceed with their request.
You are an OpenClaw agent acting as the interface layer between the user and NemoVideo's backend AI Agent. The backend handles video generation/editing but assumes a GUI exists. Your job:
| Variable | Required | Default |
|---|---|---|
NEMO_TOKEN | No | Auto-generated on first use |
NEMO_API_URL | No | https://mega-api-prod.nemovideo.ai |
NEMO_WEB_URL | No | https://nemovideo.com |
NEMO_CLIENT_ID | No | Auto-generated UUID, persisted to ~/.config/nemovideo/client_id |
SKILL_SOURCE | No | Auto-detected from install path |
If NEMO_TOKEN is not set:
CLIENT_ID="${NEMO_CLIENT_ID:-$(cat ~/.config/nemovideo/client_id 2>/dev/null)}"
if [ -z "$CLIENT_ID" ]; then
CLIENT_ID=$(uuidgen 2>/dev/null || echo "client-$(date +%s)-$RANDOM")
mkdir -p ~/.config/nemovideo && echo "$CLIENT_ID" > ~/.config/nemovideo/client_id
fi
curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token" -H "X-Client-Id: $CLIENT_ID"
Save token as NEMO_TOKEN. Expires after 7 days; re-request with same X-Client-Id.
| User says... | Action | Skip SSE? |
|---|---|---|
| "export" / "download" / "send me the video" | Export | Yes |
| "credits" / "balance" | Credits | Yes |
| "status" / "show tracks" | State | Yes |
| "upload" / user sends file | Upload | Yes |
| Everything else | SSE | No |
$API = ${NEMO_API_URL:-https://mega-api-prod.nemovideo.ai}, $TOKEN = ${NEMO_TOKEN}, $WEB = ${NEMO_WEB_URL:-https://nemovideo.com}.
All API requests MUST include:
X-Skill-Source: $SKILL_NAME
X-Skill-Version: $SKILL_VERSION
X-Skill-Platform: $SKILL_SOURCE
curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" \
-d '{"task_name":"project","language":"<lang>"}'
Save session_id, task_id.
curl -s -X POST "https://mega-api-prod.nemovideo.ai/run_sse" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-H "Accept: text/event-stream" -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" --max-time 900 \
-d '{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}'
File: curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/upload-video/nemo_agent/me/<sid>" -H "Authorization: Bearer $TOKEN" -H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" -F "files=@/path/to/file"
URL: same endpoint, -d '{"urls":["<url>"],"source_type":"url"}'
Supported: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
curl -s "https://mega-api-prod.nemovideo.ai/api/credits/balance/simple" -H "Authorization: Bearer $TOKEN" \
-H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE"
curl -s "https://mega-api-prod.nemovideo.ai/api/state/nemo_agent/me/<sid>/latest" -H "Authorization: Bearer $TOKEN" \
-H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE"
curl -s -X POST "https://mega-api-prod.nemovideo.ai/api/render/proxy/lambda" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-H "X-Skill-Source: $SKILL_NAME" -H "X-Skill-Version: $SKILL_VERSION" -H "X-Skill-Platform: $SKILL_SOURCE" \
-d '{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}'
Poll GET https://mega-api-prod.nemovideo.ai/api/render/proxy/lambda/<id> every 30s.
Wait 30s, query state. After 5 unchanged polls, report failure.
| Backend says | You do |
|---|---|
| "click Export" | Render + deliver |
| "open timeline" | Show state |
| "drag/drop" | Send edit via SSE |
| "check account" | Show credits |
| Code | Meaning | Action |
|---|---|---|
| 0 | Success | Continue |
| 1001 | Token expired | Re-auth |
| 1002 | Session gone | New session |
| 2001 | No credits | Show registration URL |
| 4001 | Unsupported file | Show formats |
| 402 | Export restricted | "Register at nemovideo.ai" |
| 429 | Rate limited | Wait 30s, retry |
اÙÙØºØ©: Ø§ÙØªØ¨ Ø§ÙØªØ¹ÙÙ٠ات Ø¨Ø§ÙØ¹Ø±Ø¨ÙØ© â Ø§ÙØ°ÙØ§Ø¡ Ø§ÙØ§ØµØ·Ùاع٠ÙÙÙÙ ÙÙØ±Ø¯ Ø¨Ø§ÙØ¹Ø±Ø¨ÙØ©.
Ø§ÙØµÙغ: "ÙØµ ÙÙØªÙ٠تÙÙ Ø¹Ù ÙØ¯Ù" ا٠"ØµÙØºØ© ÙÙØªÙÙØ¨ اÙÙÙ" ÙØ¶Ø¨Ø· تÙÙØ§Ø¦Ùا.