diff --git a/Clip-Handling-Logic.md b/Clip-Handling-Logic.md index 952d87f..667856a 100644 --- a/Clip-Handling-Logic.md +++ b/Clip-Handling-Logic.md @@ -1,64 +1,154 @@ -# Clip Handling Logic + + +

๐ŸŽž๏ธ Clip Handling Logic

+

This page documents how the LCS Pipeline detects, classifies, and processes highlight clips from livestream sessions.

+
+

๐Ÿ—‚๏ธ Clip Categories

+

All clips are sorted into one of the following categories, each in its own subdirectory:

-This page explains how the LCS Pipeline processes clips โ€” from raw input files to final uploads. +Folder Name | Description +-- | -- +montages/ | Pre-edited reels combining multiple highlights. One file โ†’ one final video. +hits/ | Single standout moments (e.g., eliminations). Processed into individual highlight videos. +misses/ | Funny or frustrating fails. Each one becomes a clip. +outtakes/ | Manually triggered clips marked during stream (via button or voice). Not auto-processed. -## Overview -Each clip goes through a multi-stage process: +
+

๐Ÿ“ฅ Input Assumptions

+ +
+

๐Ÿง  Classification Rules

+

The system infers:

+ +
+

๐Ÿ“„ Metadata Expectations

+

Each clip may be accompanied by a notes.json file containing:

+ +

If missing, user will be prompted during processing.

+
+

๐Ÿงช Examples

+
2025.08.03/
+โ”œโ”€โ”€ hits/
+โ”‚   โ””โ”€โ”€ shotgun-doublekill.mp4
+โ”‚   โ””โ”€โ”€ shotgun-doublekill.notes.json
+โ”œโ”€โ”€ outtakes/
+โ”‚   โ””โ”€โ”€ llama-bait-fail.mp4
+โ”œโ”€โ”€ montages/
+โ”‚   โ””โ”€โ”€ fn-highlight-reel-aug3.mp4
+โ””โ”€โ”€ rendered/
+
+
+

Next page: Metadata Extraction

+ +## ๐ŸŽž๏ธ Clip Handling Logic -1. **Discovery**: Files are found in `hits/`, `misses/`, `montages/`, or `outtakes/` folders. -2. **Metadata Extraction**: Reads `notes.json` if available. -3. **Title Generation**: Auto or manual titles are generated. -4. **Rendering**: Intro + title + clip + outro stitched together. -5. **Upload**: Posted to YouTube (and PeerTube if wide format). -6. **Archival**: Final metadata and URLs are saved. - -## Clip Categories - -* `hits/`: Notable eliminations. -* `misses/`: Funny or fail moments. -* `montages/`: Pre-trimmed highlight reels. -* `outtakes/`: Manually marked moments. - -## Notes File - -Each clip folder may include a `notes.json` with optional metadata: - -```json -{ - "highlight": "Gramps nails a double headshot!", - "tags": ["Fortnite", "Double Kill", "Highlights"], - "gag_name": "Senior Sniper Supreme" -} -``` - -## Format Rules - -* Vertical clips: Filename ends with `-vert` or `-vertical`. -* Each clip โ†’ one output video. -* Output stored in `rendered/` subfolder of the session. - -## Rendering Pipeline - -```text -[ intro ] + [ dynamic title card ] + [ content ] + [ outro ] -``` - -## Publishing Rules - -* Vertical: Upload to YouTube Shorts playlist. -* Wide: Upload to both YouTube Clips and PeerTube. - -## Automation Notes - -* Title overlays use Fortnite fonts/colors. -* If `notes.json` is missing, OpenAI fallback generates description. -* Upload returns YouTube URL for archive. - -## Dev Tip - -Set debug flag in `config.py` to avoid destructive actions during tests. +This page documents how the LCS Pipeline detects, classifies, and processes highlight clips from livestream sessions. --- -๐Ÿง  Managed and documented by ChatGPT, the official LCS Pipeline wiki boss. ๐Ÿ˜Ž +### ๐Ÿ—‚๏ธ Clip Categories + +All clips are sorted into one of the following categories, each in its own subdirectory: + +| Folder Name | Description | +| ----------- | ----------------------------------------------------------------------------------------- | +| `montages/` | Pre-edited reels combining multiple highlights. One file โ†’ one final video. | +| `hits/` | Single standout moments (e.g., eliminations). Processed into individual highlight videos. | +| `misses/` | Funny or frustrating fails. Each one becomes a clip. | +| `outtakes/` | Manually triggered clips marked during stream (via button or voice). Not auto-processed. | + +--- + +### ๐Ÿ“ฅ Input Assumptions + +* All clip files are placed in session folders named `YYYY.MM.DD` or `YYYY.MM.DD.N` +* Each clip file = one standalone video +* Files with `-vert` suffix are treated as vertical +* All other files default to widescreen + +--- + +### ๐Ÿง  Classification Rules + +The system infers: + +* **Vertical format**: filename ends in `-vert` or `-vertical` +* **Clip date**: extracted from the parent folder name +* **Processing path**: + + * If under `montages/` โ†’ auto-title screen + * Else โ†’ prompts for `notes.json` input + +--- + +### ๐Ÿ“„ Metadata Expectations + +Each clip may be accompanied by a `notes.json` file containing: + +* `highlight` (required): Short descriptive sentence +* `tags` (optional): List of relevant keywords +* `gag_name` (optional): Alt-title or meme label + +If missing, user will be prompted during processing. + +--- + +### ๐Ÿงช Examples + +``` +2025.08.03/ +โ”œโ”€โ”€ hits/ +โ”‚ โ””โ”€โ”€ shotgun-doublekill.mp4 +โ”‚ โ””โ”€โ”€ shotgun-doublekill.notes.json +โ”œโ”€โ”€ outtakes/ +โ”‚ โ””โ”€โ”€ llama-bait-fail.mp4 +โ”œโ”€โ”€ montages/ +โ”‚ โ””โ”€โ”€ fn-highlight-reel-aug3.mp4 +โ””โ”€โ”€ rendered/ +``` + +--- + +Next page: [`[Metadata Extraction](https://chatgpt.com/c/Metadata-Extraction)`](./Metadata-Extraction) \ No newline at end of file