reddit-video-bot/PLAN.md
sylyx 98e829c995 Initial implementation of reddit-video-bot
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>
2026-05-16 10:29:32 +02:00

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

  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

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 €