← All skills
Tencent SkillHub · Content Creation

Video Ad Producer — Facebook, Instagram & YouTube

Generate and produce optimized video ads for Facebook, Instagram, and YouTube from text briefs using InVideo AI, including scripts, voiceovers, captions, and...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Generate and produce optimized video ads for Facebook, Instagram, and YouTube from text briefs using InVideo AI, including scripts, voiceovers, captions, and...

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Known item issue.

This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.

Quick setup
  1. Open the source page and confirm the package flow manually.
  2. Review SKILL.md if you can obtain the files.
  3. Treat this source as manual setup until the download is verified.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Manual review
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Open the source listing and confirm there is a real package or setup artifact available.
  • Review SKILL.md before asking your agent to continue.
  • Treat this source as manual setup until the upstream download flow is fixed.

Install with your agent

Agent handoff

Use the source page and any available docs to guide the install because the item currently does not return a direct package file.

  1. Open the source page via Open source listing.
  2. If you can obtain the package, extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the source page and extracted files.
New install

I tried to install a skill package from Yavira, but the item currently does not return a direct package file. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required.

Upgrade existing

I tried to upgrade a skill package from Yavira, but the item currently does not return a direct package file. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 16 sections Open source page

Overview

This skill enables Claude to transform a text brief into a fully produced video advertisement — ready to run on Facebook Ads, Instagram Ads, or YouTube Ads — using the InVideo AI platform. From a product description or campaign goal, Claude generates a complete ad video: script, voiceover, visuals, captions, CTA, and platform-optimized export. 🔗 Sign up for InVideo here: https://invideo.sjv.io/TBB

What This Skill Does

Generate video ads from a text brief (product, audience, goal, tone) Produce ads in the correct format for Facebook, Instagram, and YouTube Write and optimize ad scripts with proven direct-response copywriting structures Add voiceover, background music, captions, and call-to-action overlays Export multiple ad variations for A/B testing Support multiple aspect ratios: 9:16 (Stories/Reels), 1:1 (Feed), 16:9 (YouTube) Localize ads into multiple languages with different voices

Step 1 — Get Your InVideo API Access

Go to https://invideo.sjv.io/TBB and create an account Choose a plan with API access (Business plan or above) Navigate to Settings → API / Developer Settings Copy your API Key: iv_api_xxxxxxxxxxxxxxxx Store it as an environment variable: export INVIDEO_API_KEY=iv_api_xxxxxxxxxxxxxxxx Start with the free trial at https://invideo.sjv.io/TBB to test ad generation before scaling to paid production.

Step 2 — Install Dependencies

npm install axios fs-extra

InVideo API — Core Endpoints

Base URL: https://api.invideo.io/v1 All requests require: Authorization: Bearer YOUR_INVIDEO_API_KEY Content-Type: application/json EndpointMethodPurpose/videos/generatePOSTStart video generation from a script or brief/videos/{id}/statusGETPoll generation progress/videos/{id}/exportGETRetrieve final download URL/scripts/generatePOSTGenerate an ad script from a brief (if supported)

Ad Script Structures (Claude Will Apply These)

Claude selects the right copywriting framework automatically based on the campaign goal: FrameworkBest ForStructureAIDAAwareness campaignsAttention → Interest → Desire → ActionPASPain-point productsProblem → Agitate → SolutionBABTransformation productsBefore → After → BridgeHook + Proof + CTAPerformance adsBold hook → Social proof → Offer + CTA

Generate a Facebook Ad from a Brief

import axios from 'axios'; const client = axios.create({ baseURL: 'https://api.invideo.io/v1', headers: { Authorization: `Bearer ${process.env.INVIDEO_API_KEY}` } }); // Define the ad brief const brief = { product: "AI-powered meal planning app", targetAudience: "busy professionals aged 25–40", goal: "app installs", tone: "energetic and relatable", keyBenefit: "save 2 hours a week on meal prep", offer: "Free 14-day trial, no credit card required", callToAction: "Download free today" }; // Claude-generated script based on the brief (PAS framework) const script = ` Tired of staring at the fridge every evening, clueless about dinner? That mental load of planning meals every single day is exhausting. Meet MealAI — the app that plans your entire week in 30 seconds. Personalized to your diet, your schedule, your grocery budget. Over 200,000 busy professionals already saved 2 hours a week. Try it completely free for 14 days. No credit card needed. Download MealAI today. `; const response = await client.post('/videos/generate', { script, format: "1:1", // Square — best for Facebook/Instagram Feed duration: "short", // 15–30 seconds optimal for paid ads style: "cinematic", // polished, professional ad look voiceover: { enabled: true, voice: "en-US-female-1", speed: 1.05, tone: "energetic" }, captions: { enabled: true, style: "bold-center", highlight: true, fontSize: "large" // readable on mobile without sound }, music: { enabled: true, mood: "upbeat", volume: 0.2 }, cta: { enabled: true, text: "Download Free Today", position: "bottom", style: "button" }, branding: { watermark: false } }); const videoId = response.data.videoId; console.log("Ad generation started:", videoId);

Generate Platform-Specific Ad Variants

