Files
MixerTwitch/marker-context.md
T

228 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Premiere / OBS marker types
Reference for tagging streams in Premiere and writing `editDesc` chapters.
Companion to [`prompts.txt`](prompts.txt) (editDesc cleanup rules).
## Deliverable vs internal
| Category | In YouTube chapters / `editDesc`? |
|----------|-----------------------------------|
| Descriptive location & activity markers | Yes |
| Deliverable tangent pairs (tag in / tag out) | Yes |
| Pipeline stamps (`gamign`, `env`, raw `SEG`) | No |
| `FUNI`, `FUNI(INT)`, `funi`, `INT:`, `LORE:` | No |
| `AFK` / `UNAFK` | Usually yes (viewer-facing breaks) |
| `starting soon` / `preramble` / `postramble` / `goodbye` (renamed from Start, BEGIN, last env, END) | Yes (stream bookends) |
| Raw `BEGIN` / `END` / `AFK` / `UNAFK` | Yes (or folded into longer chapter titles) |
---
## OBS pipeline stamps (purple)
Hotkey stamps from the streaming layout. **Not chapter titles** — they mark OBS scene/layout switches and get stripped from `editDesc` (see `prompts.txt`).
| Marker | Purpose |
|--------|---------|
| **gamign** | Gaming layout / game capture active (intentional typo). |
| **env** | Environment / desktop / non-game layout. The **last** `env` of the stream (desktop at wrap-up) is usually relabeled **`postramble`** in `editDesc` — same timestamp, different chapter title. |
| **SEG** | Orange OBS chapter stamp for “new topic segment.” Often replaced in post with a descriptive deliverable label, or converted to `INT:` if the tangent is editor-only. |
These align to OBS marker times, not transcript guesses. When adding deliverable chapters, use the **marker timestamp**, not speech alone.
---
## Internal editor notes
Never front-facing. Strip from `editDesc`.
| Prefix | Purpose |
|--------|---------|
| **INT:** | Internal note to editor — excluded from delivery. **White** in Premiere. Example: `INT: desktop` (alt-tab too fast to matter on VOD). Not the same as “interruption”; non-deliverable tangents get `INT:`, deliverable ones get descriptive tag in/out. **Opsec pass:** probe **multiple frames** around each `gamign`/`env` cluster (±515s); add `INT:` only when a **desktop, browser, or other sensitive UI** is actually visible — not automatically on every `env` stamp. OBS env layout (meme frame, chat overlay) without taskbar/browser is lower risk; full MapGenie/desktop tabs = high priority. |
| **FUNI** | **“Clip that”** — flag a moment to save for **TikTok, Reels, and YouTube Shorts**. **Blue** — OBS hotkey stamp during stream. May include a short label (e.g. `FUNI cozy awoo`). |
| **FUNI(INT)** | Was **FUNI** originally; relabeled **`FUNI(INT)`** manually when the clip note is internal/editor-only rather than a straight short. Stays **blue** (FUNI lineage). Strip from `editDesc` like other internal markers. |
| **funi** | Same purpose as **FUNI**, but **lowercase** and **aquamarine** — added manually in post (not an OBS marker). Example: `funi ubear gift`. |
| **LORE:** | Lore / callback note for editor or future reference, not a public chapter. |
---
## Stream structure — hard tags (yellow/tan)
Predefined stamps from the OBS/py pipeline. **Yellow/tan** in Premiere (`4281049552` in [`0csv_to_xml.py`](2026/0csv_to_xml.py); muted tan-yellow in the UI). `setColorByIndex(4)` — not index 5 (that is **white**, used for `INT:`).
| Raw marker | Purpose |
|------------|---------|
| **Start** | Pre-stream hold. **Green** (default color when no `pproColor` is set — from `0csv_to_xml.py`). |
| **BEGIN** | Stream proper begins (hard tag). |
| **AFK** | Stepping away — break starts. |
| **UNAFK** | Back from break. |
| **END** | Stream over (hard tag). |
### `editDesc` rename conventions
Premiere keeps the raw stamp names; chapters use friendlier labels at the **same timestamps**:
| Raw stamp | `editDesc` chapter title |
|-----------|--------------------------|
| **Start** | **starting soon** (always) |
| **BEGIN** | **preramble**, **setup + rambling**, or similar (often) |
| last **env** | **postramble** (often) |
| **END** | **goodbye** (always) |
`prompts.txt` still strips raw `env` lines — you replace that slot with `postramble` when writing chapters. `BEGIN` / `END` / `AFK` / `UNAFK` stay as chapter lines (or get merged into longer titles like `chatting + goodbye`).
---
## Deliverable content markers (descriptive)
Short labels: locations, bosses, setup beats, tangents worth skipping or revisiting. May be yours (live/post) or agent-added during visual tagging.
**Red is only for agentic stamps** — markers the agent adds during MCP/visual passes (`Underworks`, `Wisp Thicket`, etc.). Agent `INT:` / `LORE:`**white**. Your own descriptive stamps → **orange** (same family as `SEG`). Do **not** recolor your existing markers to red; leave pipeline/FUNI/bookend colors alone.
### Gameplay & exploration
Examples: `Bellhart`, `far fields arena`, `goo beast defeated`, `first sinner fight`.
### Deliverable tangents — tag in / tag out
For skippable or revisit-worthy segments (gift popups, detours, downloads):
1. **Tag in** — descriptive name at segment start (e.g. `Subnautica 2 gift`).
2. **Tag out** — descriptive name where main content resumes (e.g. `far fields arena` after gift ends).
Both bounds are deliverable chapter candidates. Do **not** use `gamign` or `env` as tag-out labels.
---
## Agentic stamping workflow (MCP)
Run on the **active sequence** in Premiere Pro with the CEP bridge panel connected (`ws://127.0.0.1:9801`). Do **not** auto-fill `editDesc` — markers and `prtranscript/` sidecars only.
### 1. Premiere + MCP prep
1. Open the stream `.prproj` / sequence (e.g. `2026-06-18 slump.ts`).
2. Open **PremierPro MCP Bridge** (CEP) — confirm connected on port **9801**.
3. Rebuild MCP if transcript tools are missing: `go build -o bin/server.exe ./cmd/server` in `AdobePremiereProMCP/go-orchestrator`, then restart the **premiere-pro** MCP in Cursor.
4. Local mp4 for ffmpeg probes: `{year}/{date} {stream}.mp4` (e.g. `2026/2026-06-18 slump.ts.mp4`).
### 2. Export transcript (before visual pass)
Premiere 25 **Text > Transcript** is not readable via ExtendScript. Export through MCP:
| Tool | `premiere_export_sequence_transcript` |
|------|----------------------------------------|
| `output_path` | `editDesc/prtranscript/{stream}.prtranscript` (absolute path) |
| `format` | `prtranscript` (default), `json`, or `text` |
**Pr 25 (preferred):** open **Window > UXP Plugins > PremierPro MCP UXP Bridge** and confirm **Connected** on `ws://127.0.0.1:9802`. Source clips must already be transcribed in **Text > Transcript**.
Install once: `scripts/install-uxp-panel-win.bat` in the MCP repo. Enable UXP developer mode in Premiere preferences.
**Fallback (no UXP / Pr 24):** in Text panel, **Create Captions**, then call the same tool (reads caption tracks; speakers often `Unknown`).
Optional: `premiere_export_captions``.srt` / `.vtt` when a caption track exists.
Use the exported `*_prtranscript.txt` (or `.prtranscript` blocks) as **segment seeds** for the visual pass — not as chapter timestamps alone.
### 3. Baseline snapshot
`premiere_get_sequence_markers` → save `editDesc/prtranscript/{stream}_markers_baseline.json`.
### 4. Visual pass
1. Merge transcript seeds with existing marker labels.
2. ffmpeg probes: `editDesc/prtranscript/_*_probe/` — opsec clusters (below) plus ~10min sweeps during gameplay.
3. `premiere_capture_frame_base64` at seeds / map titles when mp4 is unavailable.
4. Write `editDesc/prtranscript/{stream}_visual_tags.txt`.
### 5. Add markers
- **Red (1):** new agent deliverable location/activity stamps only.
- **White (5):** agent-added `INT:` / `LORE:` only when opsec rules justify them.
- Never recolor or rename the user's existing markers.
### 6. After snapshot + save
Save `editDesc/prtranscript/{stream}_markers_after.json`. **Ctrl+S** the project (Synology paths may time out on `premiere_save_project`).
---
## Opsec pass (agent)
For each `gamign``env` cluster:
1. Export frames at the stamp and **±3s, ±8s, ±15s** (ffmpeg on `{year}/{stream}.mp4``prtranscript/_*_probe/`).
2. Inspect for **taskbar, desktop wallpaper, browser tabs/URL bar, file paths, MapGenie, Discord DMs**, etc.
3. Add `INT:` **only when exposure is visible** — label specifically (`INT: desktop`, `INT: mapgenie`, `INT: mapcheck`, …).
4. **Do not** pair every `env` with `INT: desktop`. In-game menus (inventory, pause, tasks, map) and OBS env layout (avatar + meme frame + chat) are **not** desktop exposure unless a real OS/browser window is on screen.
5. If nothing sensitive appears in the probe window, leave the cluster with no agent `INT:`.
---
## `editDesc` workflow
- Chapters in `editDesc/*.txt` are **semi-manual** (JSyntax Workflows + cursor edit prompt).
- Agent tagging work targets **Premiere markers**; do not auto-fill `editDesc` with `INT:`, `FUNI`/`funi`, or pipeline stamps.
- Agent adds **red** markers only for its own new deliverable location/activity stamps; set **white** on agent-added `INT:` / `LORE:` only. Your descriptive stamps stay **orange**. Never bulk-recolor the user's markers.
- Transcription aids live in **`editDesc/prtranscript/`** (per year): `*_prtranscript.txt`, `*_visual_tags.txt`, marker JSON snapshots, probe frames (`_gap_probe/`), etc. — not mixed with deliverable chapter `.txt` files.
- `prompts.txt` rules still apply: remove `FUNI`, `INT`, `LORE`, `gamign`, and `env` lines (treat lowercase `funi` the same as `FUNI`); normalize YouTube timestamps.
---
## Premiere marker colors (`0csv_to_xml.py`)
| Marker family | Color | `setColorByIndex` |
|---------------|-------|-------------------|
| Start | Green (default) | 0 |
| Agent-added deliverable tags (locations, tag in/out, bosses) | Red | 1 |
| gamign, env | Purple | 2 |
| SEG; your manual descriptive stamps | Orange | 3 |
| BEGIN, END, AFK, UNAFK | Yellow/tan | 4 |
| INT: | White | 5 |
| FUNI, FUNI(INT) | Blue | 6 |
| funi | Aquamarine / turquoise | 7 |
When adding markers via MCP: **new agent stamps** → red = 1; agent `INT:` / `LORE:` → white = 5. Do not change colors on markers you did not add.
---
## DRACONIANDISCOURSE S2 hybrid streams (Draconian Discourse + gaming)
**Since S2**, most live sessions use a **hybrid timeline** — not the old split where gaming VOD and DD were separate exports.
| Deliverable | Timeline | Description file | Notes |
|-------------|----------|------------------|-------|
| **Full stream VOD** (`{name}.ts`) | **Entire live recording** — DD block **then** gaming block in one sequence | `{year}/editDesc/{date} {name}.ts.txt` | Keeps **`starting soon`**, **`AFK`/`UNAFK`** breaks, **`goodbye`**, and the gaming tail. Same Premiere project as the live recording. Markers cover **both** DD and gaming. This is why the full `.ts` exists: it is the complete VOD. |
| **DD-only upload** | Trimmed DD segment only (same channel, same thumb) | `DRACONIANDISCOURSE/S2/E{n}/DD_S2E{n}.txt` stylized manifest | Derivative cut — **not** a second full timeline. **Cuts** cold open (`starting soon`), **`AFK`/`UNAFK`** segments, and **`goodbye`**. Content usually begins at **`PRERAMBLE`**. Chapters = DD topic tokens only. |
| **DD-only stream** (rare) | DD only — no gaming tail | DD manifest only | When the whole session is discourse; no post-DD `gamign` block to stamp. Same trim rules as DD-only upload when exported. |
**Why two deliverables:** the full `{name}.ts` preserves the whole stream arc (hold, breaks, sign-off, optional gaming). The DD-only version is a tighter podcast-style cut of the discourse block alone — no cold open, no AFK padding, no farewell — which is why those bookends live on the full VOD markers/`editDesc`, not in `DD_S2E{n}.txt`.
### Stamping style (from DD S2 workflow)
Reference: `0STREAMUNIVERSE/DRACONIANDISCOURSE/.specstory/history` (S2E2S2E5 marker passes).
**DD portion (before first post-discourse `gamign` / `CONCLUSION` boundary):**
1. **Topic tokens** — short `ALL_CAPS` labels, often `WORD_WORD` (e.g. `TRIP_RETROSPECTIVE`, `INTRO_HAWLEY`, `STEAM_HOOK`, `FUND_HYPOCRISY`). Match the tone of `DD_S2E{n}.txt` manifest chapters.
2. **Tie to OBS times** — chapter rows in `editDesc` / DD manifest must use **marker timestamps**, not transcript guesses alone.
3. **Preserve internal stamps**`INT:` / converted `SEG`, all `FUNI`, pipeline `gamign`/`env`: keep names and colors; strip from deliverable chapter lists only.
4. **Broad topics** — compress rapid-fire stamps within ~1 min into one label; dont micro-chapter every tangent.
5. **Bookends** — on **full `{name}.ts`**: `starting soon` / `PRERAMBLE` / `AFK`/`UNAFK` / `goodbye` (last `env``postramble` in `editDesc` when applicable). On **`DD_S2E{n}.txt`**: omit `starting soon`, AFK breaks, and `goodbye` — manifest starts at discourse content (usually **`PRERAMBLE`**).
**Gaming portion (after DD ends — first sustained `gamign` / `silksong prep` / equivalent):**
1. **Rename & condense** purple (`gamign`/`env`), orange (`SEG`), and tan/yellow (`BEGIN`/`END`/`AFK`/`UNAFK`) stamps that remain after the DD cutoff — merge research toggles (`gamign``env` ping-pong) into one deliverable label where possible.
2. **Labels** — lowercase descriptive gameplay names in `{name}.ts.txt` (`silksong prep`, `lost lace`); agent **red** only for **new** location/boss/activity stamps the user hasnt set.
3. **Transcript + frames** — use `*_prtranscript.json` seeds plus ffmpeg probes (`_floom_probe/`, etc.) or `premiere_capture_frame_base64` for boss titles, map names, opsec clusters.
4. **Do not** recolor or rename the users existing markers; agent adds red / white only.
**Premiere hygiene (DD passes):**
- **Never** `premiere_delete_all_markers` on hybrid sequences.
- To replace DD chapter rows: ExtendScript delete markers **before** cutoff time only, then add chapter markers; leave post-`SEG` / post-`CONCLUSION` gaming markers intact.
- Register undo (`premiere_undo`) before bulk rename/delete experiments.
**Agent scope on hybrid `*.ts` sequences:**
- Full `{name}.ts.txt` — semi-manual; agent does **not** auto-fill. Stamp Premiere + write `prtranscript/` sidecars.
- `DD_S2E{n}.txt` — separate stylized manifest for the DD-only derivative; topic tokens only for the DD block.
- Gaming agent pass runs on the **same** active sequence, scoped to timestamps **after** the DD boundary (see `editDesc` `CONCLUSION` / first post-DD `gamign`).