End-to-end pipeline that turns Amazon affiliate products into AI talking-head Shorts — one consistent host, one product per video, affiliate funnel through theluxedrawer.com/p/<slug> → YouTube, Instagram, Facebook, Pinterest, and X.
Each pipeline stage is a slash-command skill — idempotent, manifest-driven, and accepts a single slug, a comma-list, or --all-needing.
A pinned character folder defines the host. Same face, same voice across every Short.
Examples of starting frames across different products.
Authoritative ordering lives in .claude/skills/PIPELINE.md. Twelve stages, grouped into four phases.
4. Video-gen prompt/generate-video-promptAuthors the image-to-video animation prompt and writes it to manifest["video-prompt"]. |
5. Narration script/write-script15–20s podcast-tone voiceover into script-raw-text."Listen, your cleanser matters way more than people give it credit for…" |
6. Narration audio/generate-narrationElevenLabs TTS with the channel voice pinned per character. |
Supporting skill: /import-music — ingest local mp4 recordings into the music/ library that stage 11 picks from.
Every CTA across every platform funnels through theluxedrawer.com — our Next.js site (website/) owns the redirect to Amazon, so we control routing, analytics, and link rot.
One product, four platforms — picked from products/amika-aura-hair-and-body-mist.../manifest.json:
| Platform | URL |
|---|---|
| YouTube | https://youtu.be/8ukBc7rg9KE |
| https://www.instagram.com/reels/DYSevZwAoJL/ | |
| https://www.facebook.com/reel/2731583150551450 | |
| X | https://x.com/theluxedrawer/status/2054224433208840328 |
What the same product looks like once it lands on each social platform:
![]() |
![]() |
![]() X |
| Path | Purpose |
|---|---|
characters/ |
Per-channel character refs + pinned voice (the host identity) |
extensions/amazon-product-page-scraper/ |
Chrome extension — scrapes Amazon product pages into a Downloads dump |
extensions/youtube-paid-promo-flagger/ |
Chrome extension — flips the YouTube "paid promotion" toggle automatically |
products/ |
Per-product folders — manifest + all generated media (gitignored) |
hedra/ |
Hedra API client — starting-image + Avatar video generation |
narration/ |
ElevenLabs TTS generation |
captioning/ |
WhisperX transcription + word-level caption renderer + style presets |
music/ |
Background music library — <adjective>-<animal>.mp3 (gitignored) |
scripts/ |
Per-stage CLIs: import_music, stitch_narration, overlay_music, upload_ad, status, credits, script_lint, sanitize_slugs, apply_scripts |
uploader/ |
Per-platform upload CLIs — youtube/, meta/ (Instagram + Facebook), pinterest/, x/ |
website/ |
Public Next.js site — theluxedrawer.com. Hosts the /p/<slug> product pages that every video CTA funnels through |
dashboard/ |
Private Next.js dashboard — Supabase-backed pipeline analytics + per-product status |
assets/ |
Branding + character assets (gitignored) |
.claude/skills/ |
Slash-command wrappers for every pipeline stage |
docs/ |
Channel strategy, niche, compliance rules, per-platform upload playbooks |
- Starting frame + talking head: Hedra (image-gen + Character-3 avatar)
- TTS: ElevenLabs Turbo v2.5 (channel voice pinned per character)
- Audio restitch: ffmpeg (swap Hedra's baked audio for the clean ElevenLabs mp3)
- Captions: WhisperX word-level transcription + local caption renderer with auto-picked style presets
- Background music: local
music/library, ducked under narration - Upload:
- YouTube — Data API v3 via
uploader/youtube/upload.py - X — v2 API via
uploader/x/upload.py - Instagram + Facebook — Graph API via
uploader/meta/(in progress) - Pinterest — Pinterest API via
uploader/pinterest/(in progress)
- YouTube — Data API v3 via
- Funnel:
theluxedrawer.com/p/<slug>(Next.js) → Amazon affiliate link. Every platform CTA points at our site so we control the redirect.
- Every description: "As an Amazon Associate I earn from qualifying purchases."
- YouTube "paid promotion" toggle ON for every Short (automated by
extensions/youtube-paid-promo-flagger/) - Affiliate funnel in the first line of the description on every platform (Shorts can't link in-video)
- All distribution channels stay public
- Per-platform upload playbooks live in
docs/upload-meta.md,docs/upload-pinterest.md,docs/upload-x.md













