# Projekt-Plan: Automatisierter Reddit-Story Video Creator Dieses Projekt automatisiert die Erstellung von Social-Media-Videos (TikTok, YouTube Shorts, Reels) basierend auf populären Reddit-Beiträgen. Das Ziel ist ein "Low-Cost, High-Efficiency" Workflow. ## 1. Architektur & Workflow 1. **Sourcing**: Ein Skript sucht über die Reddit API (`praw`) nach viralen Posts in Subreddits wie `r/AITAH`, `r/relationship_advice` oder `r/confessions`. Bereits verarbeitete Posts werden über eine lokale SQLite-Datenbank übersprungen. 2. **Processing (Groq)**: Der Text wird an Groq (Llama 3) gesendet. Die KI bereinigt den Text, entfernt unnötige Kürzel, verbessert den Spannungsbogen und sorgt für einen starken "Hook" in den ersten 3 Sekunden. 3. **Voice (Edge-TTS)**: Der optimierte Text wird mit der Microsoft Edge TTS Engine in eine hochwertige, menschlich klingende MP3-Datei umgewandelt (kostenlos). 4. **Transkription (Whisper)**: Das Audio wird mit OpenAI Whisper lokal transkribiert, um wortgenaue Zeitstempel für die Untertitel zu erhalten. Standard-Modell: `base` (schnell) — für höhere Qualität auf `medium` wechseln. 5. **Visuals & Montage (FFmpeg)**: * Hintergrundvideo (z.B. Minecraft Parkour) wird geladen und bei Bedarf geloopt, sodass es die volle Audio-Länge abdeckt. * Audio wird darübergelegt. * Untertitel werden per `ffmpeg drawtext`-Filter wort-genau und animiert eingeblendet (schneller und stabiler als MoviePy TextClip). 6. **Export**: Das fertige Video wird als `.mp4` im Hochformat (9:16) exportiert. ## 2. Tech-Stack - **Sprache**: Python 3.10+ - **LLM**: Groq API (Llama 3 70B) - **Voice**: `edge-tts` (Python Bibliothek) - **Transkription**: `openai-whisper` (lokal, Modell: `base` oder `medium`) - **Video-Editing**: `ffmpeg` (direkt via `subprocess`), `moviepy` nur für einfache Clips - **Reddit API**: `praw` - **Secrets**: `python-dotenv` + `.env` Datei - **Deduplication**: `sqlite3` (Standardbibliothek, kein Extra-Install) ## 3. Verzeichnisstruktur ```text reddit-video-bot/ ├── main.py # Hauptsteuerung des Bots ├── .env # API-Keys (wird nicht committed) ├── .env.example # Vorlage mit Platzhaltern ├── src/ │ ├── reddit_client.py # Holt Posts von Reddit, prüft Duplikate per SQLite │ ├── processor.py # Groq-Integration & Text-Optimierung │ ├── voice_gen.py # Edge-TTS Integration │ ├── subtitler.py # Whisper-Transkription & Wort-Zeitstempel │ └── video_engine.py # Montage mit FFmpeg (loop, audio, drawtext) ├── assets/ │ ├── background_videos/ # Speicherort für Hintergrund-Loops │ └── fonts/ # Schriftarten für Untertitel ├── output/ # Hier landen die fertigen Videos ├── processed.db # SQLite: bereits verarbeitete Post-IDs └── requirements.txt # Abhängigkeiten ``` ## 4. Implementierungsschritte ### Phase 1: Setup & Sourcing - `requirements.txt` und `.env.example` erstellen, Bibliotheken installieren. - `reddit_client.py` implementieren: Authentifizierung, Abruf der Top-Posts der letzten 24h, SQLite-Check auf Duplikate. ### Phase 2: Logik & Stimme - `processor.py` erstellen: Groq API einbinden und Prompt-Engineering für virale Storys. - `voice_gen.py` erstellen: Funktion zum Speichern von Text als MP3 via `edge-tts`. ### Phase 3: Transkription & Untertitel - `subtitler.py` erstellen: Whisper Modell laden (`base` als Default), Audio zu Wort-Zeitstempeln konvertieren. - Zeitstempel als strukturierte Liste ausgeben (für FFmpeg `drawtext`). ### Phase 4: Video-Engine *(höchstes Risiko — früh prototypen)* - `video_engine.py` erstellen: - Zufälligen Clip aus `assets/background_videos/` wählen. - Hintergrundvideo per FFmpeg loopen bis Audio-Länge erreicht ist. - Audio einbetten. - Untertitel wort-genau per `drawtext`-Filter rendern. - Ziel-Format: 9:16, 1080x1920. ### Phase 5: Automatisierung - `main.py` schreiben: Alle Module verknüpfen, Post-ID nach erfolgreichem Export in SQLite speichern. ## 5. Kosten-Optimierung - **Groq**: Kostenlos (Free Tier). - **Edge-TTS**: Kostenlos. - **Whisper**: Kostenlos (läuft lokal). - **Reddit API**: Kostenlos (für persönliche Nutzung). - **Visuals**: Einmalig kostenlose Gameplay-Videos von YouTube/Pexels laden. **Gesamtkosten pro Video: ~0,00 €**