diff --git a/Project-Overview.md b/Project-Overview.md new file mode 100644 index 0000000..35a4dcd --- /dev/null +++ b/Project-Overview.md @@ -0,0 +1,45 @@ +# 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. + +## Project Goal + +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. + +## Project Structure + +``` +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 +``` + +## Versioning + +* **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 Focus + +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. + +## Notes + +* 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.