Update README.md
This commit is contained in:
139
README.md
139
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)
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user