diff --git a/Architecture-Overview.md b/Architecture-Overview.md new file mode 100644 index 0000000..821c644 --- /dev/null +++ b/Architecture-Overview.md @@ -0,0 +1,138 @@ + + +\# 🧱 Architecture Overview + + + +This page explains the modular architecture of the \*\*LCS Video Pipeline\*\*, covering key components, data flow, and extensibility. + + + +--- + + + +\## 🧩 Core Modules + + + +Each component is designed to be loosely coupled and highly testable: + + + +\### 1. `main.py` + + + +\* Entry point + +\* Discovers session folders and orchestrates processing + + + +\### 2. `modules/` + + + +Contains reusable components: + + + +\* `render\_engine.py`: Applies intros/outros and overlays + +\* `title\_utils.py`: Generates dynamic title cards + +\* `thumbnail\_utils.py`: Creates brand-compliant thumbnails + +\* `yt\_poster.py`: Uploads to YouTube + +\* `pt\_poster.py`: Uploads to PeerTube (WIP) + +\* `description\_gen.py`: Creates OpenAI-based video descriptions + +\* `date\_utils.py`, `config.py`: Environment and date helpers + + + +--- + + + +\## 🔄 Data Flow + + + +```plaintext + +\[raw clips] → \[montages/, hits/, etc.] → main.py → render\_engine → final.mp4 → yt\_poster + +``` + + + +All clip metadata (e.g., `notes.json`) is parsed and tracked alongside rendered files. + + + +--- + + + +\## 🧰 Tooling \& Configuration + + + +\* \*\*`.env`\*\*: Stores API keys and client secrets (excluded from Git) + +\* \*\*`config.py`\*\*: Centralized paths, flags, and constants + +\* \*\*`logs/`\*\*: Execution logs, status, and failures + +\* \*\*`tests/`\*\*: Pytest-based functional coverage + +\* \*\*`video-pipeline.wiki/`\*\*: Markdown wiki repo (submodule) + + + +--- + + + +\## 🚧 Extensibility + + + +\* Add new platforms (e.g., TikTok) via new `poster\_\*.py` + +\* Add formats (e.g., square, cinematic) by enhancing `render\_engine.py` + +\* Add more metadata (e.g., voice notes) by expanding `notes.json` parser + + + +--- + + + +\## 🧠 Design Philosophy + + + +\* \*\*Single responsibility per module\*\* + +\* \*\*Declarative configuration\*\* + +\* \*\*E2E traceability via metadata\*\* + +\* \*\*Fun, brand-forward visual output\*\* + + + +--- + + + +\*Last updated: 2025-08-04\* + + +