Skip to main content

arcads-ai-video-generator

Create AI marketing videos and static Meta image ads using the Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling, Nano Banana, ChatGPT Image, and 37 static ad templates

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

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

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

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

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

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

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

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
arcads-ai-video-generator
description
Create AI marketing videos and static Meta image ads using the Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling, Nano Banana, ChatGPT Image, and 37 static ad templates
triggers
["generate an AI video ad","create a UGC video with Seedance","make a product reveal video","generate AI influencer images","create static Meta image ads","build a Pixar-style animated ad","animate a still image with Veo","generate YouTube thumbnails"]
# Arcads AI Video Generator > Skill by [ara.so](https://ara.so) — Claude Code Skills collection. Create AI marketing videos and images using the Arcads API. 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**, **Audio-driven** models, plus a 37-template static Meta image-ad library and multi-step pipelines for Pixar-style and claymation animated ads. ## Installation ```bash git clone https://github.com/krusemediallc/arcads-claude-code.git cd arcads-claude-code ./scripts/setup.sh ``` The setup script will: - Prompt for your Arcads API key (get it at [app.arcads.ai/settings/api](https://app.arcads.ai/settings/api)) - Save credentials to `.env` - Verify API connection - Create `MASTER_CONTEXT.md` workspace file ### Prerequisites | Tool | Required for | Install | |---|---|---| | Python 3.10+ | Core API operations | `brew install python@3.12` | | `ffmpeg` | Video stitching, chroma-key | `brew install ffmpeg` | | `jq` | JSON parsing in bash scripts | `brew install jq` | | Node.js | Caption burn-in (hyperframes) | `brew install node` | | `whisper` | Caption transcription | `pip install openai-whisper` | ### Environment Setup Create `.env` in the project root: ```bash ARCADS_API_KEY=your_api_key_here ``` ## Core API Patterns ### Video Generation (Seedance 2.0) **Endpoint:** `POST https://api.arcads.ai/v1/seedance2/video` ```python import requests import os import time API_KEY = os.getenv('ARCADS_API_KEY') BASE_URL = 'https://api.arcads.ai' def generate_seedance_video(prompt, duration=12): """Generate a Seedance 2.0 video.""" headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } payload = { 'prompt': prompt, 'duration': duration, 'shotStyle': 'ugc-selfie' # or 'premium-reveal', 'product-hero', etc. } # Start generation response = requests.post( f'{BASE_URL}/v1/seedance2/video', headers=headers, json=payload ) job = response.json() job_id = job['id'] # Poll until complete while True: status_response = requests.get( f'{BASE_URL}/v1/jobs/{job_id}', headers=headers ) status = status_response.json() if status['status'] == 'completed': return status['videoUrl'] elif status['status'] == 'failed': raise Exception(f"Generation failed: {status.get('error')}") time.sleep(5) # Example: UGC product review video_url = generate_seedance_video( prompt=""" [SCENE: NATURAL KITCHEN LIGHTING] Medium shot, slight handheld motion. Woman, early 30s, messy bun, casual tank top. Holding [PRODUCT] at chest level, genuine smile. [DIALOGUE] "Okay so I used to buy [COMPETITOR] every month but then I found THIS—" *lifts product slightly, direct eye contact* "—and honestly? I'm never going back." [VISUAL BEATS] 0-3s: Establishing shot, product reveal 3-7s: Close on face during key claim 7-12s: Pull back, casual product demo gesture """, duration=12 ) print(f"Video ready: {video_url}") ``` ### Seedance 2.0 Prompt Formulas Five battle-tested formulas ship with the skill: #### 1. UGC Selfie-Style Review ``` [SCENE: NATURAL KITCHEN LIGHTING] Medium shot, slight handheld motion. Woman, early 30s, messy bun, casual tank top. Holding [PRODUCT] at chest level, genuine smile. [DIALOGUE] "Okay so I used to buy [COMPETITOR] every month..." [VISUAL BEATS] 0-3s: Establishing shot 3-7s: Close on face 7-12s: Product demo gesture ``` #### 2. Premium Product Reveal (No Person) ``` [SCENE: DARK VOID] No human. Product only. Black background, dramatic side lighting. [TEXT OVERLAYS] Beat 1 (0-3s): "Most [CATEGORY] products..." Beat 2 (3-6s): "[PRODUCT] is different." Beat 3 (6-9s): Hero rotation + key feature callout [CAMERA] Slow push-in, 360° rotation at beat 3 ``` #### 3. Product Hero with Elements ``` [SCENE: ELEMENTAL SHOWCASE] Product suspended mid-frame. Water splash from below, mist rising. Slow rotation (15°/sec). [VISUAL FX] 0-2s: Water splash entry 2-5s: Mist buildup 5-8s: Light rays piercing mist 8-12s: Hero rotation + feature close-up ``` ### Image Generation (Nano Banana) **Endpoint:** `POST https://api.arcads.ai/v1/nano-banana/image` ```python import base64 def generate_nano_banana_image(prompt, reference_image_path=None, model='nano-banana-2'): """Generate a Nano Banana image with optional reference.""" headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } payload = { 'prompt': prompt, 'model': model, # 'nano-banana-2' or 'nano-banana' (Pro) or 'nano-banana-edit' 'aspectRatio': '9:16' } # Add reference image if provided if reference_image_path: with open(reference_image_path, 'rb') as f: img_base64 = base64.b64encode(f.read()).decode('utf-8') payload['refImageAsBase64'] = img_base64 response = requests.post( f'{BASE_URL}/v1/nano-banana/image', headers=headers, json=payload ) job = response.json() job_id = job['id'] # Poll for completion while True: status_response = requests.get( f'{BASE_URL}/v1/jobs/{job_id}', headers=headers ) status = status_response.json() if status['status'] == 'completed': return status['imageUrl'] elif status['status'] == 'failed': raise Exception(f"Generation failed: {status.get('error')}") time.sleep(3) # Example: UGC selfie with product image_url = generate_nano_banana_image( prompt=""" iPhone selfie camera, natural bedroom lighting. Woman, 22, freckles, golden hour glow. Holding [PRODUCT] at chest level, genuine smile. Messy hair, no makeup, casual tank top. Slight camera shake, realistic skin texture. Background: unmade bed, string lights, plants. """, reference_image_path='references/influencers/sofia_hero.jpg' ) ``` ### Veo 3.1 (Start-Frame Animation) **Endpoint:** `POST https://api.arcads.ai/v1/veo3/video` ```python def animate_with_veo(start_frame_path, prompt, duration=8): """Animate a still image with Veo 3.1.""" headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } # Load start frame with open(start_frame_path, 'rb') as f: img_base64 = base64.b64encode(f.read()).decode('utf-8') payload = { 'prompt': prompt, 'startFrame': img_base64, 'duration': duration, 'dialogue': 'I switched to this product and never looked back' } response = requests.post( f'{BASE_URL}/v1/veo3/video', headers=headers, json=payload ) job = response.json() return poll_job(job['id']) def poll_job(job_id): """Generic job polling.""" headers = {'Authorization': f'Bearer {API_KEY}'} while True: response = requests.get( f'{BASE_URL}/v1/jobs/{job_id}', headers=headers ) status = response.json() if status['status'] == 'completed': return status.get('videoUrl') or status.get('imageUrl') elif status['status'] == 'failed': raise Exception(f"Job failed: {status.get('error')}") time.sleep(5) ``` ### Sora 2 Video Generation **Endpoint:** `POST https://api.arcads.ai/v1/sora2/video` ```python def generate_sora_video(prompt, duration=16, reference_image_path=None): """Generate a Sora 2 video (up to 20s).""" headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } payload = { 'prompt': prompt, 'duration': duration } if reference_image_path: with open(reference_image_path, 'rb') as f: img_base64 = base64.b64encode(f.read()).decode('utf-8') payload['styleReference'] = img_base64 response = requests.post( f'{BASE_URL}/v1/sora2/video', headers=headers, json=payload ) return poll_job(response.json()['id']) # Example: Longer narrative scene video_url = generate_sora_video( prompt=""" Cozy coffee shop interior, warm afternoon light. Camera tracks across table as woman opens laptop. Smooth dolly shot, shallow depth of field. Steam rising from coffee mug in foreground. Natural color grading, 24fps cinematic feel. """, duration=16 ) ``` ### B-Roll / Scene Generation (Kling 3.0) **Endpoint:** `POST https://api.arcads.ai/v1/b-roll` or `POST https://api.arcads.ai/v1/scene` ```python def generate_broll(prompt, duration=5): """Generate b-roll footage with Kling 3.0.""" headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } payload = { 'prompt': prompt, 'duration': duration } response = requests.post( f'{BASE_URL}/v1/b-roll', headers=headers, json=payload ) return poll_job(response.json()['id']) # Example: Product environment b-roll broll_url = generate_broll( prompt=""" Close-up of coffee beans being poured into grinder. Slow motion, 120fps. Natural light from window, wooden countertop. Shallow focus on falling beans. """ ) ``` ## Static Meta Image Ad Library The repo includes **37 validated prompt templates** for static Meta image ads. Two primary generators: ### ChatGPT Image 2 (Typography/UI-Heavy) **Best for:** Apple Notes lists, editorial layouts, comparison tables, UI mockups, text-heavy designs ```python def generate_chatgpt_image_ad(template_name, product_details): """Generate static ad using ChatGPT Image 2.""" # Load template from library template_path = f'shared/skills/image-ad-prompting/library/{template_name}.md' with open(template_path, 'r') as f: template = f.read() # Fill template with product details prompt = template.format(**product_details) headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } payload = { 'prompt': prompt, 'model': 'gpt-image-2', 'aspectRatio': '4:5' # Standard Meta image ad ratio } response = requests.post( f'{BASE_URL}/v1/chatgpt-image/generate', headers=headers, json=payload ) return poll_job(response.json()['id']) # Example: Apple Notes style ad image_url = generate_chatgpt_image_ad( template_name='apple-notes-list', product_details={ 'product_name': 'FocusFlow', 'category': 'productivity app', 'benefits': [ 'Blocks distractions automatically', 'AI suggests optimal focus times', 'Syncs across all devices' ], 'cta': 'Download free today' } ) ``` ### Nano Banana (Photoreal/Lifestyle)
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub