Claim this agent
Agent DossierCLAWHUBSafety 84/100

Xpersona Agent

Seedance 2 Video Generation

Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Skill: Seedance 2 Video Generation Owner: EvoLinkAI Summary: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Tags: latest:1.4.1 Version history: v1.4.1 | 2026-02-23T18:02:09.524Z | user Fix: silent polling to prevent message spam during generation v1.4.0 | 2026-02-23T17:43:03.552Z | user UX: add post-instal

OpenClaw · self-declared
474 downloadsTrust evidence available
clawhub skill install kn74p4xy6sja0199cea53anecs81kqjs:seedance-2-video-gen

Overall rank

#62

Adoption

474 downloads

Trust

Unknown

Freshness

Mar 1, 2026

Freshness

Last checked Mar 1, 2026

Best For

Seedance 2 Video Generation is best for general automation workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, CLAWHUB, runtime-metrics, public facts pack

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Verifiededitorial-content

Overview

Executive Summary

Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Skill: Seedance 2 Video Generation Owner: EvoLinkAI Summary: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Tags: latest:1.4.1 Version history: v1.4.1 | 2026-02-23T18:02:09.524Z | user Fix: silent polling to prevent message spam during generation v1.4.0 | 2026-02-23T17:43:03.552Z | user UX: add post-instal Capability contract not published. No trust telemetry is available yet. 474 downloads reported by the source. Last updated 4/15/2026.

No verified compatibility signals474 downloads

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Mar 1, 2026

Vendor

Clawhub

Artifacts

0

Benchmarks

0

Last release

1.4.1

Install & run

Setup Snapshot

clawhub skill install kn74p4xy6sja0199cea53anecs81kqjs:seedance-2-video-gen
  1. 1

    Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Verifiededitorial-content

Public facts

Evidence Ledger

Vendor (1)

Vendor

Clawhub

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Release (1)

Latest release

1.4.1

releasemedium
Observed Feb 23, 2026Source linkProvenance
Adoption (1)

Adoption signal

474 downloads

profilemedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredCLAWHUB

Captured outputs

Artifacts Archive

Extracted files

3

Examples

6

Snippets

0

Languages

Unknown

Executable Examples

bash

# Set API key
export EVOLINK_API_KEY=your_key_here

# Basic text-to-video
./scripts/seedance-gen.sh "user's prompt" --duration 5 --quality 720p

# With audio disabled
./scripts/seedance-gen.sh "user's prompt" --duration 8 --quality 1080p --no-audio

# With reference image
./scripts/seedance-gen.sh "user's prompt" --image "https://example.com/ref.jpg" --duration 6 --quality 720p

# Custom aspect ratio
./scripts/seedance-gen.sh "user's prompt" --aspect-ratio 9:16 --duration 4 --quality 480p

text

POST https://api.evolink.ai/v1/videos/generations
Authorization: Bearer {EVOLINK_API_KEY}
Content-Type: application/json

text

GET https://api.evolink.ai/v1/tasks/{task_id}
Authorization: Bearer {EVOLINK_API_KEY}

json

{
  "model": "seedance-1.5-pro",
  "prompt": "A serene sunset over calm ocean waves",
  "duration": 5,
  "quality": "720p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

json

{
  "model": "seedance-1.5-pro", 
  "prompt": "Gentle waves rolling onto the shore",
  "image_urls": [
    "https://example.com/beach1.jpg",
    "https://example.com/beach2.jpg"
  ],
  "duration": 8,
  "quality": "1080p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

json

{
  "task_id": "task_abc123",
  "status": "pending",
  "created_at": "2024-01-01T12:00:00Z"
}
Extracted Files

SKILL.md

---
name: seedance-2-video-gen
description: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor. Powered by ByteDance Seedance model.
homepage: https://github.com/EvoLinkAI/evolink-skills
metadata: {"openclaw":{"homepage":"https://github.com/EvoLinkAI/evolink-skills","requires":{"bins":["jq","curl"],"env":["EVOLINK_API_KEY"]},"primaryEnv":"EVOLINK_API_KEY"}}
---

# Seedance Video Generation

An interactive AI video generation assistant powered by the Seedance model via EvoLink API.

## After Installation

When this skill is first loaded, proactively greet the user and start the setup:

1. Check if `EVOLINK_API_KEY` is set
   - **If not set:** "To generate videos, you'll need an EvoLink API key. It takes 30 seconds to get one — just sign up at evolink.ai. Want me to walk you through it?"
   - **If already set:** "You're all set! What kind of video would you like to create?"

2. That's it. One question. The user is now in the flow.

Do NOT list features, show a menu, or dump instructions. Just ask one question to move forward.

## Core Principles

1. **Guide, don't decide** — Present options and let the user decide. Don't make assumptions about their preferences.
2. **Let the user drive the creative vision** — If they have an idea, use their words. If they need inspiration, offer suggestions and let them choose or refine.
3. **Smart context awareness** — Recognize what the user has already provided and only ask about missing pieces.
4. **Intent first** — If the user's intent is unclear, confirm what they want before proceeding.

## Flow

### Step 1: Check for API Key

If the user hasn't provided an API key or set `EVOLINK_API_KEY`:

- Tell them they need an EvoLink API Key
- Guide them to register at https://evolink.ai and get a key from the dashboard
- Once they provide a key, proceed to Step 2

If the key is already set or provided, skip directly to Step 2.

### Step 2: Understand Intent

Assess what the user wants based on their message:

- **Intent is clear** (e.g., "generate a video of a cat dancing") → Go to Step 3
- **Intent is ambiguous** (e.g., "I want to try Seedance") → Ask what they'd like to do: generate a new video, learn about model capabilities, etc.

### Step 3: Gather Missing Information

Check what the user has already provided and **only ask about what's missing**:

| Parameter | What to tell the user | Required? |
|-----------|----------------------|-----------|
| **Video content** (prompt) | Ask what they'd like to see. If they need inspiration, suggest a few ideas for them to pick from or build on. | Yes |
| **Duration** | Supported: **4–12 seconds**. Ask how long they want. | Yes |
| **Resolution** | Supported: **480p** / **720p** / **1080p**. Ask their preference. | Yes |
| **Audio** | The model can auto-generate **voice, sound effects, and background music** matching the video. Ask if they want audio enabled. | Yes |
| *

_meta.json

{
  "ownerId": "kn74p4xy6sja0199cea53anecs81kqjs",
  "slug": "seedance-2-video-gen",
  "version": "1.4.1",
  "publishedAt": 1771869729524
}

references/api-params.md

# Seedance API Parameters Reference

This document provides complete API parameter reference for the Seedance video generation service.

## API Endpoints

### Generation Request
```
POST https://api.evolink.ai/v1/videos/generations
Authorization: Bearer {EVOLINK_API_KEY}
Content-Type: application/json
```

### Task Status Query
```
GET https://api.evolink.ai/v1/tasks/{task_id}
Authorization: Bearer {EVOLINK_API_KEY}
```

## Generation Parameters

### Required Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `model` | string | Fixed: `"seedance-1.5-pro"` |
| `prompt` | string | Text description of desired video content |

### Optional Parameters

| Parameter | Type | Default | Options | Description |
|-----------|------|---------|---------|-------------|
| `image_urls` | array | `[]` | URLs | Reference images (max 9) |
| `duration` | integer | `5` | `4-12` | Video duration in seconds |
| `quality` | string | `"720p"` | `"480p"`, `"720p"`, `"1080p"` | Video resolution |
| `aspect_ratio` | string | `"16:9"` | `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`, `"21:9"` | Video aspect ratio |
| `generate_audio` | boolean | `true` | `true`, `false` | Generate synchronized audio (voice, SFX, music). Enabled by default; disabling reduces cost. |

### Parameter Constraints

#### Image URLs
- **Maximum count**: 9 images
- **File size limit**: ≤30MB per image
- **Supported formats**: JPEG, PNG, WebP, BMP, TIFF, GIF
- **Format**: Array of strings containing full URLs

#### Duration
- **Range**: 4-12 seconds
- **Type**: Integer
- **Impact**: Longer videos cost more and take longer to generate

#### Quality
- **480p**: Fastest, cheapest, lower quality
- **720p**: Balanced (recommended default)
- **1080p**: Highest quality, slower, most expensive

#### Aspect Ratio
- **16:9**: Standard landscape (YouTube, TV)
- **9:16**: Mobile/vertical (TikTok, Instagram Stories)
- **1:1**: Square (Instagram posts, social media)
- **4:3**: Traditional format
- **3:4**: Portrait format
- **21:9**: Ultra-wide cinematic

## Example Payloads

### Text-to-Video
```json
{
  "model": "seedance-1.5-pro",
  "prompt": "A serene sunset over calm ocean waves",
  "duration": 5,
  "quality": "720p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}
```

### Image-to-Video
```json
{
  "model": "seedance-1.5-pro", 
  "prompt": "Gentle waves rolling onto the shore",
  "image_urls": [
    "https://example.com/beach1.jpg",
    "https://example.com/beach2.jpg"
  ],
  "duration": 8,
  "quality": "1080p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}
```

## Response Format

### Generation Response
```json
{
  "task_id": "task_abc123",
  "status": "pending",
  "created_at": "2024-01-01T12:00:00Z"
}
```

### Status Response
```json
{
  "task_id": "task_abc123",
  "status": "completed",
  "video_url": "https://cdn.example.com/video.mp4",
  "created_at": "2024-01-01T12:00:00Z",
  "completed_at": "2024-01-01T12:01:30Z"
}
```

## Task Status Values

| Status | 

Editorial read

Docs & README

Docs source

CLAWHUB

Editorial quality

ready

Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Skill: Seedance 2 Video Generation Owner: EvoLinkAI Summary: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor.... Tags: latest:1.4.1 Version history: v1.4.1 | 2026-02-23T18:02:09.524Z | user Fix: silent polling to prevent message spam during generation v1.4.0 | 2026-02-23T17:43:03.552Z | user UX: add post-instal

Full README

Skill: Seedance 2 Video Generation

Owner: EvoLinkAI

Summary: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor....

Tags: latest:1.4.1

Version history:

v1.4.1 | 2026-02-23T18:02:09.524Z | user

Fix: silent polling to prevent message spam during generation

v1.4.0 | 2026-02-23T17:43:03.552Z | user

UX: add post-install greeting flow, soften prompt guidance to allow offering inspiration

v1.3.1 | 2026-02-23T17:38:06.682Z | user

SEO: optimize description keywords

v1.3.0 | 2026-02-23T17:26:18.244Z | user

Security hardening: fix metadata format (env as string array + primaryEnv), add homepage for provenance, replace all regex JSON parsing with jq, hardcode API endpoint as readonly

v1.2.1 | 2026-02-23T17:23:01.673Z | user

Fix name for better search discoverability

v1.2.0 | 2026-02-23T17:06:07.432Z | user

Security fix: declare EVOLINK_API_KEY env + jq/curl bin dependencies in metadata; fix duration inconsistency (4-12s everywhere)

v1.1.0 | 2026-02-23T17:00:03.552Z | user

Interactive guided flow: smart intent detection, no default assumptions, user decides all parameters

v1.0.1 | 2026-02-23T16:14:10.322Z | user

Fix: enable audio by default, correct duration 4-12s, max 2 images, add --no-audio flag

v1.0.0 | 2026-02-23T15:56:14.132Z | user

Initial release: text-to-video, image-to-video, multi-modal reference support, auto-polling, friendly error handling

Archive index:

Archive v1.4.1: 4 files, 8991 bytes

Files: _meta.json (139b), references/api-params.md (6220b), scripts/seedance-gen.sh (9004b), SKILL.md (5776b)

File v1.4.1:SKILL.md


name: seedance-2-video-gen description: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor. Powered by ByteDance Seedance model. homepage: https://github.com/EvoLinkAI/evolink-skills metadata: {"openclaw":{"homepage":"https://github.com/EvoLinkAI/evolink-skills","requires":{"bins":["jq","curl"],"env":["EVOLINK_API_KEY"]},"primaryEnv":"EVOLINK_API_KEY"}}

Seedance Video Generation

An interactive AI video generation assistant powered by the Seedance model via EvoLink API.

After Installation

When this skill is first loaded, proactively greet the user and start the setup:

  1. Check if EVOLINK_API_KEY is set

    • If not set: "To generate videos, you'll need an EvoLink API key. It takes 30 seconds to get one — just sign up at evolink.ai. Want me to walk you through it?"
    • If already set: "You're all set! What kind of video would you like to create?"
  2. That's it. One question. The user is now in the flow.

Do NOT list features, show a menu, or dump instructions. Just ask one question to move forward.

Core Principles

  1. Guide, don't decide — Present options and let the user decide. Don't make assumptions about their preferences.
  2. Let the user drive the creative vision — If they have an idea, use their words. If they need inspiration, offer suggestions and let them choose or refine.
  3. Smart context awareness — Recognize what the user has already provided and only ask about missing pieces.
  4. Intent first — If the user's intent is unclear, confirm what they want before proceeding.

Flow

Step 1: Check for API Key

If the user hasn't provided an API key or set EVOLINK_API_KEY:

  • Tell them they need an EvoLink API Key
  • Guide them to register at https://evolink.ai and get a key from the dashboard
  • Once they provide a key, proceed to Step 2

If the key is already set or provided, skip directly to Step 2.

Step 2: Understand Intent

Assess what the user wants based on their message:

  • Intent is clear (e.g., "generate a video of a cat dancing") → Go to Step 3
  • Intent is ambiguous (e.g., "I want to try Seedance") → Ask what they'd like to do: generate a new video, learn about model capabilities, etc.

Step 3: Gather Missing Information

Check what the user has already provided and only ask about what's missing:

| Parameter | What to tell the user | Required? | |-----------|----------------------|-----------| | Video content (prompt) | Ask what they'd like to see. If they need inspiration, suggest a few ideas for them to pick from or build on. | Yes | | Duration | Supported: 4–12 seconds. Ask how long they want. | Yes | | Resolution | Supported: 480p / 720p / 1080p. Ask their preference. | Yes | | Audio | The model can auto-generate voice, sound effects, and background music matching the video. Ask if they want audio enabled. | Yes | | Aspect ratio | Supported: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. Only mention if relevant or if user asks. | Optional | | Reference images | Supported: up to 9 images (JPEG/PNG/WebP, ≤30MB each). Only mention if relevant. | Optional |

Smart gathering rules:

  • User gives everything at once → Confirm and generate immediately
  • User gives partial info → Only ask about the missing pieces
  • User says "I want to generate a video" with no details → Guide from the beginning

Step 4: Generate

Once all required information is confirmed:

  1. Tell the user: "Generating your video now — this usually takes 30–120 seconds. I'll let you know when it's ready."
  2. Run the generation script. Do NOT forward each line of script output to the user. The script prints polling status internally — ignore it. Only report the final result.
  3. When complete, share the video URL (valid for 24 hours) and generation time.

Script Usage

# Set API key
export EVOLINK_API_KEY=your_key_here

# Basic text-to-video
./scripts/seedance-gen.sh "user's prompt" --duration 5 --quality 720p

# With audio disabled
./scripts/seedance-gen.sh "user's prompt" --duration 8 --quality 1080p --no-audio

# With reference image
./scripts/seedance-gen.sh "user's prompt" --image "https://example.com/ref.jpg" --duration 6 --quality 720p

# Custom aspect ratio
./scripts/seedance-gen.sh "user's prompt" --aspect-ratio 9:16 --duration 4 --quality 480p

Error Handling

Provide friendly, actionable messages:

| Error | What to tell the user | |-------|----------------------| | Invalid/missing key (401) | "Your API key doesn't seem to work. You can check it at https://evolink.ai/dashboard" | | Insufficient balance (402) | "Your account balance is low. You can add credits at https://evolink.ai/dashboard" | | Rate limited (429) | "Too many requests — let's wait a moment and try again" | | Content blocked (400) | "This prompt was flagged (realistic human faces are restricted). Try adjusting the description" | | Service unavailable (503) | "The service is temporarily busy. Let's try again in a minute" |

Model Capabilities Summary

Use this when the user asks what the model can do:

  • Text-to-video: Describe a scene, get a video
  • Image-to-video: Provide reference images to guide the output
  • Audio generation: Auto-generates synchronized voice, sound effects, and background music
  • Duration: 4–12 seconds
  • Resolution: 480p, 720p, 1080p
  • Aspect ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9
  • Limitation: Realistic human faces are restricted

References

  • references/api-params.md: Complete API parameter reference
  • scripts/seedance-gen.sh: Generation script with automatic polling and error handling

File v1.4.1:_meta.json

{ "ownerId": "kn74p4xy6sja0199cea53anecs81kqjs", "slug": "seedance-2-video-gen", "version": "1.4.1", "publishedAt": 1771869729524 }

File v1.4.1:references/api-params.md

Seedance API Parameters Reference

This document provides complete API parameter reference for the Seedance video generation service.

API Endpoints

Generation Request

POST https://api.evolink.ai/v1/videos/generations
Authorization: Bearer {EVOLINK_API_KEY}
Content-Type: application/json

Task Status Query

GET https://api.evolink.ai/v1/tasks/{task_id}
Authorization: Bearer {EVOLINK_API_KEY}

Generation Parameters

Required Parameters

| Parameter | Type | Description | |-----------|------|-------------| | model | string | Fixed: "seedance-1.5-pro" | | prompt | string | Text description of desired video content |

Optional Parameters

| Parameter | Type | Default | Options | Description | |-----------|------|---------|---------|-------------| | image_urls | array | [] | URLs | Reference images (max 9) | | duration | integer | 5 | 4-12 | Video duration in seconds | | quality | string | "720p" | "480p", "720p", "1080p" | Video resolution | | aspect_ratio | string | "16:9" | "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" | Video aspect ratio | | generate_audio | boolean | true | true, false | Generate synchronized audio (voice, SFX, music). Enabled by default; disabling reduces cost. |

Parameter Constraints

Image URLs

  • Maximum count: 9 images
  • File size limit: ≤30MB per image
  • Supported formats: JPEG, PNG, WebP, BMP, TIFF, GIF
  • Format: Array of strings containing full URLs

Duration

  • Range: 4-12 seconds
  • Type: Integer
  • Impact: Longer videos cost more and take longer to generate

Quality

  • 480p: Fastest, cheapest, lower quality
  • 720p: Balanced (recommended default)
  • 1080p: Highest quality, slower, most expensive

Aspect Ratio

  • 16:9: Standard landscape (YouTube, TV)
  • 9:16: Mobile/vertical (TikTok, Instagram Stories)
  • 1:1: Square (Instagram posts, social media)
  • 4:3: Traditional format
  • 3:4: Portrait format
  • 21:9: Ultra-wide cinematic

Example Payloads

Text-to-Video

{
  "model": "seedance-1.5-pro",
  "prompt": "A serene sunset over calm ocean waves",
  "duration": 5,
  "quality": "720p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Image-to-Video

{
  "model": "seedance-1.5-pro", 
  "prompt": "Gentle waves rolling onto the shore",
  "image_urls": [
    "https://example.com/beach1.jpg",
    "https://example.com/beach2.jpg"
  ],
  "duration": 8,
  "quality": "1080p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Response Format

Generation Response

{
  "task_id": "task_abc123",
  "status": "pending",
  "created_at": "2024-01-01T12:00:00Z"
}

Status Response

{
  "task_id": "task_abc123",
  "status": "completed",
  "video_url": "https://cdn.example.com/video.mp4",
  "created_at": "2024-01-01T12:00:00Z",
  "completed_at": "2024-01-01T12:01:30Z"
}

Task Status Values

| Status | Description | Action Required | |--------|-------------|-----------------| | pending | Task queued | Continue polling | | processing | Generation in progress | Continue polling | | completed | Video ready | Retrieve video_url | | failed | Generation failed | Check error field |

Error Codes

HTTP Status Codes

| Code | Meaning | Common Causes | Solutions | |------|---------|---------------|-----------| | 200 | Success | - | Process response | | 400 | Bad Request | Invalid parameters, content blocked, file too large | Check parameters and content | | 401 | Unauthorized | Invalid or missing API key | Verify EVOLINK_API_KEY | | 402 | Payment Required | Insufficient balance | Add credits at dashboard | | 429 | Rate Limited | Too many requests | Wait and retry | | 503 | Service Unavailable | Server maintenance/overload | Retry later |

Error Response Format

{
  "error": "Detailed error message",
  "code": "ERROR_CODE",
  "details": {}
}

Common Error Messages

Content Blocking (400)

  • Trigger: Realistic human faces, inappropriate content
  • Message: Contains "face" or "人脸" keywords
  • Solution: Modify prompt to avoid restricted content

File Size (400)

  • Trigger: Images >30MB
  • Message: Contains "file" and "large" or "size exceed"
  • Solution: Compress images before upload

Invalid Key (401)

  • Message: "Invalid API key" or similar
  • Solution: Check key at https://evolink.ai/dashboard

Insufficient Balance (402)

  • Message: "Insufficient balance" or similar
  • Solution: Add credits at https://evolink.ai/dashboard

Polling Strategy

Recommended Pattern

  1. Initial wait: Start polling immediately
  2. Frequent polling: Every 5 seconds for first 30 seconds
  3. Slower polling: Every 10 seconds after 30 seconds
  4. Timeout: Stop after 3 minutes with warning

Typical Generation Times

  • 4-5 seconds, 480p: 20-45 seconds
  • 5-8 seconds, 720p: 30-90 seconds
  • 10-15 seconds, 1080p: 60-180 seconds

Timeout Handling

After 3 minutes, inform user that generation may still be processing and suggest checking back later.

Rate Limits

  • Generation requests: Varies by plan
  • Status queries: Higher limit, safe to poll frequently
  • Concurrent tasks: Varies by plan

Contact support for specific rate limit details for your account.

Output URLs

  • Validity: 24 hours from generation
  • Format: MP4 video files
  • CDN delivery: High-speed download
  • Audio: Synchronized audio included by default (voice, sound effects, background music)

Best Practices

Prompt Writing

  • Be specific and descriptive
  • Include visual details (colors, lighting, movement)
  • Avoid realistic human faces
  • Use cinematic language for better results

Performance Optimization

  • Start with 480p for testing
  • Use shorter durations for faster generation
  • Provide clear, high-quality reference images
  • Batch similar requests to optimize costs

Error Resilience

  • Always handle all error codes
  • Provide user-friendly error messages with action links
  • Implement exponential backoff for rate limits
  • Set reasonable timeouts for polling

Archive v1.4.0: 4 files, 9008 bytes

Files: _meta.json (139b), references/api-params.md (6220b), scripts/seedance-gen.sh (9056b), SKILL.md (5776b)

File v1.4.0:SKILL.md


name: seedance-2-video-gen description: Seedance 2.0 AI video generation via EvoLink API. Text-to-video, image-to-video with auto audio (voice, SFX, BGM). Works with OpenClaw, Claude Code, Cursor. Powered by ByteDance Seedance model. homepage: https://github.com/EvoLinkAI/evolink-skills metadata: {"openclaw":{"homepage":"https://github.com/EvoLinkAI/evolink-skills","requires":{"bins":["jq","curl"],"env":["EVOLINK_API_KEY"]},"primaryEnv":"EVOLINK_API_KEY"}}

Seedance Video Generation

An interactive AI video generation assistant powered by the Seedance model via EvoLink API.

After Installation

When this skill is first loaded, proactively greet the user and start the setup:

  1. Check if EVOLINK_API_KEY is set

    • If not set: "To generate videos, you'll need an EvoLink API key. It takes 30 seconds to get one — just sign up at evolink.ai. Want me to walk you through it?"
    • If already set: "You're all set! What kind of video would you like to create?"
  2. That's it. One question. The user is now in the flow.

Do NOT list features, show a menu, or dump instructions. Just ask one question to move forward.

Core Principles

  1. Guide, don't decide — Present options and let the user decide. Don't make assumptions about their preferences.
  2. Let the user drive the creative vision — If they have an idea, use their words. If they need inspiration, offer suggestions and let them choose or refine.
  3. Smart context awareness — Recognize what the user has already provided and only ask about missing pieces.
  4. Intent first — If the user's intent is unclear, confirm what they want before proceeding.

Flow

Step 1: Check for API Key

If the user hasn't provided an API key or set EVOLINK_API_KEY:

  • Tell them they need an EvoLink API Key
  • Guide them to register at https://evolink.ai and get a key from the dashboard
  • Once they provide a key, proceed to Step 2

If the key is already set or provided, skip directly to Step 2.

Step 2: Understand Intent

Assess what the user wants based on their message:

  • Intent is clear (e.g., "generate a video of a cat dancing") → Go to Step 3
  • Intent is ambiguous (e.g., "I want to try Seedance") → Ask what they'd like to do: generate a new video, learn about model capabilities, etc.

Step 3: Gather Missing Information

Check what the user has already provided and only ask about what's missing:

| Parameter | What to tell the user | Required? | |-----------|----------------------|-----------| | Video content (prompt) | Ask what they'd like to see. If they need inspiration, suggest a few ideas for them to pick from or build on. | Yes | | Duration | Supported: 4–12 seconds. Ask how long they want. | Yes | | Resolution | Supported: 480p / 720p / 1080p. Ask their preference. | Yes | | Audio | The model can auto-generate voice, sound effects, and background music matching the video. Ask if they want audio enabled. | Yes | | Aspect ratio | Supported: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. Only mention if relevant or if user asks. | Optional | | Reference images | Supported: up to 9 images (JPEG/PNG/WebP, ≤30MB each). Only mention if relevant. | Optional |

Smart gathering rules:

  • User gives everything at once → Confirm and generate immediately
  • User gives partial info → Only ask about the missing pieces
  • User says "I want to generate a video" with no details → Guide from the beginning

Step 4: Generate

Once all required information is confirmed:

  1. Tell the user: "Generating your video now — this usually takes 30–120 seconds. I'll let you know when it's ready."
  2. Run the generation script. Do NOT forward each line of script output to the user. The script prints polling status internally — ignore it. Only report the final result.
  3. When complete, share the video URL (valid for 24 hours) and generation time.

Script Usage

# Set API key
export EVOLINK_API_KEY=your_key_here

# Basic text-to-video
./scripts/seedance-gen.sh "user's prompt" --duration 5 --quality 720p

# With audio disabled
./scripts/seedance-gen.sh "user's prompt" --duration 8 --quality 1080p --no-audio

# With reference image
./scripts/seedance-gen.sh "user's prompt" --image "https://example.com/ref.jpg" --duration 6 --quality 720p

# Custom aspect ratio
./scripts/seedance-gen.sh "user's prompt" --aspect-ratio 9:16 --duration 4 --quality 480p

Error Handling

Provide friendly, actionable messages:

| Error | What to tell the user | |-------|----------------------| | Invalid/missing key (401) | "Your API key doesn't seem to work. You can check it at https://evolink.ai/dashboard" | | Insufficient balance (402) | "Your account balance is low. You can add credits at https://evolink.ai/dashboard" | | Rate limited (429) | "Too many requests — let's wait a moment and try again" | | Content blocked (400) | "This prompt was flagged (realistic human faces are restricted). Try adjusting the description" | | Service unavailable (503) | "The service is temporarily busy. Let's try again in a minute" |

Model Capabilities Summary

Use this when the user asks what the model can do:

  • Text-to-video: Describe a scene, get a video
  • Image-to-video: Provide reference images to guide the output
  • Audio generation: Auto-generates synchronized voice, sound effects, and background music
  • Duration: 4–12 seconds
  • Resolution: 480p, 720p, 1080p
  • Aspect ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9
  • Limitation: Realistic human faces are restricted

References

  • references/api-params.md: Complete API parameter reference
  • scripts/seedance-gen.sh: Generation script with automatic polling and error handling

File v1.4.0:_meta.json

{ "ownerId": "kn74p4xy6sja0199cea53anecs81kqjs", "slug": "seedance-2-video-gen", "version": "1.4.0", "publishedAt": 1771868583552 }

File v1.4.0:references/api-params.md

Seedance API Parameters Reference

This document provides complete API parameter reference for the Seedance video generation service.

API Endpoints

Generation Request

POST https://api.evolink.ai/v1/videos/generations
Authorization: Bearer {EVOLINK_API_KEY}
Content-Type: application/json

Task Status Query

GET https://api.evolink.ai/v1/tasks/{task_id}
Authorization: Bearer {EVOLINK_API_KEY}

Generation Parameters

Required Parameters

| Parameter | Type | Description | |-----------|------|-------------| | model | string | Fixed: "seedance-1.5-pro" | | prompt | string | Text description of desired video content |

Optional Parameters

| Parameter | Type | Default | Options | Description | |-----------|------|---------|---------|-------------| | image_urls | array | [] | URLs | Reference images (max 9) | | duration | integer | 5 | 4-12 | Video duration in seconds | | quality | string | "720p" | "480p", "720p", "1080p" | Video resolution | | aspect_ratio | string | "16:9" | "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" | Video aspect ratio | | generate_audio | boolean | true | true, false | Generate synchronized audio (voice, SFX, music). Enabled by default; disabling reduces cost. |

Parameter Constraints

Image URLs

  • Maximum count: 9 images
  • File size limit: ≤30MB per image
  • Supported formats: JPEG, PNG, WebP, BMP, TIFF, GIF
  • Format: Array of strings containing full URLs

Duration

  • Range: 4-12 seconds
  • Type: Integer
  • Impact: Longer videos cost more and take longer to generate

Quality

  • 480p: Fastest, cheapest, lower quality
  • 720p: Balanced (recommended default)
  • 1080p: Highest quality, slower, most expensive

Aspect Ratio

  • 16:9: Standard landscape (YouTube, TV)
  • 9:16: Mobile/vertical (TikTok, Instagram Stories)
  • 1:1: Square (Instagram posts, social media)
  • 4:3: Traditional format
  • 3:4: Portrait format
  • 21:9: Ultra-wide cinematic

Example Payloads

Text-to-Video

{
  "model": "seedance-1.5-pro",
  "prompt": "A serene sunset over calm ocean waves",
  "duration": 5,
  "quality": "720p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Image-to-Video

{
  "model": "seedance-1.5-pro", 
  "prompt": "Gentle waves rolling onto the shore",
  "image_urls": [
    "https://example.com/beach1.jpg",
    "https://example.com/beach2.jpg"
  ],
  "duration": 8,
  "quality": "1080p",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Response Format

Generation Response

{
  "task_id": "task_abc123",
  "status": "pending",
  "created_at": "2024-01-01T12:00:00Z"
}

Status Response

{
  "task_id": "task_abc123",
  "status": "completed",
  "video_url": "https://cdn.example.com/video.mp4",
  "created_at": "2024-01-01T12:00:00Z",
  "completed_at": "2024-01-01T12:01:30Z"
}

Task Status Values

| Status | Description | Action Required | |--------|-------------|-----------------| | pending | Task queued | Continue polling | | processing | Generation in progress | Continue polling | | completed | Video ready | Retrieve video_url | | failed | Generation failed | Check error field |

Error Codes

HTTP Status Codes

| Code | Meaning | Common Causes | Solutions | |------|---------|---------------|-----------| | 200 | Success | - | Process response | | 400 | Bad Request | Invalid parameters, content blocked, file too large | Check parameters and content | | 401 | Unauthorized | Invalid or missing API key | Verify EVOLINK_API_KEY | | 402 | Payment Required | Insufficient balance | Add credits at dashboard | | 429 | Rate Limited | Too many requests | Wait and retry | | 503 | Service Unavailable | Server maintenance/overload | Retry later |

Error Response Format

{
  "error": "Detailed error message",
  "code": "ERROR_CODE",
  "details": {}
}

Common Error Messages

Content Blocking (400)

  • Trigger: Realistic human faces, inappropriate content
  • Message: Contains "face" or "人脸" keywords
  • Solution: Modify prompt to avoid restricted content

File Size (400)

  • Trigger: Images >30MB
  • Message: Contains "file" and "large" or "size exceed"
  • Solution: Compress images before upload

Invalid Key (401)

  • Message: "Invalid API key" or similar
  • Solution: Check key at https://evolink.ai/dashboard

Insufficient Balance (402)

  • Message: "Insufficient balance" or similar
  • Solution: Add credits at https://evolink.ai/dashboard

Polling Strategy

Recommended Pattern

  1. Initial wait: Start polling immediately
  2. Frequent polling: Every 5 seconds for first 30 seconds
  3. Slower polling: Every 10 seconds after 30 seconds
  4. Timeout: Stop after 3 minutes with warning

Typical Generation Times

  • 4-5 seconds, 480p: 20-45 seconds
  • 5-8 seconds, 720p: 30-90 seconds
  • 10-15 seconds, 1080p: 60-180 seconds

Timeout Handling

After 3 minutes, inform user that generation may still be processing and suggest checking back later.

Rate Limits

  • Generation requests: Varies by plan
  • Status queries: Higher limit, safe to poll frequently
  • Concurrent tasks: Varies by plan

Contact support for specific rate limit details for your account.

Output URLs

  • Validity: 24 hours from generation
  • Format: MP4 video files
  • CDN delivery: High-speed download
  • Audio: Synchronized audio included by default (voice, sound effects, background music)

Best Practices

Prompt Writing

  • Be specific and descriptive
  • Include visual details (colors, lighting, movement)
  • Avoid realistic human faces
  • Use cinematic language for better results

Performance Optimization

  • Start with 480p for testing
  • Use shorter durations for faster generation
  • Provide clear, high-quality reference images
  • Batch similar requests to optimize costs

Error Resilience

  • Always handle all error codes
  • Provide user-friendly error messages with action links
  • Implement exponential backoff for rate limits
  • Set reasonable timeouts for polling

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingCLAWHUB

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/trust"

Operational fit

Reliability & Benchmarks

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingCLAWHUB

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "CLAWHUB",
      "generatedAt": "2026-04-17T05:33:15.217Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Clawhub",
    "href": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceUrl": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "474 downloads",
    "href": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceUrl": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "latest_release",
    "category": "release",
    "label": "Latest release",
    "value": "1.4.1",
    "href": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceUrl": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-23T18:02:09.524Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-evolinkai-seedance-2-video-gen/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "release",
    "title": "Release 1.4.1",
    "description": "Fix: silent polling to prevent message spam during generation",
    "href": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceUrl": "https://clawhub.ai/EvoLinkAI/seedance-2-video-gen",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-23T18:02:09.524Z",
    "isPublic": true
  }
]

Sponsored

Ads related to Seedance 2 Video Generation and adjacent AI workflows.