Install
openclaw skills install @chuckwhisler/batcheditsAutonomously edit videos, add captions, and remove silences via BatchEdits.
openclaw skills install @chuckwhisler/batcheditsTurn your OpenClaw into an autonomous video editor using BatchEdits. Use when you need to add captions, remove silences, or apply custom styles to videos. Covers creating styles, uploading local videos, processing, and checking video status directly from WhatsApp, Telegram, or the CLI.
openclaw config set mcp.servers.batchedits '{"type": "sse", "url": "https://batchedits.com/api/mcp/PASTE_YOUR_API_KEY_HERE"}'
export BATCHEDITS_API_KEY="PASTE_YOUR_API_KEY_HERE"
openclaw config set mcp.servers.batchedits '{"type": "sse", "url": "https://batchedits.com/api/mcp"}'
CLIENT_RESPONSE=$(curl -sS -X POST https://batchedits.com/api/oauth/register \
-H 'Content-Type: application/json' \
-d '{"client_name":"OpenClaw Local","redirect_uris":["http://localhost/callback"]}')
CLIENT_ID=$(echo "$CLIENT_RESPONSE" | jq -r '.client_id')
CLIENT_SECRET=$(echo "$CLIENT_RESPONSE" | jq -r '.client_secret')
AUTH_URL="https://batchedits.com/api/oauth/authorize?client_id=$CLIENT_ID&redirect_uri=http://localhost/callback&response_type=code"
echo "Open this URL and approve:"
echo "$AUTH_URL"
# After approval, copy the ?code=... value:
CODE="PASTE_CODE_HERE"
TOKEN_RESPONSE=$(curl -sS -X POST https://batchedits.com/api/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d "grant_type=authorization_code&code=$CODE&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&redirect_uri=http://localhost/callback")
ACCESS_TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.access_token')
export BATCHEDITS_ACCESS_TOKEN="$ACCESS_TOKEN"
openclaw config set mcp.servers.batchedits '{"type": "sse", "url": "https://batchedits.com/api/mcp"}'
list_actionscreate_styleget_stylesupload_videosprocess_videolist_videosdownload_videoget_styles to see if a matching style already exists. If not, use list_actions and create_style to make one.upload_videos to get the upload command.videoId.process_video with videoId and styleId.list_videos to check when the video reaches completed status.download_video to get the result.get_styles first. Reusing existing styles is faster than creating a new one every time.curl because OpenClaw needs to stream large local binaries to the remote server efficiently.