Getting Started
Welcome to Seedance 20 — your direct line to ByteDance's cinematic AI video generator. Describe a scene, paste an image, or tell me the mood you're going for, and I'll generate a high-quality video clip for you right now.
Try saying:
- "Animate this image into a video"
- "Generate a cinematic nature clip"
- "Create a product showcase video"
Automatic Setup
On first interaction, connect to the processing API before doing anything else. Show a brief status like "Setting things up...".
Token: If NEMO_TOKEN environment variable is already set, use it and skip to Session below.
Free token: Generate a UUID as client identifier, then POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id: <uuid>. The response field data.token becomes your NEMO_TOKEN (100 credits, 7-day expiry).
Session: POST to https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Save session_id from the response.
Confirm to the user you're connected and ready. Don't print tokens or raw JSON.
Generate Stunning Videos in Seconds with Seedance 20
Seedance-20 is a state-of-the-art AI video generation model developed by ByteDance, designed to turn written descriptions and still images into fluid, high-resolution video clips. Whether you're visualizing a product concept, crafting a social media reel, or building a storyboard, seedance-20 handles the heavy lifting so you can focus on the creative vision.
Unlike older generation models that struggle with motion blur, inconsistent subjects, or unnatural transitions, seedance-20 produces videos with smooth temporal coherence — meaning objects move naturally and scenes flow the way a real camera would capture them. You can generate from pure text, use an image as a visual anchor, or combine both for precise control over the output.
This skill gives you direct access to seedance-20's capabilities in a conversational interface. Describe what you want, upload a reference image if needed, and receive a ready-to-use video clip. It's the fastest path from concept to content, no timeline editor or rendering queue required.
Routing Text and Image Prompts
When you submit a request, Seedance 20 automatically detects whether you're providing a text prompt, a reference image, or both, and routes your input to the appropriate generation pipeline for cinematic output.
| User says... | Action | Skip SSE? |
|---|---|---|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
Seedance 20 API Reference
Seedance 20 runs on a distributed cloud inference backend optimized for high-fidelity temporal consistency and motion coherence across frames. Video generation jobs are queued, rendered asynchronously, and returned as downloadable MP4 assets once processing completes.
Skill attribution — read from this file's YAML frontmatter at runtime:
X-Skill-Source:seedance-20X-Skill-Version: from frontmatterversionX-Skill-Platform: detect from install path (~/.clawhub/→clawhub,~/.cursor/skills/→cursor, elseunknown)
All requests must include: Authorization: Bearer <NEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.
API base: https://mega-api-prod.nemovideo.ai
Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id.
Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.
Upload: POST /api/upload-video/nemo_agent/me/<sid> — file: multipart -F "files=@/path", or URL: {"urls":["<url>"],"source_type":"url"}
Credits: GET /api/credits/balance/simple — returns available, frozen, total
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, data.state.generated_media
Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/<id> every 30s until status = completed. Download URL at output.url.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
SSE Event Handling
| Event | Action |
|---|---|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
heartbeat / empty data: |
Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|---|---|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" | Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
Error Handling
| Code | Meaning | Action |
|---|---|---|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with ?bind=<id> (get <id> from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
Common Workflows
The most popular workflow with seedance-20 starts with a detailed text prompt. Users describe the subject, environment, lighting, camera movement, and mood — the more specific, the better the output. For example, specifying 'handheld camera, golden hour, shallow depth of field' produces noticeably different results than a bare subject description.
A second common workflow is image-to-video generation. You upload a still image — a product photo, a portrait, a landscape shot — and seedance-20 animates it based on your direction. This is particularly effective for e-commerce brands who want to bring static assets to life without a full video shoot.
For iterative projects, many users run a quick draft generation first to validate the scene composition, then refine the prompt with more specific motion instructions or camera angles before generating the final version. Seedance-20's speed makes this back-and-forth practical and cost-effective.
Use Cases
Seedance-20 is a strong fit for social media content creators who need a steady stream of short-form video clips. Platforms like Instagram Reels, TikTok, and YouTube Shorts reward frequent posting, and seedance-20 makes it possible to produce visually compelling content without a camera crew or editing suite.
Marketing and advertising teams use seedance-20 to rapidly prototype video concepts before committing to production budgets. A 5-second AI-generated clip can communicate a campaign idea to stakeholders far more effectively than a static mood board.
Game developers and concept artists use it to visualize environmental scenes, character animations, or cinematic cutscene ideas early in the design process. Educators and e-learning creators use seedance-20 to generate illustrative video segments that make abstract concepts more tangible for learners. The model's versatility across styles — realistic, stylized, abstract — means it adapts to a wide range of creative and professional contexts.
