Skip to content

KevRojo/v-content-creator

Repository files navigation

🎬 V-Content Creator

AI-powered viral video content factory β€” Generate narrated story videos with AI text, AI voice, AI images, and automatic editing. One command, full video.

Python Cost: Free License

πŸ’Έ The "Zero-Cost" Philosophy

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.

✨ What it does

Idea β†’ AI Story β†’ AI Voice β†’ AI Images β†’ Subtitles β†’ Final Video

V-Content Creator automates the entire video production pipeline:

  1. πŸ“ Story Generation β€” AI writes viral stories with hooks, escalation, and twists (100+ Models via LiteLLM: Gemini, OpenAI, DeepSeek, Claude, etc.)
  2. πŸŽ™οΈ Voice Narration β€” Natural TTS voice (Gemini TTS or ElevenLabs). Includes a free 100% fallback to Edge TTS (no API key needed!)
  3. πŸ–ΌοΈ Scene Images β€” AI-generated images synced to the narration (SDXL local GPU or Gemini Web)
  4. πŸ“ Subtitles β€” Automatic transcription with faster-whisper
  5. 🎬 Video Assembly β€” FFmpeg with zoompan effects, per-image timing from AI timestamps
  6. πŸ“Š YouTube Metadata β€” Auto-generated title, description, tags, and SEO

🎯 Content Niches

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

Dulus Integration (Highly Recommended)

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.

Installing the Plugin

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."

πŸš€ Quick Start (Standalone CLI)

1. Clone & Install

git clone https://github.com/YOUR_USERNAME/v-content-creator.git
cd v-content-creator
pip install -r requirements.txt

2. Configure API Keys

cp .env.example .env
# Edit .env with your API keys

Required: At least one of:

Optional:

  • ELEVENLABS_API_KEY β€” For premium voice quality
  • CHANNEL_NAME β€” Your channel name for metadata

3. Install FFmpeg

FFmpeg is required for video assembly:

  • Windows: winget install ffmpeg or download from ffmpeg.org
  • Linux: sudo apt install ffmpeg
  • Mac: brew install ffmpeg

4. Generate a Video

# 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 high

5. GUI Mode (optional)

V-Content Creator GUI

pip install PyQt5
python gui.py

πŸ–ΌοΈ Image Generation Options

Option A: SDXL Local (GPU required)

Requires an NVIDIA GPU with ~8GB VRAM.

pip install torch diffusers transformers accelerate

Download 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

Option B: Gemini Web (No GPU needed, 100% Free!)

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-images

πŸ“€ Auto-Uploader & Metadata

Every 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.

Uploader CLI

# Launch the interactive uploader menu
python uploader.py

βš™οΈ CLI Reference

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

πŸ“ Project Structure

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)

πŸ”§ How It Works

  1. 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.

  2. Audio β€” The story text is split into chunks, synthesized with TTS, and crossfaded into a seamless narration.

  3. 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.

  4. 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.

πŸ“„ License

MIT License β€” use it, modify it, share it.

🀝 Contributing

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

About

AI-powered viral video content factory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages