Download the exact captured file
---
name: varg-dropship-reel
description: >-
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 the demand chart, then each step (research tool → store → AI ad tool → Instagram →
supplier ships), and a night-skyline ending shot on an iPhone with "Comment GUIDE". Script
template, AI shots on varg (Seedance 2.5, GPT Image 2.5, Wan 3, ElevenLabs), word-by-word
lime captions, the comment-to-DM funnel. Use when an e-commerce seller, dropshipper, affiliate of
a product-research or AI-ad tool, or course creator asks for a product reel like @tradelle's,
"a reel showing a product, its price in China and on Shopify", a "comment GUIDE" reel, a
laptop-and-pen screen walkthrough, or one such reel per product every day. Not for the hook
alone (use varg-product-hook), talking-head UGC ads, or screen recordings of software with a
cursor (find those with video-skills).
license: MIT
metadata:
author: vargHQ
version: "1.1.0"
openclaw:
requires:
anyBins:
- curl
- ffmpeg
homepage: https://varg.ai
compatibility: >-
Needs a VARG_API_KEY with curl (see the varg-ai skill) or the varg MCP connection
(https://mcp.varg.ai/mcp). Assembly runs locally with ffmpeg built with libass (macOS:
`brew install ffmpeg-full`) and node 18+ or bun for the scripts in scripts/ (screenshot.mjs
also needs the playwright package).
allowed-tools: Bash(curl:*) Bash(jq:*) Bash(ffmpeg:*) Bash(ffprobe:*) Bash(node:*) Bash(bun:*) Read Write Edit
---
# 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:**
```bash
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.
```bash
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:
```bash
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:
```json
{
"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).