diff --git a/README.md b/README.md index 1c15185..f2403a0 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,97 @@ -# 🎬 LCS Pipeline +# LCS Video Pipeline Wiki -**Automated livestream highlight rendering and publishing for Fortnite content featuring Gramps.** - -This project powers the backend of [Llama Chile Shop](https://www.youtube.com/@llamachileshop), transforming raw livestream clips into polished, uploaded videos β€” complete with titles, thumbnails, intros/outros, and social metadata. +Welcome to the **LCS Video Pipeline** documentation! +This wiki is the living source of truth for the project β€” workflows, automation scripts, branding guidelines, and everything else that keeps the pipeline running smoothly. --- -## βš™οΈ Features - -* βœ… Daily folder scan for new stream sessions -* 🎬 Clip classification (`hits/`, `misses/`, `montages/`, etc.) -* 🧠 AI-generated titles and descriptions via OpenAI -* πŸͺ„ Auto-stitched intro + title card + outro -* πŸ–ΌοΈ Dynamic thumbnail creation with Fortnite styling -* ⬆️ Uploads to YouTube (and PeerTube if enabled) -* 🧾 Metadata archive and session history -* 🐘 (Planned) Social posts to Mastodon and Bluesky +## πŸ“‘ Table of Contents +- [Overview](#overview) +- [Project Goals](#project-goals) +- [Core Components](#core-components) +- [Workflow Summary](#workflow-summary) +- [Branding Guidelines](#branding-guidelines) +- [Automation Scripts](#automation-scripts) +- [Contributing](#contributing) +- [License](#license) +- [Site Index](#site-index) --- -## πŸš€ Quick Start - -```bash -git clone https://github.com/LCS-Gramps/video-pipeline.git -cd video-pipeline -pip install -r requirements.txt -cp .env.example .env # Fill in your API keys and config -python main.py -``` - -> Requires Python 3.13+ and access to mapped NAS directory (e.g. `Z:\2025.08.05\hits\`). +## Overview +The **LCS Video Pipeline** automates the transformation of raw livestream recordings into fully branded, published videos on YouTube and PeerTube β€” with minimal manual effort. +It’s built to be fast, flexible, and scalable. --- -## πŸ—‚οΈ Folder Structure - -``` -video-pipeline/ -β”œβ”€β”€ main.py -β”œβ”€β”€ config.py -β”œβ”€β”€ .env.example -β”œβ”€β”€ modules/ -β”‚ β”œβ”€β”€ render_engine.py -β”‚ β”œβ”€β”€ title_utils.py -β”‚ β”œβ”€β”€ thumbnail_utils.py -β”‚ β”œβ”€β”€ yt_poster.py -β”‚ └── ... -β”œβ”€β”€ assets/ # Branding assets (intros, fonts, logos) -β”œβ”€β”€ logs/ # Sync logs, wiki publish logs, etc. -└── metadata/ - └── history/ # Per-clip metadata archive -``` +## Project Goals +- **Full Automation** – Minimize manual intervention in video processing and uploads. +- **Brand Consistency** – Apply intros, outros, titles, and descriptions according to predefined rules. +- **Platform Flexibility** – Publish to multiple platforms without extra steps. +- **Metadata Tracking** – Maintain a detailed archive of uploads, formats, and performance data. --- -## πŸ“š Documentation - -Full documentation is hosted in the GitHub Wiki: -πŸ‘‰ [πŸ“– LCS Pipeline Wiki](https://github.com/LCS-Gramps/video-pipeline/wiki) - -Recommended pages: - -* [`Home`](https://github.com/LCS-Gramps/video-pipeline/wiki) -* [`Clip Handling Logic`](https://github.com/LCS-Gramps/video-pipeline/wiki/Clip-Handling-Logic) -* [`Metadata Extraction`](https://github.com/LCS-Gramps/video-pipeline/wiki/Metadata-Extraction) -* [`YouTube Upload Logic`](https://github.com/LCS-Gramps/video-pipeline/wiki/YouTube-Upload-Logic) +## Core Components +1. **Video Processing** – Handles clip trimming, intro/outro insertion, title card generation, and format adjustments. +2. **Metadata Generation** – Pulls session data and user notes into dynamic titles and descriptions. +3. **Publishing** – Uploads to YouTube, PeerTube, and optionally Mastodon/Bluesky. +4. **Branding Assets** – Logos, fonts, and color palettes for consistent look-and-feel. +5. **Automation Scripts** – Python modules that orchestrate the entire pipeline. --- -## πŸ§ͺ Development Mode - -* `DEBUG=True` in `.env` disables destructive operations -* All modules can be run/tested independently -* Wiki editing is supported via local Markdown and `wiki_publish.log` +## Workflow Summary +1. **Clip Intake** – Source files are added to the `hits/`, `misses/`, `montages/`, or `outtakes/` folders. +2. **Brand Application** – The system injects title cards, branding assets, and date stamps. +3. **Rendering** – Produces both widescreen (16:9) and vertical (9:16) versions where applicable. +4. **Upload & Publish** – Posts videos to target platforms with optimized descriptions and hashtags. +5. **Archive** – Updates the metadata repository for auditing and analytics. --- -## πŸ§™ About +## Branding Guidelines +- **Main Font**: Fortnite-style font (Burbank Big Condensed Black) +- **Main Colors**: + - Pink: `#f7338f` + - Aqua: `#10abba` + - Dark Shadow: `#1c0c38` +- **Logo**: Brand llama (`LlamaLlama.png`) used on all thumbnails. -Created by **Gramps** for Llama Chile Shop β€” a custom content pipeline for old-school gaming chaos. +--- -> Maintainer: `gramps@llamachile.shop` -> Contributions welcome in the form of bug reports, pull requests, or Fortnite gifts. 🎁 +## Automation Scripts +Key helper scripts include: +- `render_engine.py` – Builds final videos with intros, titles, and outros. +- `title_utils.py` – Generates title cards dynamically. +- `yt_poster.py` – Handles YouTube uploads. +- `pt_poster.py` – Handles PeerTube uploads. +- `sync_wiki.py` – Pushes updated wiki pages to the repository. +- `discovery.py` – Detects new session folders for processing. + +--- + +## Contributing +Pull requests are welcome on the [llgit repository](https://llgit.llamachile.tube/code/gramps/video-pipeline). +Please follow the established coding style and commit message conventions. + +--- + +## License +This project is licensed under the MIT License. + +--- + +## πŸ“š Site Index +Here’s a quick jump list to all wiki pages: + +- [Home](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki) +- [Installation](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Installation) +- [Configuration](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Configuration) +- [Usage](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Usage) +- [Branding](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Branding) +- [Automation](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Automation) +- [Troubleshooting](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Troubleshooting) +- [Changelog](https://llgit.llamachile.tube/code/gramps/video-pipeline/wiki/Changelog) + +---