Skip to main content

arcads-ai-video-agent

Create AI marketing videos and images using Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling 3.0, Nano Banana, and 37 static Meta ad templates

الانتقال إلى التثبيت

معلومات المصدر

المستودع
reason-machines/claude-code-skills
آخر نشاط في المصدر
٨ يوليو ٢٠٢٦ في ١١:١٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
arcads-ai-video-agent
description
Create AI marketing videos and images using Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling 3.0, Nano Banana, and 37 static Meta ad templates
triggers
["generate an arcads video","create ai marketing video with seedance","make a nano banana image ad","generate ugc video with arcads","create pixar style animated ad","make meta image ad with arcads","use arcads api for video generation","create ai influencer character sheet"]
# Arcads AI Video Agent > Skill by [ara.so](https://ara.so) — Claude Code Skills collection. This skill enables AI agents to create marketing videos and images using the [Arcads](https://arcads.ai/?via=claude-code) platform. It supports the full creative stack: **Seedance 2.0** (flagship video), **Sora 2**, **Veo 3.1**, **Kling 3.0**, **Grok Video**, **Nano Banana 2/Pro/Edit**, **ChatGPT Image 2**, **OmniHuman**, and **Audio-driven** models, plus 37 validated static Meta image-ad templates and multi-step pipelines for Pixar-style and claymation animated ads. ## Prerequisites - Python 3.10+ - Arcads API key from [app.arcads.ai/settings/api](https://app.arcads.ai/settings/api) - Optional tools for advanced workflows: - `ffmpeg` (video stitching, chroma-key) - `jq` (JSON parsing in bash scripts) - Node.js + `npx hyperframes` (caption burn-in) - `openai-whisper` (transcription: `pip install openai-whisper`) ## Installation ```bash # Clone the repository git clone https://github.com/krusemediallc/arcads-claude-code.git cd arcads-claude-code # Run setup script ./scripts/setup.sh ``` The setup script will: 1. Prompt for your Arcads API key 2. Create `.env` file with `ARCADS_API_KEY=your_key_here` 3. Verify API connection 4. Create `MASTER_CONTEXT.md` workspace file **Manual setup** (if you skip the script): ```bash # Create .env file echo "ARCADS_API_KEY=your_api_key_here" > .env ``` ## Core API Patterns All Arcads API calls follow this pattern: ```python import os import requests import time from dotenv import load_dotenv load_dotenv() BASE_URL = "https://api.arcads.ai" API_KEY = os.getenv("ARCADS_API_KEY") headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } ``` ### Standard Generation Flow 1. **Submit job** → get `jobId` 2. **Poll status** until `completed` or `failed` 3. **Download result** ```python def submit_job(endpoint, payload): """Submit a generation job to Arcads API""" response = requests.post( f"{BASE_URL}{endpoint}", headers=headers, json=payload ) response.raise_for_status() return response.json()["jobId"] def poll_status(job_id, timeout=600, interval=10): """Poll job status until complete""" start_time = time.time() while time.time() - start_time < timeout: response = requests.get( f"{BASE_URL}/v1/jobs/{job_id}", headers=headers ) data = response.json() status = data["status"] if status == "completed": return data["result"] elif status == "failed": raise Exception(f"Job failed: {data.get('error')}") time.sleep(interval) raise TimeoutError(f"Job {job_id} timed out after {timeout}s") def download_file(url, output_path): """Download generated asset""" response = requests.get(url, stream=True) response.raise_for_status() with open(output_path, 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) ``` ## Video Generation ### Seedance 2.0 (Flagship Model) **Best for:** UGC videos, product reveals, hero shots, lookbooks, feature demos (4-15s) ```python def generate_seedance_video(prompt, duration=10, style="ugc"): """Generate Seedance 2.0 video with prompt engineering""" # UGC formula (9-layer structure) if style == "ugc": full_prompt = f""" [PERSON] Woman, late 20s, natural makeup, casual kitchen setting [OPENER] Direct camera eye contact, authentic energy, "Hey guys!" [HOOK] Attention-grabbing statement about {prompt} [PROBLEM] Relatable pain point, conversational tone [SOLUTION] Product introduction, natural hand gestures [DEMO] Show product in use, realistic interaction [BENEFIT] Key value prop, maintains eye contact [SOCIAL_PROOF] Brief testimonial feel [CTA] Natural call to action, warm energy [STYLE] iPhone selfie aesthetic, natural lighting, slight camera shake """ else: full_prompt = prompt payload = { "prompt": full_prompt, "duration": duration, "aspectRatio": "9:16" # or "16:9", "1:1" } job_id = submit_job("/v2/videos/generate", payload) print(f"Seedance job submitted: {job_id}") result = poll_status(job_id) video_url = result["videoUrl"] download_file(video_url, f"output/seedance_{job_id}.mp4") return video_url ``` **Example usage:** ```python # UGC product review video = generate_seedance_video( "skin serum that reduced dark circles in 2 weeks", duration=12, style="ugc" ) # Premium product reveal payload = { "prompt": """ [SCENE] Dark void, single spotlight [PRODUCT] Luxury perfume bottle materializes [MOTION] Slow 360° rotation, golden light rays [TEXT] Overlay: "Crafted for those who dare" [AESTHETIC] High-contrast, cinematic, no human presence """, "duration": 8, "aspectRatio": "9:16" } job_id = submit_job("/v2/videos/generate", payload) ``` ### Veo 3.1 (Image-to-Video with Dialogue) **Best for:** Animating Nano Banana stills into talking UGC videos ```python def animate_with_veo(image_path, dialogue, duration=8): """Animate a still image with Veo 3.1 + dialogue""" import base64 # Load and encode starting frame with open(image_path, "rb") as f: image_b64 = base64.b64encode(f.read()).decode() payload = { "startFrame": image_b64, "prompt": f""" Natural human motion, authentic energy, person speaks: "{dialogue}" Maintain character likeness from starting frame. iPhone selfie aesthetic, slight head movement, natural eye contact. """, "dialogue": dialogue, # MANDATORY for dialogue videos "duration": duration, "aspectRatio": "9:16" } job_id = submit_job("/v1/veo3-1/video", payload) result = poll_status(job_id, timeout=900) # Veo takes longer download_file(result["videoUrl"], f"output/veo_{job_id}.mp4") return result["videoUrl"] ``` ### Sora 2 (Text-to-Video, Longer Durations) **Best for:** Cinematic scenes, B-roll, up to 20s ```python def generate_sora_video(prompt, duration=16): """Generate Sora 2 video (supports longer durations)""" payload = { "prompt": prompt, "duration": duration, # Auto-calculated from word count if omitted "aspectRatio": "16:9" } # Optional: add style reference image # payload["styleReference"] = base64_encoded_image job_id = submit_job("/v1/sora2/video", payload) result = poll_status(job_id, timeout=1200) download_file(result["videoUrl"], f"output/sora_{job_id}.mp4") return result["videoUrl"] ``` ### Kling 3.0 (B-Roll & Scenes) **Best for:** Scene generation, environmental b-roll ```python def generate_broll(scene_description): """Generate b-roll clip with Kling 3.0""" payload = { "prompt": scene_description, "duration": 5 } job_id = submit_job("/v1/b-roll", payload) result = poll_status(job_id) download_file(result["videoUrl"], f"output/broll_{job_id}.mp4") return result["videoUrl"] # Example generate_broll("Golden hour beach waves, slow motion, cinematic") ``` ## Image Generation ### Nano Banana (Character Creation & Product Stills) **Best for:** AI influencers, UGC stills, photoreal product shots ```python def create_nano_banana_image(prompt, reference_images=None, model="nano-banana-2"): """ Generate image with Nano Banana model options: "nano-banana-2" (default), "nano-banana" (Pro), "nano-banana-edit" """ payload = { "prompt": prompt, "model": model, "aspectRatio": "9:16" } # Add reference images for character consistency if reference_images: import base64 refs = [] for img_path in reference_images: with open(img_path, "rb") as f: refs.append(base64.b64encode(f.read()).decode()) payload["referenceImages"] = refs job_id = submit_job("/v1/nano-banana/image", payload) result = poll_status(job_id) download_file(result["imageUrl"], f"output/nano_{job_id}.png") return result["imageUrl"] ``` **Example: Create AI Influencer (10-image character sheet)** ```python def create_ai_influencer(description): """Generate 10-angle character sheet for AI influencer""" # Step 1: Generate hero front portrait hero_prompt = f""" {description} Front-facing portrait, natural expression, golden hour lighting. Photoreal skin texture, freckles, pores visible. Soft focus background, kitchen setting. """ hero_url = create_nano_banana_image(hero_prompt) print(f"Hero portrait: {hero_url}") print("Review and approve hero before generating remaining 9 angles.") # Step 2: Generate 9 additional angles using hero as reference angles = [ "3/4 view left, slight smile", "3/4 view right, natural expression", "Profile left, looking away", "Profile right, looking forward", "Close-up, eyes focused on camera", "Full body, standing casual pose", "Laughing, animated expression", "Serious expression, direct gaze", "Lifestyle shot, holding coffee mug" ] results = [] for angle in angles: prompt = f"{description}\n{angle}\nMaintain exact character likeness." url = create_nano_banana_image( prompt, reference_images=["output/hero_portrait.png"], model="nano-banana" # Use Pro for tighter identity lock ) results.append(url) return results ``` ### ChatGPT Image 2 (Typography & UI-Heavy Ads) **Best for:** Apple Notes lists, fake Slack threads, editorial layouts, comparison tables ```python def generate_chatgpt_image(prompt, aspect_ratio="1:1"): """Generate image with ChatGPT Image 2 (gpt-image-2)""" payload = { "prompt": prompt, "model": "gpt-image-2", "aspectRatio": aspect_ratio # "1:1", "4:5", "16:9" } job_id = submit_job("/v1/image/generate", payload) result = poll_status(job_id) download_file(result["imageUrl"], f"output/chatgpt_{job_id}.png") return result["imageUrl"] ``` ## Static Meta Image Ad Templates (37-Template Library) The repo includes **37 validated prompt templates** for static Meta image ads. Use the specialized skills: ```python # Apple Notes-style list ad def generate_apple_notes_ad(product, benefits): """Generate Apple Notes-style ad (ChatGPT Image 2)""" prompt = f""" iPhone Notes app interface, cream background. Title: "why i switched to {product}" Bulleted list: {chr(10).join(f'• {b}' for b in benefits)} Footer: handwritten-style signature. Clean iOS typography, authentic spacing, no visible phone edges. """ return generate_chatgpt_image(prompt, aspect_ratio="4:5") # Photoreal UGC selfie ad def generate_ugc_selfie_ad(influencer_ref, product_ref): """Generate UGC selfie with product (Nano Banana)""" prompt = """ iPhone selfie, natural bedroom lighting. [influencer] holding [product], casual smile. Authentic skin texture, slight motion blur. Visible pores, flyaway hairs, iPhone camera imperfections. Product visible and recognizable, natural hand position. """ return create_nano_banana_image( prompt, reference_images=[influencer_ref, product_ref], model="nano-banana-2" ) ``` **Template categories** (see `shared/skills/image-ad-prompting/library/` for full list):
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub