Full pipeline: Reddit sourcing → Groq text optimization → Edge-TTS voice generation → Whisper transcription → FFmpeg video rendering with word-level subtitles. Includes SQLite deduplication and .env-based config. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
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
- Sourcing: Ein Skript sucht über die Reddit API (
praw) nach viralen Posts in Subreddits wier/AITAH,r/relationship_adviceoderr/confessions. Bereits verarbeitete Posts werden über eine lokale SQLite-Datenbank übersprungen. - 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.
- Voice (Edge-TTS): Der optimierte Text wird mit der Microsoft Edge TTS Engine in eine hochwertige, menschlich klingende MP3-Datei umgewandelt (kostenlos).
- 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 aufmediumwechseln. - 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).
- Export: Das fertige Video wird als
.mp4im 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:baseodermedium) - Video-Editing:
ffmpeg(direkt viasubprocess),moviepynur für einfache Clips - Reddit API:
praw - Secrets:
python-dotenv+.envDatei - Deduplication:
sqlite3(Standardbibliothek, kein Extra-Install)
3. Verzeichnisstruktur
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.txtund.env.exampleerstellen, Bibliotheken installieren.reddit_client.pyimplementieren: Authentifizierung, Abruf der Top-Posts der letzten 24h, SQLite-Check auf Duplikate.
Phase 2: Logik & Stimme
processor.pyerstellen: Groq API einbinden und Prompt-Engineering für virale Storys.voice_gen.pyerstellen: Funktion zum Speichern von Text als MP3 viaedge-tts.
Phase 3: Transkription & Untertitel
subtitler.pyerstellen: Whisper Modell laden (baseals 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.pyerstellen:- 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.
- Zufälligen Clip aus
- Ziel-Format: 9:16, 1080x1920.
Phase 5: Automatisierung
main.pyschreiben: 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 €