varg-dropship-reel

Makes the 60-second faceless dropshipping "guide" reel end to end: a viral-looking product hook, a laptop on a zigzag tablecloth with a hand pointing a marker at the product cost, the store price and

SKILL.md

GitHub

Dropshipping guide reel

One template, a new product every day. Built from four @tradelle reels (Sept-Oct 2026, 56-64 s, 1080×1920) that share the same skeleton and almost the same voiceover; only the product, the prices and the hook change.

Beat Time Picture How we make it
Hook 0-13 s The product in action: real-looking phone or security-cam footage varg-product-hook (Seedance 2.5 from product photos)
Price math 13-27 s Laptop, hand with a marker points at cost, sell price, demand chart Real screenshots on a green-screen desk photo → Kling 4 adds the hand (or film it)
Steps 27-53 s The same desk and the same app UI in every shot, the pen walks through each screen Same, one shot per screen
CTA 53-60 s Night skyline through an apartment window, iPhone look Wan 3 or Seedance 2.5 once, reuse forever

Captions: 1-2 words at a time, bold uppercase, white with a black outline, prices and keywords in lime, at 60 % of the height. Voice: one flat, confident male narrator, about 2.6 words per second, no music or a very quiet bed.

Generation runs on varg: the varg-ai skill (REST at https://api.varg.ai/v2) or the varg MCP server (https://mcp.varg.ai/mcp: call_tool, get_job, estimate_cost, create_upload). Every call returns a job; poll GET /v2/jobs/{id} until completed, the file is at output.outputs[0].url. Image-to-video jobs took 5-10 minutes in our test; one text-to-video job waited about an hour in the queue. Start them all at once and do the next step while they run.

1. Ask once, then go

Collect: the product (store or supplier link, 1-3 photos), cost price and sell price, which tools the steps name (the research tool, store builder, AI ad tool, supplier: the ones you're an affiliate of, or your own store), the CTA keyword (default GUIDE), and the language.

Then offer these choices in one message, each with a default:

  1. Hook: AI remake from product photos (default) / your own footage. Archetype: backyard camera, torture test, problem → solution, satisfying close-up, gift reaction.
  2. Laptop shots: full AI from screenshots (default) / film them yourself (free, looks 100 % real, guide in references/screen-demo.md).
  3. Ending: AI night skyline (default, make once and reuse) / your own phone clip / stock.
  4. Voice: ElevenLabs eleven_v4, voice "Brian" (default) / another voice / your own recording.

Quote the price before generating (POST /v2/estimate or MCP estimate_cost per clip). What our tests paid (Oct 2026): 6 s seedance_2_5 hook clip 231 credits, 5 s laptop shot 79 on kling_v4, the desk photo 22 once, the skyline 60 once, voice 8. The first reel is about 1,250 credits (2 hook clips + 9 laptop shots + skyline); every next product about 860 (2 hook clips + 5 product-specific laptop shots + voice), because the desk, the skyline and 4 of the laptop shots are shared. With real laptop footage, about 470 per reel.

2. Write the script

Fill the template in references/script.md (140-160 words for 55-60 s). Put the exact prices you'll show on screen into the script. No income promises (see the claims section there).

3. Make the pieces (start all video jobs in parallel)

Hook (0-13 s): follow varg-product-hook: 2-3 clips of 4-6 s on seedance_2_5, 9:16, 720p, the product photo as @image1.

Laptop shots (13-53 s): references/screen-demo.md. In short (the UI must be identical in every shot, so no model ever draws the screen):

  1. Once: a desk photo with a MacBook whose screen is flat chroma green (gpt_image_2_5, prompt in the reference).
  2. Screenshots of every screen the script names, same size: your real store and tool, or assets/demo-app.html (scripts/screenshot.mjs).
  3. node scripts/screen-on-laptop.mjs plate.png frames/ screens/*.png: each screenshot warped onto the green screen, pixel-exact.
  4. Animate each frame for 5 s on kling_v4 (79 credits): locked camera, static screen, the hand with a marker enters and points along a path in script order. 9 clips per reel; landing, settings, ad tool and flow are shared across products.

Skyline ending (53-60 s): references/cta-and-funnel.md has the iPhone-look prompt. Text-to-video on wan_3 (60 credits for 6 s) did it well in our test. Make 2 variants once and reuse the better one in every reel.

Voiceover:

curl -s -X POST https://api.varg.ai/v2/speech -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "eleven_v4", "voice": "Brian", "text": "<the script>"}'

Word timings for the captions: transcribe the voiceover with groq_whisper_large_v3_turbo. It returns data.words with a start and end per word; whisper_large_v3 returns only sentence chunks.

curl -s -X POST https://api.varg.ai/v2/tools/transcription/call -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "groq_whisper_large_v3_turbo", "audio_url": "VOICEOVER_URL", "language": "en"}'
# poll the job, then save its result (the object with "words") as words.json

4. Cut it

Download every clip into clips/ under the names guide-edl.mjs lists (hook1, hook2, productA, productB, store, home, settings, adpaste, ads, flow, orders, skyline), then:

mkdir -p fonts && curl -sL -o fonts/Bangers-Regular.ttf \
  https://github.com/google/fonts/raw/main/ofl/bangers/Bangers-Regular.ttf   # free, close to the originals' comic bold
node scripts/captions.mjs words.json captions.ass --keywords "shopify,profit,demand,free,guide,china"
node scripts/guide-edl.mjs words.json clips > edit.json   # cuts every screen in on the word that names it
node scripts/assemble.mjs edit.json

For a voiceover in another language add --lang es (built in: en, es) or --anchors anchors.json with the same 11 keys; see varg-ad-localize. guide-edl.mjs finds the script's anchor words ("purchased", "sold", "Even after", "Here is how", "First", "Offer", "Then go", "It will", "Start posting", "when a customer", "Comment") and writes one cut per phrase. To cut by hand, edit.json is one entry per cut:

{
  "out": "reel.mp4", "voiceover": "vo.mp3", "captions": "captions.ass", "fontsdir": "fonts",
  "shots": [
    { "file": "hook1.mp4",   "in": 0,   "dur": 3.0 },
    { "file": "hook2.mp4",   "in": 0.5, "dur": 2.6 },
    { "file": "research.mp4","in": 0,   "dur": 3.0 },
    { "file": "store.mp4",   "in": 0,   "dur": 4.1 },
    { "file": "research.mp4","in": 2.6, "dur": 2.4, "zoom": 1.08 },
    { "file": "skyline.mp4", "in": 0,   "dur": 4.6 }
  ]
}

zoom punches in (use it when you reuse a clip), speed below 1 slows a shot, a shot longer than its source holds the last frame, and overlays ([{ "file": "banner.png", "start": 0, "end": 7 }], full-frame PNGs with alpha) put on-screen text with emoji or a CCTV timestamp over the hook. libass can't draw colour emoji, so render those lines as PNGs. Shots should add up to the voiceover length. The script picks up Homebrew's ffmpeg-full by itself when the default ffmpeg can't burn subtitles.

ffmpeg without captions support. Homebrew's ffmpeg has no libass since 2025 (ffmpeg -filters | grep subtitles prints nothing). Install the keg-only ffmpeg-full next to it (brew install ffmpeg-full); it doesn't replace ffmpeg. Seen on macOS 15.1 (2026-10-27): the install upgraded shared libraries, after which the old ffmpeg failed to start (Library not loaded: libx265…) and ffmpeg-full failed on freetype (Library not loaded: /usr/lib/libhvf.dylib). Fix: brew upgrade ffmpeg and brew reinstall --build-from-source freetype. Don't run this on someone's machine without asking: it changes their system Homebrew.

Check the result: watch it once with sound and once muted; every price on screen must match the voice and the caption at that moment.

5. Post and catch the comments

Caption Best time to start is here 🤝 #entrepreneur #onlinebusiness #ecommerce (the originals' exact line), a ManyChat comment trigger on the keyword that DMs the guide, and the AI label where the platform asks for it. Setup and what to put in the guide: references/cta-and-funnel.md.

Tested

2026-10-28, four products end to end on varg with this exact pipeline: one green-screen desk photo (gpt_image_2_5), the demo app's screens via screenshot.mjs + screen-on-laptop.mjs, 24 laptop shots on kling_v4, hooks on seedance_2_5, eleven_v4 "Brian" voices, word timings from local Whisper, guide-edl.mjs + captions.mjs + assemble.mjs. The app looks the same in every shot and the desk never changes; the hand is the only thing that moves.

Reel Hook Link
LED pet nail clipper satisfying close-up (cat, then dog) https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_782920d92e94.mp4
Solar security light backyard security camera + "Backyard camera caught this ❌" overlay; the AI video step on varg.ai https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_d45406f8d0db.mp4
Cut-resistant gloves torture test (knife, mandoline) https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_631fb721a315.mp4
Heated neck massager gift reaction (Father's Day) https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_3c77d15fbf7e.mp4

The first version (2026-10-27) drew each laptop frame with gpt_image_2_5; the UI changed between shots, which is why the steps above keep the model off the screen.

Rules

  • Real prices, real store, real screenshots. No fake reviews, sales counts or income claims.
  • Don't repost other people's videos as the hook. Remake the idea with your product (varg-product-hook).
  • Say it's an ad when you're paid or an affiliate; label AI footage where the platform asks.
  • Keep Burj Khalifa out of focus in paid ads (Emaar wants approval for ad use).
  • Re-running a byte-identical request is a free cache hit; change a word to get a new take.

Files

reel/
  script.md          # filled template
  product.png        # packshot (and any extra product photos)
  plate.png          # the green-screen desk photo, made once
  screens/*.png      # screenshots, one per screen named in the script
  frames/*.jpg       # screen-on-laptop.mjs output, one per screenshot
  clips/*.mp4        # hook1-2, laptop shots (productA/B, store, home, settings, adpaste, ads, flow, orders), skyline
  vo.mp3  words.json  captions.ass  fonts/
  edit.json  reel.mp4

Tutorial with all five example videos and the tools compared: https://github.com/vargHQ/how-to-make-ai-videos-for-dropshipping

Related skills

varg-product-hook (the hook), varg-ai (models, uploads, prices, cloud render), media-download (save reference reels), short-form-ffmpeg-cookbook (more edits: zoom punches, speed ramps, loudness), video-skills (other ad formats).