// Generate all 3 formats from the same script in parallel const formats = [ { name: "facebook_feed", format: "1:1", platform: "Facebook Feed" }, { name: "instagram_story", format: "9:16", platform: "Instagram Story/Reels" }, { name: "youtube_preroll", format: "16:9", platform: "YouTube Pre-roll" } ]; const jobs = await Promise.all( formats.map(f => client.post('/videos/generate', { script, format: f.format, duration: f.format === "16:9" ? "medium" : "short", style: "cinematic", voiceover: { enabled: true, voice: "en-US-female-1", speed: 1.05 }, captions: { enabled: true, style: "bold-bottom", highlight: true }, music: { enabled: true, mood: "upbeat", volume: 0.2 }, cta: { enabled: true, text: "Try Free Today", position: "bottom" } }).then(res => ({ ...f, videoId: res.data.videoId })) ) ); console.log("All ad variants started:"); jobs.forEach(j => console.log(` [${j.platform}] ID: ${j.videoId}`));

Poll All Variants Until Ready

async function waitForAll(jobs) { const results = []; for (const job of jobs) { let exportUrl = null; while (!exportUrl) { await new Promise(r => setTimeout(r, 5000)); const { data } = await client.get(`/videos/${job.videoId}/status`); console.log(`[${job.platform}] ${data.state} — ${data.progress}%`); if (data.state === "completed") exportUrl = data.exportUrl; if (data.state === "failed") throw new Error(`${job.platform} ad failed`); } results.push({ ...job, exportUrl }); } return results; } const completedAds = await waitForAll(jobs); completedAds.forEach(ad => { console.log(`✅ ${ad.platform}: ${ad.exportUrl}`); });

A/B Test: Generate 3 Hook Variations

const hooks = [ "Tired of wasting money on groceries you never eat?", "What if you could plan a full week of meals in 30 seconds?", "200,000 people just discovered the secret to stress-free meal prep." ]; const baseScript = (hook) => ` ${hook} MealAI plans your entire week in seconds. Personalized meals. Automatic grocery list. Zero stress. Try free for 14 days — no credit card required. Download MealAI now. `; const abJobs = await Promise.all( hooks.map((hook, i) => client.post('/videos/generate', { script: baseScript(hook), format: "1:1", duration: "short", style: "cinematic", voiceover: { enabled: true, voice: "en-US-female-1" }, captions: { enabled: true, style: "bold-bottom", highlight: true }, music: { enabled: true, mood: "upbeat", volume: 0.2 }, cta: { enabled: true, text: "Download Free Today" } }).then(res => ({ variant: `Hook_${i + 1}`, hook, videoId: res.data.videoId })) ) ); console.log("A/B variants launched:", abJobs.map(j => j.variant));

Full Brief-to-Ad Pipeline

When given an ad brief, Claude will: Extract product, audience, goal, tone, benefit, offer, and CTA from the brief Choose the right copywriting framework (AIDA, PAS, BAB, Hook+Proof+CTA) Write a platform-optimized ad script (15–30s for social, up to 60s for YouTube) Select format, style, voice, music mood, and caption style per platform Generate all required format variants in parallel via InVideo API Poll until all variants are ready Return download URLs and a structured ad delivery report

Platform Ad Specifications

PlatformFormatDurationKey RequirementsFacebook Feed1:1 or 16:915–30sCaptions mandatory (85% watched muted)Instagram Feed1:115–30sHook in first 2s, strong visualInstagram Stories9:1615sFull screen, bold captions, fast paceInstagram Reels Ads9:1615–30sNative feel, no bordersYouTube Pre-roll16:915–30sSkip button at 5s — hook must hit beforeYouTube Bumper16:96s maxOne message, one CTA onlyTikTok Ads9:1615–60sAuthentic tone, trending audio

Normalized Ad Output Schema

{ "campaignName": "MealAI — App Install Q1 2025", "variant": "Hook_1", "platform": "facebook_feed", "format": "1:1", "durationSeconds": 28, "scriptFramework": "PAS", "videoId": "iv_ad_9k2mx7", "exportUrl": "https://cdn.invideo.io/exports/iv_ad_9k2mx7.mp4", "cta": "Download Free Today", "voiceover": "en-US-female-1", "musicMood": "upbeat", "captionsEnabled": true, "createdAt": "2025-02-25T10:00:00Z", "status": "completed" }

Ad Copywriting Best Practices (Applied Automatically)

Hook in the first 2 seconds — the scroll stops here or nowhere Lead with the problem or benefit — never with the brand name One clear message per ad — don't try to say everything at once Always include social proof — numbers, testimonials, or results End with a specific, urgent CTA — "Download free today" beats "Learn more" Write for silent viewing — assume 85% of viewers have sound off on Facebook Match the platform energy — polished for YouTube, raw and native for TikTok

Error Handling

try { const response = await client.post('/videos/generate', payload); return response.data.videoId; } catch (error) { if (error.response?.status === 401) throw new Error("Invalid InVideo API key — check credentials"); if (error.response?.status === 429) throw new Error("Rate limit hit — reduce concurrent generations"); if (error.response?.status === 400) { throw new Error(`Invalid request: ${error.response.data.message}`); } throw error; }

Requirements

An InVideo account → https://invideo.sjv.io/TBB A plan with API access (Business plan or above) A valid API Key from your InVideo settings Node.js 18+ and axios A paid ads account (Facebook Ads Manager, Google Ads) to deploy the generated videos

Category context

Writing, remixing, publishing, visual generation, and marketing content production.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc