Token导航 LogoToken导航TokenDH.com
前端设计敏感数据github未标认证来源可访问许可证需确认审计提醒

aliyun-vidu-video阿里云视频

Agent Skill

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

总安装

799

周安装

32

GitHub Stars

383

下载量

259
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:aliyun-vidu-video(阿里云视频)
来源仓库:https://github.com/cinience/alicloud-skills
仓库路径:skills/aliyun-vidu-video
安装命令:
npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-vidu-video
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-vidu-video

简介

aliyun-vidu-video 基于 Vidu 模型生成高质量视频内容。

  • 适用于动画合成、脚本化剪辑与 Remotion 项目开发。
  • 仅限中国大陆北京 region,需配置 DASHSCOPE_API_KEY 环境变量。
  • 输出包含任务 ID、轮询响应与最终视频 URL,保留运行日志备查。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Vidu Video Generation

Validation

mkdir -p output/aliyun-vidu-video
python -m py_compile skills/ai/video/aliyun-vidu-video/scripts/generate_vidu_video.py && echo "py_compile_ok" > output/aliyun-vidu-video/validate.txt

Pass criteria: command exits 0 and output/aliyun-vidu-video/validate.txt is generated.

Output And Evidence

  • Save task IDs, polling responses, and final video URLs to output/aliyun-vidu-video/.
  • Keep at least one end-to-end run log for troubleshooting.

Prerequisites

  • Set DASHSCOPE_API_KEY in your environment (Beijing region key required).
  • Region: China Mainland (Beijing) only. Model, Endpoint URL, and API Key must belong to the same region.
  • Enable Vidu models in the Alibaba Cloud Model Studio console before first use.

Critical model names

Text-to-video

  • vidu/viduq3-pro_text2video
  • vidu/viduq3-turbo_text2video
  • vidu/viduq2_text2video

Image-to-video (first frame)

  • vidu/viduq3-pro_img2video
  • vidu/viduq3-turbo_img2video
  • vidu/viduq2-pro_img2video
  • vidu/viduq2-turbo_img2video

Keyframe-to-video (first+last frame)

  • vidu/viduq3-pro_start-end2video
  • vidu/viduq3-turbo_start-end2video
  • vidu/viduq2-pro_start-end2video
  • vidu/viduq2-turbo_start-end2video

Reference-to-video

  • vidu/viduq2_reference2video
  • vidu/viduq2-pro_reference2video

Capabilities

CapabilityDescriptionModel suffixRequired input
Text-to-videoGenerate video from text prompt only_text2videoprompt
Image-to-videoGenerate video from a single image + optional prompt_img2videomedia[image]
Keyframe-to-videoInterpolate video between first and last frame images_start-end2videomedia[image x2] + prompt
Reference-to-videoEmbed reference subject(s) into prompted scene_reference2videomedia[image 1-7] + prompt

API endpoint (async only)

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

Required headers:

  • Authorization: Bearer $DASHSCOPE_API_KEY
  • Content-Type: application/json
  • X-DashScope-Async: enable

Normalized interface

Request

  • model (string, required) -- one of the model names listed above
  • input.prompt (string) -- up to 5000 characters, describes desired video content

- Required for text-to-video, keyframe, and reference modes - Optional for image-to-video

  • input.media (array) -- media objects with type and url fields (not used for text-to-video)

- type: image or video - url: public URL (HTTP/HTTPS)

  • parameters.resolution (string, optional) -- 540P, 720P (default), or 1080P
  • parameters.size (string, optional) -- pixel dimensions width*height (e.g., 1280*720). Values depend on resolution tier. For text-to-video and reference-to-video, explicit size values are supported.
  • parameters.duration (integer, optional) -- video length in seconds

- Q3 models: [1, 16], default 5 - Q2 models: [1, 10], default 5

  • parameters.audio (boolean, optional) -- generate audio track (Q3 models only, default false)
  • parameters.watermark (boolean, optional) -- add "AI generated" watermark (default false)
  • parameters.seed (integer, optional) -- range [0, 2147483647]

Size values by resolution tier (text-to-video)

ResolutionAspect ratioSize (width*height)
540P16:9960*528
540P9:16528*960
540P1:1720*720
540P4:3816*608
540P3:4608*816
720P16:91280*720
720P9:16720*1280
720P1:1960*960
720P4:31104*816
720P3:4816*1104
1080P16:91920*1080
1080P9:161080*1920
1080P1:11440*1440
1080P4:31674*1238
1080P3:41238*1674

Size values by resolution tier (reference-to-video)

ResolutionAspect ratioSize (width*height)
540P16:9960*540
540P9:16540*960
540P1:1540*540
540P4:3720*540
540P3:4540*720
720P16:91280*720
720P9:16720*1280
720P1:1720*720
720P4:3960*720
720P3:4720*960
1080P16:91920*1080
1080P9:161080*1920
1080P1:11080*1080
1080P4:31440*1080
1080P3:41080*1440

Media input limits

Images (type=image):

  • Formats: JPG, PNG, WEBP
  • Aspect ratio: 1:4 to 4:1
  • Max size: 50MB

Videos (type=video, reference-to-video only):

  • Formats: mp4, avi, mov
  • Resolution: min 128x128 pixels
  • Aspect ratio: 1:4 to 4:1
  • Duration: 1-5s
  • Max size: 50MB

Response (task creation)

  • output.task_id (string) -- use for polling, valid 24 hours
  • output.task_status (string) -- PENDING | RUNNING | SUCCEEDED | FAILED | CANCELED | UNKNOWN
  • request_id (string)

