OATDA Generate Video

v1.0.3

Generate videos from text descriptions using AI models through OATDA's unified API. Triggers when the user wants to generate, create, or produce AI video cli...

0· 103·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for devcsde/oatda-generate-video.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "OATDA Generate Video" (devcsde/oatda-generate-video) from ClawHub.
Skill page: https://clawhub.ai/devcsde/oatda-generate-video
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: OATDA_API_KEY
Required binaries: curl, jq
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 oatda-generate-video

ClawHub CLI

Package manager switcher

npx clawhub@latest install oatda-generate-video
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (AI video generation via OATDA) matches the declared requirements: curl/jq for HTTP + JSON handling and OATDA_API_KEY for authorization. The metadata's model mapping and provider list are consistent with a multi-provider video-generation front end.
Instruction Scope
Instructions are scoped to calling the OATDA API and polling status. They explicitly resolve the API key either from OATDA_API_KEY env var or from ~/.oatda/credentials.json; reading that credentials file is the only filesystem access and is directly relevant to obtaining the API key, but is a privacy-sensitive action the user should be aware of.
Install Mechanism
No install spec and no code files — instruction-only. This is lowest-risk: no archives or external binaries are downloaded or installed by the skill.
Credentials
Only OATDA_API_KEY is required (declared as primary credential). No unrelated secrets, extra cloud credentials, or system config paths are requested beyond the optional ~/.oatda/credentials.json fallback used to read the API key.
Persistence & Privilege
Skill is not always-enabled and does not request elevated or persistent platform privileges. It does not modify other skills or system settings.
Assessment
This skill appears to do what it says: it sends async video-generation requests to oatda.com and needs an OATDA_API_KEY. Before installing: (1) confirm you trust https://oatda.com and are comfortable sending prompts (and any public image URLs) to their service and downstream providers; (2) be aware the skill will attempt to read ~/.oatda/credentials.json as a fallback to populate the API key—remove or secure that file if you don't want it automatically read; (3) keep your API key private (the SKILL.md instructs not to print it, but avoid pasting it into shared logs); (4) if you need stricter isolation, set OATDA_API_KEY in the environment instead of relying on the credentials file. Overall this is coherent and expected for an API-wrapping, instruction-only skill.

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

Runtime requirements

🎬 Clawdis
Binscurl, jq
EnvOATDA_API_KEY
Primary envOATDA_API_KEY
latestvk977wjp3f9qgcwd8acf08wp99d84423z
103downloads
0stars
4versions
Updated 3w ago
v1.0.3
MIT-0

OATDA Video Generation

Generate videos from text descriptions via OATDA. Video generation is asynchronous — submit a request, receive a task ID, then poll for completion.

API Key Resolution

All commands need the OATDA API key. Resolve it inline for each exec call:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"

If the key is empty or null, tell the user to get one at https://oatda.com and configure it.

Security: Never print the full API key. Only verify existence or show first 8 chars.

Model Mapping

User saysProviderModel
seedance, bytedance (default)bytedanceseedance-1-5-pro-251215
minimax, hailuominimaxT2V-01
veo, google veogoogleveo-3.0-generate-preview
wan, alibabaalibabawan2.5-t2v-preview
soraopenaisora-2
grok videoxaigrok-imagine-video
cogvideo, glm videozaicogvideox-3

Default: bytedance / seedance-1-5-pro-251215 if no model specified.

⚠️ Models update frequently. If a model ID fails, query oatda-list-models with ?type=video for the latest available models.

Discovering Model-Specific Parameters

Different models support different parameters. Query before generating:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=video" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.video_models[] | {id, supported_params}'

File-type parameters (like first_frame_image, last_frame_image) require public URLs.

API Call

CRITICAL: The endpoint URL must include ?async=true.

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-video?async=true" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "<PROVIDER>",
    "model": "<MODEL>",
    "prompt": "<VIDEO_DESCRIPTION>"
  }'

Optional Parameters (add to body)

  • duration: Video duration in seconds
  • resolution: "720P" or "1080P"
  • aspectRatio: "16:9", "9:16", "1:1"
  • quality: Quality setting (model-dependent)
  • style: Style setting (model-dependent)
  • width / height: Explicit pixel dimensions
  • model_params: Model-specific key-value pairs

model_params Examples

  • Seedance: {"ratio": "16:9", "duration": "5", "generate_audio": true, "camera_fixed": false}
  • Seedance I2V: {"first_frame_image": "https://...", "last_frame_image": "https://..."}
  • MiniMax: {"first_frame_image": "https://...", "resolution": "720P"}
  • xAI: {"resolution": "720p"}

Response Format

{
  "taskId": "minimax-T2V01-abc123def456",
  "status": "pending",
  "provider": "minimax",
  "model": "T2V-01",
  "message": "Video generation task created",
  "pollUrl": "/api/v1/llm/video-status/minimax-T2V01-abc123def456"
}

Note the taskId — this is needed to check status later.

After Submitting

Tell the user:

Video generation started! Task ID: <taskId> Video generation typically takes 30 seconds to 5 minutes. Use oatda-video-status to check when your video is ready.

Error Handling

HTTP StatusMeaningAction
401Invalid API keyTell user to check their key
400Bad request / prompt too longKeep prompt under 4000 chars
429Rate limitedWait and retry
400 + content_policyContent policy violationAsk user to adjust description

Examples

Seedance (default)

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-video?async=true" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "bytedance",
    "model": "seedance-1-5-pro-251215",
    "prompt": "Ocean waves crashing on a beach at sunset, golden hour lighting, cinematic",
    "model_params": {"ratio": "16:9", "duration": "5", "generate_audio": true, "camera_fixed": false}
  }'

Seedance Image-to-Video

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-video?async=true" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "bytedance",
    "model": "seedance-1-5-pro-251215",
    "prompt": "Smooth transition from day to night",
    "model_params": {
      "ratio": "16:9",
      "first_frame_image": "https://example.com/daytime.jpg",
      "last_frame_image": "https://example.com/nighttime.jpg"
    }
  }'

MiniMax with Reference Image

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-video?async=true" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "minimax",
    "model": "T2V-01",
    "prompt": "The character starts walking forward slowly",
    "model_params": {"first_frame_image": "https://example.com/character.png", "resolution": "720P"}
  }'

Google Veo

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-video?async=true" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "google",
    "model": "veo-3.0-generate-preview",
    "prompt": "A drone shot flying over a misty mountain range at sunrise",
    "duration": 5,
    "aspectRatio": "16:9"
  }'

Notes

  • Always use ?async=true in the URL
  • Generation takes 30 seconds to 5+ minutes depending on model
  • Always give the user the task ID and suggest oatda-video-status to check progress
  • For image-to-video: provide first_frame_image and optionally last_frame_image as public URLs
  • Max prompt: 4000 characters
  • Use oatda-video-status to check task completion
  • Use oatda-list-models for available video models

Comments

Loading comments...