Ewo video generate
Open-source image & video generation agent skills, powered by ewo's OpenAI-compatible media API. Free to start, pay-as-you-go.
npx -y skills add RZX00/ewo-skills --skill ewo-video-generateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 15 days oldThe repository was created 15 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate short videos from a text prompt. Use when the user asks 生成视频/做个视频/视频素材 or create/generate a video clip. Free to start — new ewo accounts get a trial credit; then pay-as-you-go with your own ewo key (sk-ewo-…), no subscription.
SKILL.md
3.8 KB, as published. Nobody here has run it
Video Generate — ewo open skill
A drop-in, multi-model media API. This skill calls ewo's public OpenAI-compatible endpoint; you pay only for what you generate, from a prepaid ewo wallet. Free to start — a new ewo account comes with a small trial credit, enough to try it out before you ever recharge.
- Endpoint:
POST https://api.ewo.so/v1/videos/generations - Default
model:seedance-2-fast(also: seedance-2, seedance-2-mini). Pick a model by setting themodelfield.
Step 1 — resolve ORIGIN and KEY (first hit wins)
ORIGIN=https://api.ewo.so. For the key:
- Environment:
KEY=$EWO_API_KEY. - Config file:
~/.ewo/credentials(or%USERPROFILE%\.ewo\credentialson Windows) — a lineapi_key=sk-ewo-...or a JSON{ "api_key": "sk-ewo-..." }. - If the ewo desktop app is running, its managed key also works — set
EWO_API_KEYfrom it.
If you find no key, STOP — do not call the API. Tell the user, in their language:
This skill uses ewo's image/video API. It's free to start:
- Sign up at https://api.ewo.so/sign-up — new accounts get a free trial credit.
- Create an API key at https://api.ewo.so/keys (it starts with
sk-ewo-).- Save it:
export EWO_API_KEY=sk-ewo-...(or putapi_key=sk-ewo-...in~/.ewo/credentials), then ask me again.
Step 2 — call the endpoint
Write the JSON body to a temp file — never inline user text into shell quoting.
cat > /tmp/ewo-req.json <<'EOF'
{
"model": "seedance-2-fast",
"prompt": "a neon koi swimming through a rainy Tokyo alley at night",
"resolution": "720p",
"duration": 5
}
EOF
curl -sS --max-time 180 "$ORIGIN/v1/videos/generations" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d @/tmp/ewo-req.json -o /tmp/ewo-resp.json
Fields
prompt(string, required)resolution(string, optional) (one of: 480p, 720p, 1080p, 4k)duration(integer, optional)aspect_ratio(string, optional) (one of: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive)
Step 3 — poll, then download the video
Video is asynchronous. The create call returns a task with an id (and
status running/accepted). Poll every 5 seconds until status is
succeeded or failed:
TASK=$(jq -r '.id // .task_id' /tmp/ewo-resp.json)
while :; do
curl -sS -H "Authorization: Bearer $KEY" \
"$ORIGIN/v1/videos/generations/$TASK" -o /tmp/ewo-video.json
S=$(jq -r '.status' /tmp/ewo-video.json)
[ "$S" = "succeeded" ] && break
[ "$S" = "failed" ] && { echo "video failed"; cat /tmp/ewo-video.json; exit 1; }
sleep 5
done
URL=$(jq -r '.data[0].url // .url // empty' /tmp/ewo-video.json)
OUT="ewo-video-$(date +%s).mp4"
curl -sS "$URL" -o "$OUT" && echo "saved: $OUT"
A clip takes ~1-2 minutes. Tell the user the saved file path when done.
Failures (JSON { error: { code, message } }) — do NOT blind-retry 4xx
401(missing / invalid / expired key) → the user has no working ewo key. Walk them through Step 1 signup (sign up at https://api.ewo.so/sign-up, create a key at https://api.ewo.so/keys), then stop.402HABITAT_INSUFFICIENT_BALANCE→ the ewo wallet is empty. Tell the user, in their language, to recharge at https://api.ewo.so/console/topup, then stop. Do not retry —402is terminal.400invalid_request_error→ fix the request body against the Fields list.429→ real rate limit; honorRetry-Afterand retry once.503→ temporary ewo-side capacity issue; wait a few seconds, retry once.