Response (task result)

  • output.video_url (string) -- generated video URL (MP4, H.264), valid 24 hours
  • output.orig_prompt (string) -- original prompt
  • usage.duration (integer) -- billable video duration in seconds
  • usage.output_video_duration (integer) -- actual output duration
  • usage.size (string) -- output resolution
  • usage.fps (integer) -- frame rate (24)
  • usage.audio (boolean) -- whether audio was generated
  • usage.SR (string) -- resolution tier

Quick start (Python + HTTP)

import os
import json
import time
import requests

API_KEY = os.getenv("DASHSCOPE_API_KEY")
BASE_URL = "https://dashscope.aliyuncs.com/api/v1"

def create_vidu_task(req: dict) -> str:
    """Create a Vidu video generation task and return task_id."""
    payload = {
        "model": req["model"],
        "input": {},
        "parameters": {
            "resolution": req.get("resolution", "720P"),
            "duration": req.get("duration", 5),
        },
    }
    if req.get("prompt"):
        payload["input"]["prompt"] = req["prompt"]
    if req.get("media"):
        payload["input"]["media"] = req["media"]
    if req.get("size"):
        payload["parameters"]["size"] = req["size"]
    if req.get("audio") is not None:
        payload["parameters"]["audio"] = req["audio"]
    if req.get("watermark") is not None:
        payload["parameters"]["watermark"] = req["watermark"]
    if req.get("seed") is not None:
        payload["parameters"]["seed"] = req["seed"]

    resp = requests.post(
        f"{BASE_URL}/services/aigc/video-generation/video-synthesis",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
            "X-DashScope-Async": "enable",
        },
        json=payload,
    )
    resp.raise_for_status()
    data = resp.json()
    return data["output"]["task_id"]

def poll_task(task_id: str, interval: int = 15) -> dict:
    """Poll until task completes. Returns final response."""
    while True:
        resp = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data["output"]["task_status"]
        if status in ("SUCCEEDED", "FAILED", "CANCELED"):
            return data
        time.sleep(interval)

Mode-specific examples

# Text-to-video
task_id = create_vidu_task({
    "model": "vidu/viduq3-turbo_text2video",
    "prompt": "A cat running under moonlight",
    "resolution": "540P",
    "size": "960*528",
    "duration": 5,
})

# Image-to-video (first frame)
task_id = create_vidu_task({
    "model": "vidu/viduq3-pro_img2video",
    "prompt": "Camera slowly pans upward",
    "media": [{"type": "image", "url": "https://example.com/image.jpg"}],
    "resolution": "720P",
    "duration": 5,
})

# Keyframe-to-video (first + last frame)
task_id = create_vidu_task({
    "model": "vidu/viduq3-turbo_start-end2video",
    "prompt": "A cat jumps from windowsill to sofa",
    "media": [
        {"type": "image", "url": "https://example.com/first.png"},
        {"type": "image", "url": "https://example.com/last.png"},
    ],
    "resolution": "540P",
    "duration": 5,
})

# Reference-to-video
task_id = create_vidu_task({
    "model": "vidu/viduq2_reference2video",
    "prompt": "Man playing guitar in a cafe",
    "media": [
        {"type": "image", "url": "https://example.com/ref1.jpg"},
        {"type": "image", "url": "https://example.com/ref2.jpg"},
    ],
    "resolution": "720P",
    "size": "1280*720",
    "duration": 5,
})

Error handling

ErrorLikely causeAction
401/403Missing or invalid DASHSCOPE_API_KEYCheck env var; ensure Beijing region key
400 InvalidParameterUnsupported resolution/size combo, bad duration, missing mediaValidate parameters against size tables
"does not support synchronous calls"Missing X-DashScope-Async: enable headerAdd required header
429Rate limit or quotaRetry with backoff
Cross-region errorModel and API Key from different regionsEnsure all are Beijing region

Output location

  • Default output: output/aliyun-vidu-video/videos/
  • Override base dir with OUTPUT_DIR.

Anti-patterns

  • Do not use model names not listed in "Critical model names" above.
  • Do not call this API synchronously -- async header is required.
  • Do not omit size when using reference-to-video -- it is required for that mode.
  • Do not pass audio=true with Q2 models -- only Q3 models support audio generation.
  • Video URLs expire after 24 hours; download and persist immediately.
  • For image-to-video, supply exactly 1 image. For keyframe, supply exactly 2 images (first, then last).
  • For reference-to-video with viduq2_reference2video, only images are accepted (1-7). For viduq2-pro_reference2video, images (1-4) plus optional videos (1-2) are accepted.
  • Keyframe mode: first and last frame pixel count ratio must be between 0.8 and 1.25.

Workflow

  1. Confirm user intent: text-to-video, image-to-video, keyframe, or reference-to-video.
  2. Select the appropriate model name based on capability and quality tier (Q3 pro/turbo or Q2).
  3. Prepare input: prompt and/or media array with correct types and valid public URLs.
  4. Set resolution, size, and duration parameters.
  5. Create async task and poll for results (15s interval recommended).
  6. Download and save generated video before URL expiration (24 hours).

References

  • See references/api_reference.md for full HTTP API details.
  • See references/sources.md for source links.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.39%
按下载量换算94

Claude

30.14%
按下载量换算78

Cursor

19.27%
按下载量换算50

Gemini CLI

9.78%
按下载量换算25

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills