🧱 Wiki: Add Architecture Overview page with pipeline module breakdown
138
Architecture-Overview.md
Normal file
138
Architecture-Overview.md
Normal file
@ -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\*
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user