{"id":71129,"plugin_id":"plugin_asdk_app_6acf997013c08191b9b84ca8616a1da3","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-29T19:13:08.282Z","digest":"2c2f238f191083b3bd5e1cc1d2096773556586bc22a6f7f18ff453c5800c1dcf","against":null,"payload":{"description":"Generate AI videos with EzUGC catalog models (Veo, Kling, Runway, MiniMax, LTX, Seedance, and more). Use when the user wants text-to-video, image-to-video, a specific model, or \"generate a video\". Talking-head UGC ads use the ugc-generation skill instead.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":187}],"name":"ai-video-generation","skill_md_contents":"---\nname: ai-video-generation\ndescription: Generate AI videos with EzUGC catalog models (Veo, Kling, Runway, MiniMax, LTX, Seedance, and more). Use when the user wants text-to-video, image-to-video, a specific model, or \"generate a video\". Talking-head UGC ads use the ugc-generation skill instead.\n---\n\n# AI Video Generation\n\nGenerate cinematic, product, or b-roll videos with EzUGC's catalog models through this plugin's MCP tools.\n\nThe plugin is already connected through OAuth. Call `whoami`, then `get_usage`, before generating. If `whoami` fails, tell the user to reconnect the EzUGC plugin. Never use app cookies or a browser session.\n\nNever mention USD, provider cost, or credit-to-dollar rates. Quota is remaining videos this billing cycle (`get_usage`).\n\n## Quick start\n\n1. Call `whoami`, then `get_usage`. Stop on auth failure.\n2. Call `list_video_models`. Use a model with `available: true` and a duration from its `durations`. Do not invent an id.\n3. Call `generate_video`. Prefer `wait: true`.\n4. Report the real video URL from the job. If the job is still running, give the job id and poll `get_job`. Never invent a result.\n\nExample:\n\n```json\n{\n  \"prompt\": \"Handheld vertical clip of a skincare bottle catching window light on a bathroom counter\",\n  \"model\": \"google:3@3\",\n  \"duration\": 8,\n  \"aspectRatio\": \"9:16\"\n}\n```\n\n## Tool\n\nCall **`generate_video`**.\n\n| Arg | Required | Notes |\n| --- | --- | --- |\n| `prompt` | yes for text-to-video | Concrete visual brief. |\n| `model` | no | Id from `list_video_models`. Omit to use the default. |\n| `imageUrls` | no | Public https images for image-to-video: a start frame and an optional end frame. |\n| `referenceImageUrls` / `referenceVideoUrls` / `referenceAudioUrls` | no | Only on models that accept references (Seedance 2.0 / 2.5, MiniMax H3). Cannot be combined with `imageUrls`. |\n| `duration` | no | Seconds; snapped to the nearest option the model supports. |\n| `aspectRatio` | no | `9:16`, `16:9`, or `1:1`. |\n| `resolution` | no | Explicit size like `1280x720`. |\n| `generateAudio` | no | Only if the chosen model supports audio. |\n| brand refs | no | `brandId` / `brandSlug` / `useDefaultBrand`. |\n| `wait` | no | Default true. |\n\n## Picking a model\n\nCall `list_video_models` and map the user's ask onto a live id. Common ids (verify they are still `available: true`):\n\n- Veo 3.1: `google:3@2` · Veo 3.1 Fast: `google:3@3` (8s)\n- Kling 2.5 Turbo Pro: `klingai:6@1` · Runway Gen-4.5: `runway:1@2`\n- MiniMax H3: `minimax:h3@0` · LTX 2.3 Fast: `lightricks:ltx@2.3-fast`\n\nSeedance models count against the plan's separate Seedance allowance. If the response carries a `notice` (for example, a retired model routed to its replacement), tell the user. Lip-sync, avatar, and OmniHuman models are not on this API.\n\n## Format\n\n- **Cinematic / product / b-roll / animation**: this skill (`generate_video`).\n- **Spokesperson talking to camera (UGC ad)**: `ugc-generation` (`generate_ugc_video`).\n\nIf the brief is ambiguous, ask once, then generate.\n\n## On-brand clips\n\nIf they want it for a saved brand: `list_brands`, then `create_brand { websiteUrl }` if needed, then pass `useDefaultBrand: true` (or `generate_brand_video` for a talking-head UGC ad).\n\n## Hard rules\n\n- Never invent a job or video URL.\n- Only request models returned as `available: true`.\n- Do not dump provider names, task ids, or raw upstream errors to the user.\n- Do not post videos to Instagram, TikTok, or other public platforms.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}