Production-level short-form vertical reels (9:16) with Manim animations + Qwen TTS voice cloning. Optimized for Instagram, TikTok, YouTube Shorts, and LinkedIn. Takes context/topic and produces complete voiced reels.
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Created cxas_scrapi_reel_v2.py with 5 scenes timed to match
Combined audio with ffmpeg -f concat
Final deliverable: 45.9s vertical video with cloned voice
Anti-pattern: Do not block on generating "perfect" voice lines when usable audio exists. The user wants the video, not the setup.
Color Palettes for Reels
Style
BG
Primary
Secondary
Accent
Use Case
Neon Tech
#0A0A0A
#00F5FF
#FF00FF
#39FF14
Tech, AI, startups
Warm Creator
#1A1423
#FF6B6B
#FFD93D
#6BCB77
Motivational, lifestyle
Corporate Pro
#0F172A
#3B82F6
#E2E8F0
#F59E0B
B2B, SaaS, thought leadership
Dark Educational
#111827
#60A5FA
#A5B4FC
#F472B6
Explainers, tutorials
High Contrast
#000000
#FFFFFF
#FF0050
#00FF85
Viral hooks, bold claims
NVIDIA Exam
#050805
#76B900
#F5F7F5
#101510
NVIDIA cert/practice MCQ reels
Databricks Exam
#0A1216
#FF3621
#F9F7F4
#1B3139
Databricks cert/practice MCQ reels
Example Workflow (User Provides Context)
User input:
"Create a 30-second reel about why most AI agents fail in production. Target audience: indie hackers. Tone: direct, slightly contrarian, helpful."
Skill output:
Script with 5 beats + hook + CTA
Voice persona: "30-year-old male founder, calm but direct, slight tech accent"
7 Manim scenes
Qwen TTS calls for each line
Final final_reel.mp4 (1080x1920, 30s, voiced, subtitled)
Production Checklist
Before delivering any reel, verify:
Hook lands in first 1.5 seconds (watch without sound)
No text overflow or cut-off at edges
Voice is consistent across all lines (same persona)
Subtitles are readable on mobile (minimum 48px)
Audio peaks at -6dB, no clipping
Total duration under 60 seconds
File size optimized (< 50MB for most platforms)
Vertical framing correct (no letterboxing)
For MCQ/exam reels: circular A/B/C/D badges are visually centered and option text blocks are vertically centered inside cards
For bulk CSV jobs: final MP4 count, manifest rows, and expected CSV question count all match exactly; retry transient TTS failures until errors are zero
Bulk CSV / Exam Question Reels
When a user asks for one reel per CSV question, follow references/bulk_csv_exam_reels.md.
Key rules:
Count CSV rows first; do not rely on estimated totals like “360*3” if the files contain a different number of questions.
Generate and verify a small sample before full-batch rendering.
Use a resumable generator with stable paths, manifest.csv, and SUMMARY.json.
Arrange output by certification family and practice test.
After completion, verify manifest rows, successful rows, actual MP4 count, and per-folder counts.
If TTS has temporary network/DNS failures, rerun the resumable job rather than accepting missing videos.
Multiple-choice option cards have vertically centered answer text and perfectly centered A/B/C/D badges; avoid cramped labels or large dead space inside cards
For CSV/bulk reel jobs, count rows in every source CSV and make the expected video count match the data exactly; do not assume a requested shorthand like “360×3” is correct when files contain different row counts
Bulk outputs are organized by source/category/test with a manifest CSV and summary JSON, and generation is resumable by skipping already-complete MP4s
For CSV/question-bank batches, render exactly one sample first, verify it with ffprobe + extracted preview frames, and wait for user approval before bulk-generating hundreds of reels.
CSV / Practice-Question Reel Batches
When the input is a CSV of exam questions or practice-test items:
Inspect headers and a few rows; count rows exactly (expected video total = row count).
Build one reusable generator; render a single sample reel first (usually Q001).
Use the brand palette the user requested (NVIDIA green, Databricks lava/navy, etc.) — see references/brand_themes_csv_reels.md.
Prefer fast PIL two-frame + TTS + ffmpeg for bulk (50–1000+); use Manim only when motion graphics are required.
Prioritize legibility: auto-sized question card (height from wrapped text), centered option badges/text, concise answer reveal (Correct: B + short explanation).
After sample approval, smoke-test ~5 videos, then full resumable batch with manifest.csv + SUMMARY.json.
Check late answer-reveal frames for long-option collisions and bottom-panel overlap before reporting success.
Final verify: MP4 count by _Q(\d+)_ excluding only *_silent.mp4 suffix (never filter on the word "silent" in slugs).
references/github_skill_package.md — package/push these skills to a public GitHub skill repo (Yash-Kavaiya pattern)
File Structure (Per Project)
reel-project-name/
context.md # Original user request
script.md # Full script + timing
voice_persona.txt # Qwen TTS persona description
scenes/
01_hook.py
02_value_1.py
...
audio/
01_hook.wav
02_value_1.wav
...
renders/
1080x1920/
Scene1.mp4
...
final_reel.mp4
subtitles.srt
changelog.md # What changed between iterations
Bulk CSV/Q&A Reel Batches
When the user provides CSV practice-test questions and asks for hundreds of reels:
Count before rendering — inspect every CSV, count rows, and tell the user the exact expected video total. Do not assume a nominal count like 360*3; match the actual CSV row count.
Make one sample first — render Q001, extract preview frames, run ffprobe, and visually check: 1080x1920, audio present, readable text, no badge/text misalignment, no answer-panel overlap. Apply user feedback to the generator before batch mode.
Use a resumable generator — skip existing valid MP4s, write manifest.csv + SUMMARY.json, and keep per-question audio/frames so failed TTS calls can be retried without regenerating everything.
Filename rule — after batch render, rename from plain Q001.mp4 to descriptive names such as {CERT}_PT##_Q###_{question_slug}.mp4, then update the manifest and metadata paths. Verify mp4_count, zero missing manifest paths, and no old plain Q###.mp4 names remain.
Metadata deliverables — append platforms into one master CSV (YouTube → Instagram → LinkedIn). YouTube descriptions must be full detailed sections (~3.5–4.5k chars: options + per-option why + wrong-option analysis + study steps + SEO), not short stubs — see references/multi_platform_social_metadata.md. Also emit lean platform CSVs and per-video Q###_youtube.txt / _instagram.txt / _linkedin.txt packs.
Retry transient TTS errors — Edge/Qwen/network TTS may fail mid-batch. Treat connection/DNS/timeout failures as retryable; rerun the resumable generator after the main pass and verify final errors=0 and video count equals source row count.
Plan for disk pressure — large batches can fill a drive with Manim media, render logs, WAV lines, and voice_full.wav. After each verified final MP4, clean reproducible intermediates; force combined WAVs to 24 kHz/48 kHz instead of accidental 192 kHz PCM; add a disk-space preflight that stops cleanly before manifest writes fail.
Verify final count by group — report counts per certificate and per practice test, not just the grand total.
Brand / theme selection (MANDATORY)
Always ask the user which theme to follow before generating reels or bulk batches.
Do not hardcode Databricks, NVIDIA, or any other brand unless the user chose it for this run.
Example:
Which brand theme?
1) NVIDIA green
2) Databricks lava/navy
3) Custom (paste hex colors)
For branded exam reels, match the user-selected theme:
NVIDIA: dark #050805 + green #76B900
Databricks: dark navy #0A1216 + Lava #FF3621 + Navy #1B3139 + Oat text #F9F7F4
Always use high-contrast text, centered option-letter badges, vertically centered option text, auto-sized question cards, and an answer reveal panel that never overlaps option cards. Full palettes: references/brand_themes_csv_reels.md.
Anti-Patterns (Never Do These)
Long static text (more than 3 lines at once)
Voice speaking while nothing is happening visually
Using horizontal 16:9 scenes in vertical reel
Inconsistent voice persona across lines
Subtitles that require reading faster than voice speaks
Bright white backgrounds (kills mobile viewing experience)
More than 8 scenes in a 30-second reel
Integration with Existing Skills
Use qwen-tts-voice-clone for all voice generation
Reference manim-video for advanced Manim patterns (but adapt to vertical 9:16)
Use humanizer skill on script before voice generation
For bulk question-bank reels from CSV folders, follow references/csv_bulk_reels.md: count actual CSV rows first, generate resumably with a manifest, verify final MP4 counts, center option badges/text, rename files with Q number + question slug, and create platform metadata CSVs.
When the user asks for an end-to-end AI agent around reel generation, combine this skill with dspy and use the package/CLI pattern in references/dspy_reelsgen_agent.md: DSPy plan signature, deterministic fallback, artifact directory, Manim render smoke test, ffprobe verification, and generated qwen_tts_commands.sh rather than automatically blocking on slow CPU voice cloning.
When the user asks for an end-to-end AI agent around reel generation, combine this skill with dspy and use the package/CLI pattern in references/dspy_reelsgen_agent.md: DSPy plan signature, deterministic fallback, artifact directory, Manim render smoke test, ffprobe verification, and generated qwen_tts_commands.sh rather than automatically blocking on slow CPU voice cloning.
This skill is designed for rapid iteration. A skilled operator can go from context to final voiced reel in under 45 minutes for a 30-second video. The first 3 iterations should focus on hook strength and pacing. Polish comes last.