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.**
|
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.
|
||||||
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.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚙️ Features
|
## 📑 Table of Contents
|
||||||
|
- [Overview](#overview)
|
||||||
* ✅ Daily folder scan for new stream sessions
|
- [Project Goals](#project-goals)
|
||||||
* 🎬 Clip classification (`hits/`, `misses/`, `montages/`, etc.)
|
- [Core Components](#core-components)
|
||||||
* 🧠 AI-generated titles and descriptions via OpenAI
|
- [Workflow Summary](#workflow-summary)
|
||||||
* 🪄 Auto-stitched intro + title card + outro
|
- [Branding Guidelines](#branding-guidelines)
|
||||||
* 🖼️ Dynamic thumbnail creation with Fortnite styling
|
- [Automation Scripts](#automation-scripts)
|
||||||
* ⬆️ Uploads to YouTube (and PeerTube if enabled)
|
- [Contributing](#contributing)
|
||||||
* 🧾 Metadata archive and session history
|
- [License](#license)
|
||||||
* 🐘 (Planned) Social posts to Mastodon and Bluesky
|
- [Site Index](#site-index)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Quick Start
|
## 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.
|
||||||
```bash
|
It’s built to be fast, flexible, and scalable.
|
||||||
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\`).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🗂️ Folder Structure
|
## Project Goals
|
||||||
|
- **Full Automation** – Minimize manual intervention in video processing and uploads.
|
||||||
```
|
- **Brand Consistency** – Apply intros, outros, titles, and descriptions according to predefined rules.
|
||||||
video-pipeline/
|
- **Platform Flexibility** – Publish to multiple platforms without extra steps.
|
||||||
├── main.py
|
- **Metadata Tracking** – Maintain a detailed archive of uploads, formats, and performance data.
|
||||||
├── 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
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📚 Documentation
|
## Core Components
|
||||||
|
1. **Video Processing** – Handles clip trimming, intro/outro insertion, title card generation, and format adjustments.
|
||||||
Full documentation is hosted in the GitHub Wiki:
|
2. **Metadata Generation** – Pulls session data and user notes into dynamic titles and descriptions.
|
||||||
👉 [📖 LCS Pipeline Wiki](https://github.com/LCS-Gramps/video-pipeline/wiki)
|
3. **Publishing** – Uploads to YouTube, PeerTube, and optionally Mastodon/Bluesky.
|
||||||
|
4. **Branding Assets** – Logos, fonts, and color palettes for consistent look-and-feel.
|
||||||
Recommended pages:
|
5. **Automation Scripts** – Python modules that orchestrate the entire pipeline.
|
||||||
|
|
||||||
* [`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)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🧪 Development Mode
|
## Workflow Summary
|
||||||
|
1. **Clip Intake** – Source files are added to the `hits/`, `misses/`, `montages/`, or `outtakes/` folders.
|
||||||
* `DEBUG=True` in `.env` disables destructive operations
|
2. **Brand Application** – The system injects title cards, branding assets, and date stamps.
|
||||||
* All modules can be run/tested independently
|
3. **Rendering** – Produces both widescreen (16:9) and vertical (9:16) versions where applicable.
|
||||||
* Wiki editing is supported via local Markdown and `wiki_publish.log`
|
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`
|
## Automation Scripts
|
||||||
> Contributions welcome in the form of bug reports, pull requests, or Fortnite gifts. 🎁
|
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