AI-powered viral video content factory β Generate narrated story videos with AI text, AI voice, AI images, and automatic editing. One command, full video.
This tool was built to battle the paywalls of modern AI content creation. While it supports premium APIs, the recommended workflow is 100% free and doesn't even require an expensive GPU!
By using the Gemini Web capabilities, the script uses Playwright to open a headless browser, log into your Google account (only needed once), and generate both the Stories and Images directly through the Gemini web chat.
No API tokens, no per-generation costs, no RTX 4090 needed. You can run this on a Raspberry Pi if you want. We will keep improving this to democratize content creation.
Idea β AI Story β AI Voice β AI Images β Subtitles β Final Video
V-Content Creator automates the entire video production pipeline:
- π Story Generation β AI writes viral stories with hooks, escalation, and twists (100+ Models via LiteLLM: Gemini, OpenAI, DeepSeek, Claude, etc.)
- ποΈ Voice Narration β Natural TTS voice (Gemini TTS or ElevenLabs). Includes a free 100% fallback to Edge TTS (no API key needed!)
- πΌοΈ Scene Images β AI-generated images synced to the narration (SDXL local GPU or Gemini Web)
- π Subtitles β Automatic transcription with faster-whisper
- π¬ Video Assembly β FFmpeg with zoompan effects, per-image timing from AI timestamps
- π YouTube Metadata β Auto-generated title, description, tags, and SEO
Built-in viral content templates:
| Niche | Style |
|---|---|
| π Misterio Real | True Crime, investigative |
| π€« Confesiones | Intimate, confessional |
| π± Suspenso Cotidiano | Everyday situations gone wrong |
| π€ Ciencia FicciΓ³n | Black Mirror-style sci-fi |
| π Drama Humano | Emotional storytelling |
| π§ Terror PsicolΓ³gico | Psychological horror |
| πΏ Folklore Latam | Latin American legends |
| βοΈ Venganza | Revenge / poetic justice |
| ποΈ Supervivencia | Survival stories |
| π» Misterio Digital | Internet creepy |
V-Content Creator is fully compatible as a first-class plugin for Dulus. By running it as a plugin, your AI coding assistant gains full autonomous capabilities to brainstorm ideas, prompt you for formatting constraints (Topic, Format, Duration), and execute the video factory seamlessly.
Open your Dulus REPL and run:
/plugin install video_factory@https://github.com/KevRojo/v-content-creator
Once installed, simply ask your assistant:
"Use the video factory to help me create a short horror story for TikTok."
git clone https://github.com/YOUR_USERNAME/v-content-creator.git
cd v-content-creator
pip install -r requirements.txtcp .env.example .env
# Edit .env with your API keysRequired: At least one of:
GEMINI_API_KEYβ Get it here (free tier available)MOONSHOT_API_KEYβ Get it here
Optional:
ELEVENLABS_API_KEYβ For premium voice qualityCHANNEL_NAMEβ Your channel name for metadata
FFmpeg is required for video assembly:
- Windows:
winget install ffmpegor download from ffmpeg.org - Linux:
sudo apt install ffmpeg - Mac:
brew install ffmpeg
# Basic β auto niche, auto duration
python vcontent_creator.py
# Specify a niche and duration
python vcontent_creator.py --niche terror_psicologico --duration 3
# Short format (9:16 vertical, 60s)
python vcontent_creator.py --short
# Use ElevenLabs voice
python vcontent_creator.py --eleven
# Full control
python vcontent_creator.py --count 3 --niche venganza --duration 5 --voice Fenrir --quality highpip install PyQt5
python gui.pyRequires an NVIDIA GPU with ~8GB VRAM.
pip install torch diffusers transformers accelerateDownload an SDXL model and place it in:
stable-diffusion-webui-master/models/Stable-diffusion/
Recommended models (download one):
| Model | Type | Link |
|---|---|---|
| RealVisXL V5.0 Baked VAE | Photorealistic (best) | CivitAI |
| RealVisXL V5.0 Lightning | Fast photorealistic | CivitAI |
| Juggernaut XL v11 | Multi-purpose premium | CivitAI |
| SDXL Base 1.0 | Official base | HuggingFace |
This is the recommended, zero-cost method. It uses browser automation via Playwright to generate images directly in the Gemini Web interface (using Imagen 3 under the hood).
- You only need to log in to your Google Account the first time. The script saves your session state.
- Generates high-quality images without needing any local GPU horsepower.
pip install playwright
playwright install chromium
python vcontent_creator.py --gemini-imagesEvery time a video is generated, V-Content Creator builds a comprehensive Metadata JSON file alongside the video (e.g. video_info.json). This file contains the title, optimized description, SEO tags, privacy settings, and even tracking of which platforms it has been uploaded to.
{
"youtube_title": "Lavanda #Shorts",
"description": "π§ \"No abro la puerta de la calle desde el lunes pasado...\"",
"tags": ["narraciΓ³n", "terror psicolΓ³gico", "youtube shorts"]
}Included in the repo is uploader.py, an interactive CLI tool that reads these metadata files and uses Playwright to automatically upload your videos to YouTube Studio and TikTok.
# Launch the interactive uploader menu
python uploader.py| Flag | Description |
|---|---|
--count N |
Number of stories to generate (default: 1) |
--niche NAME |
Content niche (use --list-niches to see all) |
--duration N |
Target duration in minutes |
--voice NAME |
TTS voice: Charon, Fenrir, Kore, Orus, etc. |
--quality LEVEL |
Video quality: high, medium, low, minimal |
--short |
Short format (9:16 vertical, β€60s) |
--model ENGINE |
Text model via LiteLLM (e.g. gemini/gemini-2.5-flash, openai/gpt-4o, deepseek/deepseek-chat) |
--eleven |
Use ElevenLabs TTS instead of Gemini |
--gemini-images |
Use Gemini Web for image generation |
--gemini-web-story |
Use Gemini Web for story generation |
--list-niches |
Show all available niches |
--context TEXT |
Creative direction for the story |
v-content-creator/
βββ vcontent_creator.py # Main engine (text β audio β images β video)
βββ uploader.py # Auto-uploader for YouTube & TikTok (Playwright)
βββ gui.py # PyQt5 GUI (optional)
βββ .env # Your API keys (not tracked by git)
βββ .env.example # Template for API keys
βββ requirements.txt # Python dependencies
βββ sounds/ # SFX audio files (rain, steps, door)
βββ stable-diffusion-webui-master/
β βββ models/
β βββ Stable-diffusion/ # Place SDXL .safetensors models here
βββ output/ # Generated videos (auto-created)
βββ temp/ # Working files (auto-created)
-
Story Generation β The AI receives a detailed prompt with the selected niche's tone, hooks, clichΓ©s to avoid, and format rules. It generates the story AND image prompts with timestamps.
-
Audio β The story text is split into chunks, synthesized with TTS, and crossfaded into a seamless narration.
-
Images β Each image prompt is generated with a specific timestamp (e.g.,
IMG1 0:00,IMG2 0:12). Images are resized to match the video format. -
Video Assembly β Each image becomes a clip with its own zoompan animation matching its specific duration from the AI timestamps. Clips are concatenated with the audio and burned-in subtitles.
MIT License β use it, modify it, share it.
Pull requests welcome! Areas that could use help:
- More content niches
- Support for more TTS engines
- Multi-language support
- Thumbnail generation
- Auto-upload to YouTube/TikTok
Donations:
Bitcoin: 1JzatQDn9fMLnKTd3KYgztsLHC95bJEzSN

