Vault of Frights
Fully automated YouTube Shorts pipeline that writes, narrates, and uploads daily horror videos with zero manual work. Script generation via Groq LLM, TTS via edge-tts, video assembly via moviepy, auto-upload via YouTube Data API.
ault of Frights uploads a new horror short to YouTube every day. I do not write scripts, record narration, or edit video. The pipeline does all of it.
Nine modules, each independent. Topic seeds feed into Groq (Llama 3) for script generation, then edge-tts for narration, then audio processing, then background video selection, subtitle generation, video assembly via moviepy, thumbnail generation, and finally auto-upload via the YouTube Data API. If any module fails, the rest pause. The video stays in queue. Nothing silently disappears.
The prompt for script generation is tuned for horror shorts: tight structure, punchy ending, under 60 seconds of narration. The model generates five variations and picks the best one scored on tension and pacing.
Later i added a series engine. Instead of standalone videos, some are multi-part. The engine tracks story state across episodes (character names, established lore, open threads) and feeds it into the script generator. Retention on series videos is measurably better.
highlights
- +9-module pipeline from topic seed to YouTube upload, all automated via Windows Task Scheduler
- +Script generation with Groq/Llama 3, tuned prompt generates 5 variations and picks the best
- +Series engine tracks story state across episodes for multi-part horror arcs
- +Each module is independently restartable. Failures do not cascade
- +6+ videos live at launch, targeting YouTube Partner Program by month 4-6
what was hard
Getting the horror tone right consistently was harder than the engineering. LLMs default to predictable structures. Prompt engineering for genuine dread (not jump scares, not cliches) took a lot of iteration. Also: moviepy is slow. Video assembly is the bottleneck and i have not solved that yet.