Skip to content

j8ckfi/sloppenhimer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Sloppenhimer

Automated content pipeline for creating short-form vertical videos from Reddit stories with Minecraft gameplay backgrounds and TTS narration.

No Reddit API key required - uses YARS for API-free scraping.

What it does

  1. Scrapes Reddit - Fetches top stories from r/AITA, r/tifu, r/relationships, etc. (no API key needed)
  2. Downloads gameplay - Grabs royalty-free Minecraft videos from YouTube
  3. Simplifies stories - Uses local LLM (Ollama) to make text TTS-friendly
  4. Generates voiceover - Creates natural speech with edge-tts
  5. Adds captions - Word-level timestamps via Whisper for karaoke-style text
  6. Assembles video - Combines everything into vertical 9:16 format (TikTok/Reels/Shorts)

Installation

Prerequisites

# macOS
brew install ffmpeg

# Install Ollama (local LLM)
brew install ollama
ollama serve  # Start in background
ollama pull llama3.2:3b  # Download model

Install Sloppenhimer

git clone https://github.com/j8ckfi/sloppenhimer.git
cd sloppenhimer

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -e .

# Optional: copy and customize config
cp .env.example .env

Configuration

Edit .env (optional - defaults work out of the box):

# Ollama
OLLAMA_MODEL=llama3.2:3b

# TTS Voice
EDGE_TTS_VOICE=en-US-ChristopherNeural

# Video output
OUTPUT_RESOLUTION_WIDTH=1080
OUTPUT_RESOLUTION_HEIGHT=1920

Usage

Quick Start

# 1. Scrape some stories (no API key needed!)
sloppenhimer scrape

# 2. Download background videos
sloppenhimer fetch-videos

# 3. Process a story into a video
sloppenhimer list-stories  # Find a story ID
sloppenhimer process <story_id>

CLI Commands

Command Description
sloppenhimer scrape Scrape stories from configured subreddits
sloppenhimer fetch-videos Download Minecraft gameplay from YouTube
sloppenhimer list-stories List all scraped stories
sloppenhimer list-videos List downloaded background videos
sloppenhimer process <id> Run full pipeline on a story
sloppenhimer process <id> --quick Fast render (simpler captions)
sloppenhimer check Verify system dependencies
sloppenhimer voices List available TTS voices

Scrape Options

# Specific subreddits
sloppenhimer scrape -s AITA -s tifu -s confession

# More posts
sloppenhimer scrape --limit 50

# Different time range
sloppenhimer scrape --time month  # hour/day/week/month/year/all

Video Options

# Download more videos
sloppenhimer fetch-videos --count 10

# Custom search
sloppenhimer fetch-videos --query "minecraft speedrun gameplay"

Output

Videos are saved to data/output/ as MP4 files:

  • Format: 1080x1920 (9:16 vertical)
  • Codec: H.264 video, AAC audio
  • Captions: Burned-in, karaoke-style word highlighting

Project Structure

sloppenhimer/
├── config/
│   ├── settings.py              # Pydantic configuration
│   └── prompts/
│       └── simplify_story.txt   # LLM prompt template
├── src/
│   ├── cli/main.py              # Typer CLI
│   ├── scrapers/
│   │   ├── reddit.py            # YARS Reddit scraper (no API)
│   │   └── youtube.py           # yt-dlp downloader
│   ├── processors/
│   │   ├── llm.py               # Ollama integration
│   │   ├── tts.py               # edge-tts engine
│   │   └── transcription.py     # Whisper timestamps
│   ├── video/
│   │   ├── editor.py            # MoviePy editing
│   │   ├── captions.py          # Karaoke captions
│   │   └── assembler.py         # Final assembly
│   └── models/                  # Pydantic data models
├── data/
│   ├── stories/                 # Scraped Reddit stories (JSON)
│   ├── videos/                  # Downloaded gameplay
│   ├── audio/                   # Generated TTS audio
│   └── output/                  # Final videos
└── assets/
    ├── fonts/                   # Custom fonts
    └── voices/                  # Piper voice models

Tech Stack

TTS Voices

List available voices:

sloppenhimer voices

Popular options:

  • en-US-ChristopherNeural - Male US (default)
  • en-US-JennyNeural - Female US
  • en-GB-RyanNeural - Male UK
  • en-GB-SoniaNeural - Female UK
  • en-AU-WilliamNeural - Male Australian

Change in .env:

EDGE_TTS_VOICE=en-US-JennyNeural

Troubleshooting

"Ollama not available"

# Start Ollama service
ollama serve

# In another terminal, pull a model
ollama pull llama3.2:3b

"No background videos available"

sloppenhimer fetch-videos --count 5

Slow video rendering

Use quick mode for faster (but simpler) captions:

sloppenhimer process <id> --quick

License

MIT

About

Automated Reddit story video generator with Minecraft gameplay backgrounds and TTS narration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages