{
  "schemaVersion": "1.0",
  "item": {
    "slug": "alicloud-ai-video-wan-video",
    "name": "Alicloud Ai Video Wan Video",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/cinience/alicloud-ai-video-wan-video",
    "canonicalUrl": "https://clawhub.ai/cinience/alicloud-ai-video-wan-video",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/alicloud-ai-video-wan-video",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=alicloud-ai-video-wan-video",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "agents/openai.yaml",
      "references/api_reference.md",
      "references/sources.md",
      "scripts/generate_dancing_video.py",
      "scripts/generate_video.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/alicloud-ai-video-wan-video"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/alicloud-ai-video-wan-video",
    "agentPageUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent",
    "manifestUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Validation",
        "body": "mkdir -p output/alicloud-ai-video-wan-video\npython -m py_compile skills/ai/video/alicloud-ai-video-wan-video/scripts/generate_video.py && echo \"py_compile_ok\" > output/alicloud-ai-video-wan-video/validate.txt\n\nPass criteria: command exits 0 and output/alicloud-ai-video-wan-video/validate.txt is generated."
      },
      {
        "title": "Output And Evidence",
        "body": "Save task IDs, polling responses, and final video URLs to output/alicloud-ai-video-wan-video/.\nKeep one end-to-end run log for troubleshooting.\n\nProvide consistent video generation behavior for the video-agent pipeline by standardizing video.generate inputs/outputs and using DashScope SDK (Python) with the exact model name."
      },
      {
        "title": "Critical model names",
        "body": "Use one of these exact model strings:\n\nwan2.2-t2v-plus\nwan2.2-t2v-flash\nwan2.6-i2v-flash\nwan2.6-i2v\nwan2.6-i2v-us\nwan2.6-t2v-us\nwanx2.1-t2v-turbo"
      },
      {
        "title": "Prerequisites",
        "body": "Install SDK (recommended in a venv to avoid PEP 668 limits):\n\npython3 -m venv .venv\n. .venv/bin/activate\npython -m pip install dashscope\n\nSet DASHSCOPE_API_KEY in your environment, or add dashscope_api_key to ~/.alibabacloud/credentials (env takes precedence)."
      },
      {
        "title": "Request",
        "body": "prompt (string, required)\nnegative_prompt (string, optional)\nduration (number, required) seconds\nfps (number, required)\nsize (string, required) e.g. 1280*720\nseed (int, optional)\nreference_image (string | bytes, optional for t2v, required for i2v family models)\nmotion_strength (number, optional)"
      },
      {
        "title": "Response",
        "body": "video_url (string)\nduration (number)\nfps (number)\nseed (int)"
      },
      {
        "title": "Quick start (Python + DashScope SDK)",
        "body": "Video generation is usually asynchronous. Expect a task ID and poll until completion.\nNote: Wan i2v models require an input image; pure t2v models can omit reference_image.\n\nimport os\nfrom dashscope import VideoSynthesis\n\n# Prefer env var for auth: export DASHSCOPE_API_KEY=...\n# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].\n\ndef generate_video(req: dict) -> dict:\n    payload = {\n        \"model\": req.get(\"model\", \"wan2.6-i2v-flash\"),\n        \"prompt\": req[\"prompt\"],\n        \"negative_prompt\": req.get(\"negative_prompt\"),\n        \"duration\": req.get(\"duration\", 4),\n        \"fps\": req.get(\"fps\", 24),\n        \"size\": req.get(\"size\", \"1280*720\"),\n        \"seed\": req.get(\"seed\"),\n        \"motion_strength\": req.get(\"motion_strength\"),\n        \"api_key\": os.getenv(\"DASHSCOPE_API_KEY\"),\n    }\n\n    if req.get(\"reference_image\"):\n        # DashScope expects img_url for i2v models; local files are auto-uploaded.\n        payload[\"img_url\"] = req[\"reference_image\"]\n\n    response = VideoSynthesis.call(**payload)\n\n    # Some SDK versions require polling for the final result.\n    # If a task_id is returned, poll until status is SUCCEEDED.\n    result = response.output.get(\"results\", [None])[0]\n\n    return {\n        \"video_url\": None if not result else result.get(\"url\"),\n        \"duration\": response.output.get(\"duration\"),\n        \"fps\": response.output.get(\"fps\"),\n        \"seed\": response.output.get(\"seed\"),\n    }"
      },
      {
        "title": "Async handling (polling)",
        "body": "import os\nfrom dashscope import VideoSynthesis\n\ntask = VideoSynthesis.async_call(\n    model=req.get(\"model\", \"wan2.6-i2v-flash\"),\n    prompt=req[\"prompt\"],\n    img_url=req[\"reference_image\"],\n    duration=req.get(\"duration\", 4),\n    fps=req.get(\"fps\", 24),\n    size=req.get(\"size\", \"1280*720\"),\n    api_key=os.getenv(\"DASHSCOPE_API_KEY\"),\n)\n\nfinal = VideoSynthesis.wait(task)\nvideo_url = final.output.get(\"video_url\")"
      },
      {
        "title": "Operational guidance",
        "body": "Video generation can take minutes; expose progress and allow cancel/retry.\nCache by (prompt, negative_prompt, duration, fps, size, seed, reference_image hash, motion_strength).\nStore video assets in object storage and persist only URLs in metadata.\nreference_image can be a URL or local path; the SDK auto-uploads local files.\nIf you get Field required: input.img_url, the reference image is missing or not mapped."
      },
      {
        "title": "Size notes",
        "body": "Use WxH format (e.g. 1280*720).\nPrefer common sizes; unsupported sizes can return 400."
      },
      {
        "title": "Output location",
        "body": "Default output: output/alicloud-ai-video-wan-video/videos/\nOverride base dir with OUTPUT_DIR."
      },
      {
        "title": "Anti-patterns",
        "body": "Do not invent model names or aliases; use official Wan i2v model IDs only.\nDo not block the UI without progress updates.\nDo not retry blindly on 4xx; handle validation failures explicitly."
      },
      {
        "title": "Workflow",
        "body": "Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.\nRun one minimal read-only query first to verify connectivity and permissions.\nExecute the target operation with explicit parameters and bounded scope.\nVerify results and save output/evidence files."
      },
      {
        "title": "References",
        "body": "See references/api_reference.md for DashScope SDK mapping and async handling notes.\n\n\nSource list: references/sources.md"
      }
    ],
    "body": "Category: provider\n\nModel Studio Wan Video\nValidation\nmkdir -p output/alicloud-ai-video-wan-video\npython -m py_compile skills/ai/video/alicloud-ai-video-wan-video/scripts/generate_video.py && echo \"py_compile_ok\" > output/alicloud-ai-video-wan-video/validate.txt\n\n\nPass criteria: command exits 0 and output/alicloud-ai-video-wan-video/validate.txt is generated.\n\nOutput And Evidence\nSave task IDs, polling responses, and final video URLs to output/alicloud-ai-video-wan-video/.\nKeep one end-to-end run log for troubleshooting.\n\nProvide consistent video generation behavior for the video-agent pipeline by standardizing video.generate inputs/outputs and using DashScope SDK (Python) with the exact model name.\n\nCritical model names\n\nUse one of these exact model strings:\n\nwan2.2-t2v-plus\nwan2.2-t2v-flash\nwan2.6-i2v-flash\nwan2.6-i2v\nwan2.6-i2v-us\nwan2.6-t2v-us\nwanx2.1-t2v-turbo\nPrerequisites\nInstall SDK (recommended in a venv to avoid PEP 668 limits):\npython3 -m venv .venv\n. .venv/bin/activate\npython -m pip install dashscope\n\nSet DASHSCOPE_API_KEY in your environment, or add dashscope_api_key to ~/.alibabacloud/credentials (env takes precedence).\nNormalized interface (video.generate)\nRequest\nprompt (string, required)\nnegative_prompt (string, optional)\nduration (number, required) seconds\nfps (number, required)\nsize (string, required) e.g. 1280*720\nseed (int, optional)\nreference_image (string | bytes, optional for t2v, required for i2v family models)\nmotion_strength (number, optional)\nResponse\nvideo_url (string)\nduration (number)\nfps (number)\nseed (int)\nQuick start (Python + DashScope SDK)\n\nVideo generation is usually asynchronous. Expect a task ID and poll until completion. Note: Wan i2v models require an input image; pure t2v models can omit reference_image.\n\nimport os\nfrom dashscope import VideoSynthesis\n\n# Prefer env var for auth: export DASHSCOPE_API_KEY=...\n# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].\n\ndef generate_video(req: dict) -> dict:\n    payload = {\n        \"model\": req.get(\"model\", \"wan2.6-i2v-flash\"),\n        \"prompt\": req[\"prompt\"],\n        \"negative_prompt\": req.get(\"negative_prompt\"),\n        \"duration\": req.get(\"duration\", 4),\n        \"fps\": req.get(\"fps\", 24),\n        \"size\": req.get(\"size\", \"1280*720\"),\n        \"seed\": req.get(\"seed\"),\n        \"motion_strength\": req.get(\"motion_strength\"),\n        \"api_key\": os.getenv(\"DASHSCOPE_API_KEY\"),\n    }\n\n    if req.get(\"reference_image\"):\n        # DashScope expects img_url for i2v models; local files are auto-uploaded.\n        payload[\"img_url\"] = req[\"reference_image\"]\n\n    response = VideoSynthesis.call(**payload)\n\n    # Some SDK versions require polling for the final result.\n    # If a task_id is returned, poll until status is SUCCEEDED.\n    result = response.output.get(\"results\", [None])[0]\n\n    return {\n        \"video_url\": None if not result else result.get(\"url\"),\n        \"duration\": response.output.get(\"duration\"),\n        \"fps\": response.output.get(\"fps\"),\n        \"seed\": response.output.get(\"seed\"),\n    }\n\nAsync handling (polling)\nimport os\nfrom dashscope import VideoSynthesis\n\ntask = VideoSynthesis.async_call(\n    model=req.get(\"model\", \"wan2.6-i2v-flash\"),\n    prompt=req[\"prompt\"],\n    img_url=req[\"reference_image\"],\n    duration=req.get(\"duration\", 4),\n    fps=req.get(\"fps\", 24),\n    size=req.get(\"size\", \"1280*720\"),\n    api_key=os.getenv(\"DASHSCOPE_API_KEY\"),\n)\n\nfinal = VideoSynthesis.wait(task)\nvideo_url = final.output.get(\"video_url\")\n\nOperational guidance\nVideo generation can take minutes; expose progress and allow cancel/retry.\nCache by (prompt, negative_prompt, duration, fps, size, seed, reference_image hash, motion_strength).\nStore video assets in object storage and persist only URLs in metadata.\nreference_image can be a URL or local path; the SDK auto-uploads local files.\nIf you get Field required: input.img_url, the reference image is missing or not mapped.\nSize notes\nUse WxH format (e.g. 1280*720).\nPrefer common sizes; unsupported sizes can return 400.\nOutput location\nDefault output: output/alicloud-ai-video-wan-video/videos/\nOverride base dir with OUTPUT_DIR.\nAnti-patterns\nDo not invent model names or aliases; use official Wan i2v model IDs only.\nDo not block the UI without progress updates.\nDo not retry blindly on 4xx; handle validation failures explicitly.\nWorkflow\nConfirm user intent, region, identifiers, and whether the operation is read-only or mutating.\nRun one minimal read-only query first to verify connectivity and permissions.\nExecute the target operation with explicit parameters and bounded scope.\nVerify results and save output/evidence files.\nReferences\n\nSee references/api_reference.md for DashScope SDK mapping and async handling notes.\n\nSource list: references/sources.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cinience/alicloud-ai-video-wan-video",
    "publisherUrl": "https://clawhub.ai/cinience/alicloud-ai-video-wan-video",
    "owner": "cinience",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video",
    "downloadUrl": "https://openagent3.xyz/downloads/alicloud-ai-video-wan-video",
    "agentUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent",
    "manifestUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/alicloud-ai-video-wan-video/agent.md"
  }
}