---
name: stream_highlights_workflow
description: Turn a finished stream VOD into a highlight reel plus platform-native cuts for YouTube Shorts, TikTok, and Reels. Use when someone asks to cut highlights from a stream, repurpose a VOD into clips, or build a posting batch from one broadcast. Covers pre-stream marker prep, two-pass VOD review, moment scoring, hook-first editing, title writing, and per-platform export specs.
---

# Stream Highlights Workflow

## Purpose

One stream becomes a week of content. This skill takes a finished broadcast (the VOD) and turns it into a long-form highlight reel and a batch of vertical cuts, each titled and exported for the platform it goes to. The core idea: never review the whole VOD from scratch. You mine moments first, pick the winners, then edit only what you already decided to post.

## Workflow

### 0. Pre-stream prep (5 minutes before going live)

Do this once per stream and the post-work gets much cheaper:

- Bind a stream marker hotkey. On Twitch, `/marker` in chat stamps the timestamp; map it to a Stream Deck or keyboard shortcut and hit it whenever something lands. Ask a mod to do the same when chat explodes.
- If you run OBS, add a second vertical canvas (1080x1920) alongside the horizontal one, and set a replay-buffer/backtrack hotkey with a 2-5 minute buffer so you can save instant replays mid-stream.
- Frame for vertical: keep the facecam, the key gameplay, and the reaction zone readable inside a center crop, with headroom left for captions.
- Check the mic. A muddy voice track kills more clips than bad framing does.

### 1. Get the VOD

- Pull your own copy locally as soon as the stream ends. On Twitch: Creator Dashboard > Video Producer > download your past broadcast. Terminal users: `yt-dlp` handles Twitch VODs and clips.
- Work from the local file, not from re-downloaded Twitch clips, so the footage stays full resolution.
- Keep a local master of everything finished. Twitch caps Highlights and Uploads storage at 100 hours per channel (announced Feb 2025) and auto-deletes beyond it, while VODs and Clips are exempt. Never treat Twitch as your archive.

### 2. Pass one: moment mining (no editing yet)

Goal: a ranked list of candidate moments, not footage. Gather signals from every source:

- Stream markers and the timestamps your mod noted.
- Viewer clips made during the broadcast (each one is a vote that a moment landed).
- Chat activity spikes: a sudden burst of messages or clip requests around a timestamp usually marks a reaction, a joke, or a fail the game-event tools missed.
- A transcript pass: run the VOD through a transcription tool and search for phrases like "no way", "clip it", laughter, or whatever your channel's catchphrases are.

Score each candidate 1-5 on three axes and add them up:

1. **Energy.** Did the streamer and chat react hard?
2. **Standalone clarity.** Does a viewer who never saw the stream get it from the clip alone?
3. **Uniqueness.** Is this different from the last batch you posted?

Log every candidate in the shortlist (see Output Contract). Sort by score. Cut everything below a threshold you set per stream. This list is the whole plan; nothing gets edited unless it is on it.

### 3. Pass two: selection and bucketing

Walk the shortlist top-down and commit to the final set. Two jobs here:

- **Bucket each pick** into one of four types: Hot Take, Tutorial, Fail, or Teaser. This is what spreads one stream across a week of posts without repeating yourself.
- **Apply the standalone test.** Play each moment cold, as if you are a stranger. Cut the setup and greetings: a gameplay tip opens with the result or the problem it solves; a reaction clip keeps just enough of the trigger that the reaction makes sense. If it needs a paragraph of context, it is not a clip.

### 4. Assemble the edits

- Rough-cut first: drop the chosen segments into a timeline, stack them on a second track, move them into a fresh sequence, delete the gaps. You now have a rough reel to rearrange and trim.
- **Highlight reel (horizontal, YouTube):** arrange the strongest moments for pacing, trim each to its best beats, add a short intro card and end card. 8-15 minutes is the sweet spot for search-driven views; tutorials can stretch longer.
- **Vertical cuts (one master, many versions):** edit each clip hook-first. The premise must be clear in the first 1-2 seconds on screen. Add animated word-level captions; most vertical views happen with sound off or in noisy rooms. Keep cuts and zooms tight to clarify action or punch the reaction.
- Export settings live in `references/platform-specs.md`. Encode one 1080x1920 master at good quality, then derive per-platform versions: Shorts needs 60 seconds or less and `#Shorts` in the title or description; TikTok rewards 21-34 seconds; Reels allow up to 90 seconds. Keep on-screen text centered and clear of platform UI overlays.
- One resend per clip: core caption message stays identical everywhere; the tail changes. Hashtags matter more on TikTok and Instagram (3-5 relevant); YouTube Shorts needs a keyword-rich title because Shorts is searched.

### 5. Titles, descriptions, tags

Titles decide whether anyone taps. Rules that hold up:

- One target keyword per title, placed in the first 60 characters, total under 60-65 characters so it does not truncate on phones.
- Write it like a human sentence. Numbers and brackets lift click-through ("3 Clutch Plays from Friday's Stream"). Never write a title the clip does not deliver; a lying title gets the click and the instant bounce, and the bounce is what the algorithm remembers.
- Description: 200+ words for the reel, keyword early, first two sentences carry the pitch since they show before the fold. Add chapter timestamps; they help navigation and surface in search.
- Tags: about five relevant ones, one of them the target keyword. Upload a transcript when you have one; YouTube indexes spoken words.

More title formulas live in `references/title-templates.md`.

### 6. Schedule the batch

Post on a consistent slot between streams so the algorithms learn your cadence. A workable week from one stream:

| Day | Slot | Bucket |
|-----|------|--------|
| 1 | Stream day +1 | Fail (fastest to cut, rides the stream's own afterglow) |
| 2 | | Hot Take |
| 3 | | Tutorial |
| 4 | | Teaser for the next stream |
| 5 | | Highlight reel (long-form, mid-week when watch time peaks) |
| 6-7 | | Re-run the best performer as a repost or a duet/stitch reply |

Check the numbers 48 hours after posting. Keep the hooks that worked; retire the ones that did not.

## Output Contract

Every run of this workflow produces:

1. **Moment shortlist**: table with timestamp, source signal (marker / clip / chat spike / transcript), type bucket, energy/clarity/uniqueness scores, standalone verdict, final hook line. Template: `assets/moment-shortlist.csv`.
2. **Highlight reel master**: horizontal edit with intro/end cards, chapters, titled and described per section 5.
3. **Vertical cuts**: one 1080x1920 master per selected moment, plus per-platform exports (Shorts, TikTok, Reels) with platform-appropriate captions and tails.
4. **Title pack**: final title, description, tags, and hashtags for each output.
5. **Posting schedule**: which cut goes live on which day, in which slot.

## Operating Rules

1. Never review raw VOD footage before the shortlist exists. The list comes first; the editor opens only for what is already picked.
2. Every factual claim about a platform (length limits, specs, storage caps) comes from `references/platform-specs.md` or a fresh check. Limits change; guesses do not.
3. Keep a human approval step between moment detection and posting. A detection pass finds where something happened; judgement decides whether it belongs on the channel.
4. If the VOD has no markers, no mod notes, and no transcript, say so and run a transcript pass before scoring. Scoring blind is how filler gets posted.
5. Titles must be honest about the clip. Clickbait that lies is a short-term view and a long-term ranking hit.
6. Keep local masters of every finished cut. Platform storage is rented space, not an archive.
