From 899a37cd2ba4aef342c68cfdaf7cbd2bffaf0d1d Mon Sep 17 00:00:00 2001 From: Gramps Date: Tue, 5 Aug 2025 10:17:22 -0700 Subject: [PATCH] Updated Project Overview (markdown) --- Project-Overview.md | 73 +++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/Project-Overview.md b/Project-Overview.md index 35a4dcd..11d228f 100644 --- a/Project-Overview.md +++ b/Project-Overview.md @@ -1,45 +1,52 @@ # Project Overview -Welcome to the **Llama Chile Shop Video Automation Project**! This system automates the end-to-end process of preparing, rendering, uploading, and promoting Fortnite gameplay videos extracted from livestream sessions. +Welcome to the **Llama Chile Shop (LCS) Pipeline** โ€” an automated system for rendering, titling, uploading, and archiving Fortnite gameplay highlights starring Gramps! -## Project Goal +## โœ… Current Status +The system is fully operational for montage and single-clip rendering: +- Auto-discovers clips from `montages/`, `hits/`, `misses/`, `outtakes/` +- Renders each clip with intro, dynamic title card, and outro +- Uploads to YouTube with appropriate playlist routing +- Archives structured metadata, including URLs and tags +- Supports dynamic description generation via OpenAI -Build a robust pipeline that transforms raw stream recordings into polished video content (montages, hits, misses, outtakes), enriched with branded intros/outros, AI-generated descriptions, and automated uploads to YouTube, PeerTube, Mastodon, and Bluesky. +## ๐Ÿ“Š Feature Snapshot -## Project Structure +| Feature | Status | Notes | +|------------------------------|------------------|-------| +| Clip rendering (wide/vert) | โœ… Done | Fully automated | +| YouTube upload | โœ… Done | Includes playlist routing, category ID, hashtags | +| Dynamic metadata generation | โœ… Done | OpenAI template logic working | +| Metadata archive | โœ… Done | Saved locally with YouTube/PeerTube URLs | +| Mastodon posting | ๐Ÿงช In progress | Posting logic scaffolded, needs integration | +| PeerTube upload | โณ Planned | Awaiting config/token/queueing | +| `outtakes/` manual support | โœ… Implemented | Requires manual trigger | +| Wiki rendering | โš ๏ธ Blocked | GitHub refuses to publish updates via API | +| `sync_wiki.py` | ๐Ÿชฆ Deprecated | Kept as emergency parachute | +| Metadata model v2 | โœ… Done | Supports wide + vertical, multiple clips per session | -``` -Z:\ # NAS-mounted project root -โ”œโ”€โ”€ 2025.06.20/ # Stream session directory (date-based) -โ”‚ โ”œโ”€โ”€ hits/ # One video file per hit clip -โ”‚ โ”œโ”€โ”€ misses/ # One video file per death clip -โ”‚ โ”œโ”€โ”€ montages/ # Pre-edited full montage files -โ”‚ โ”œโ”€โ”€ outtakes/ # Marked for manual post-processing -โ”‚ โ””โ”€โ”€ rendered/ # Output folder for all generated clips -โ”œโ”€โ”€ assets/ # Branding assets (intros, outros, fonts, logos) -โ”œโ”€โ”€ modules/ # Modular helper libraries -โ”œโ”€โ”€ logs/ # Diagnostic logs and output -โ”œโ”€โ”€ .env # API keys and environment configuration -โ”œโ”€โ”€ .gitignore -โ”œโ”€โ”€ main.py # Entry point for daily automation pass -โ”œโ”€โ”€ upload_youtube_montage.py # Standalone script to test YouTube upload flow -โ””โ”€โ”€ README.md -``` +## ๐Ÿ—‚๏ธ Folder Structure -## Versioning +Each stream session lives under `Z:\YYYY.MM.DD` or `Z:\YYYY.MM.DD.N`, with these subfolders: +- `hits/` โ€” short action highlight clips +- `misses/` โ€” funny fails +- `montages/` โ€” pre-trimmed reels +- `outtakes/` โ€” manually marked events +- `rendered/` โ€” auto-generated videos go here -* **v0.0.1**: Initial clean commit of montage rendering pipeline with FFmpeg, branding assets, intro+title composition, and output to `rendered/`. -* **v0.1.1** (WIP): Adds YouTube upload support with dynamic OpenAI-generated descriptions. -* **v0.1.2**: Adds PeerTube upload using same modularized description system. -* **v0.2.0**: Adds Mastodon support with dynamic toot generation. -* **v0.2.1**: Adds Bluesky support with dynamic toot generation. +## ๐Ÿง  Current Version -## Current Focus +- **Version**: `v0.1.1` (YouTube + render + metadata complete) +- **Next milestone**: `v0.1.2` (PeerTube support) +- **Source**: `C:\Users\alpha\code\Python\lcs_agent_clean` +- **Mount**: NAS path is `Z:\` (mapped to `\\chong\LCS\Videos\eklipse`) -Locking down proof-of-concept for `upload_youtube_montage.py`: passing in a montage clip, deriving stream date, generating AI description, posting to YouTube (private in debug), and returning video URL. +## ๐Ÿ”ง Development Tips -## Notes +- To test safely, set `DEBUG = True` in `config.py` +- Title overlays use Fortnite fonts/colors +- `notes.json` โ†’ OpenAI โ†’ Upload โ†’ Archive โ†’ Social post -* Vertical videos are identified by filenames ending in `-vert` or `-vertical`. -* Montage videos do **not** have accompanying `notes.*` files. -* All AI-generated descriptions are based on a dynamic prompt sourced from a `notes.*` template, file-type agnostic. +--- + +๐Ÿง  Maintained by ChatGPT, your resident senior dev + wiki wrangler. ๐Ÿ˜Ž