Lesson 243: OBS Playtest Clip Consent Receipt on BUILD_RECEIPT (2026)

Direct answer: Before June playtest highlight reels post to Discord or marketing, file playtest_clip_consent_receipt_v1.json proving consent_log.csv covers every clip_id, concat_manifest_v1.json excludes opt-outs, ffmpeg concat duration matches manifest sum, and mkv_gap_reencode cousin is GREEN when clips needed gap recovery—then promote BUILD_RECEIPT playtest_clip_consent_ok. Distinct from Lesson 224 MKV gap (timestamp recovery) and Lesson 220 VOD batch (Whisper triage).

Lesson hero for OBS playtest clip consent receipt

Why this matters now (June 2027 playtest highlight reels)

June 2027 facilitators cut Tuesday Replay Buffer clips into a Discord highlight reel the same week legal reviews face/voice consent for marketing. Lesson 224 fixes duration gaps; this lesson fixes permission—each public clip needs consent_record_id, opt-outs stay out of concat_manifest, and BUILD_RECEIPT records highlight_concat_ok.

The OBS highlight clip consent preflight is the ninety-second gate—243 is the course milestone. Run Lesson 251 handoff_map_v1.json first when highlights are cut from a Resolve master. Pair Lesson 239 when triage tags vod_consent issues.

Beginner path (consent + concat)

Step Action Success check
1 Pin consent_form_version C1 pass
2 Complete consent_log.csv One row per playtester
3 Build concat_manifest_v1.json from GREEN clips only C4 opt-outs excluded
4 Run MKV gap lane if duration delta Lesson 224 cousin
5 ffmpeg concat from manifest filelist.txt C5 duration ±1s
6 File receipt + BUILD_RECEIPT highlight_concat_ok: true

Time: ~64 minutes first facilitator wave; ~15 minutes when templates exist.

Developer path (gates C1–C6)

Gate Check Fail when
C1 consent_form_version on signed form Hand-wavy verbal OK
C2 consent_log.csv complete Missing playtester row
C3 Every manifest clip has consent_record_id Orphan clip_id
C4 opt_out: true rows excluded Opt-out in reel
C5 ffprobe concat output duration Delta > 1s vs manifest sum
C6 Receipt + BUILD_RECEIPT Promote before C3 GREEN

C2 — consent_log.csv (reference)

consent_record_id,playtester_alias,session_id,consent_scope,consent_expires,opt_out,signed_at
a1b2c3d4-0001-4000-8000-000000000001,player_07,session-2027-06-12-01,highlight_reel,2027-12-31,false,2027-06-12T18:00:00Z

C3 — concat_manifest_v1.json

{
  "schema": "concat_manifest_v1",
  "build_label": "summer-playtest-2027-rc1",
  "reel_id": "highlights-2027-06-12-discord",
  "clips": [
    {
      "clip_id": "clip01",
      "path": "playtest-vod/highlights/inbox/clip01.mkv",
      "consent_record_id": "a1b2c3d4-0001-4000-8000-000000000001",
      "duration_seconds": 42.3,
      "mkv_gap_recovery": false
    }
  ],
  "excluded_opt_out_count": 1,
  "concat_output": "playtest-vod/highlights/out/highlights_2027-06-12.mp4"
}

Never glob inbox/*.mkv—manifest-only concat.

playtest_clip_consent_receipt_v1.json

{
  "schema": "playtest_clip_consent_receipt_v1",
  "build_label": "summer-playtest-2027-rc1",
  "consent_form_version": "playtest-consent-2027-06-v1",
  "consent_log_path": "playtest-vod/highlights/consent_log.csv",
  "concat_manifest_path": "playtest-vod/highlights/concat_manifest_v1.json",
  "clips_in_manifest": 4,
  "opt_out_excluded": 1,
  "concat_duration_delta_seconds": 0.2,
  "facilitator_pin_message_id": "discord:9876543210987654321",
  "paired_receipts": {
    "mkv_gap_reencode": "release-evidence/playtest/vod/MKV_GAP_REENCODE_RECEIPT.json",
    "playtest_vod_triage": "release-evidence/playtest/vod/PLAYTEST_VOD_TRIAGE_RECEIPT.json"
  },
  "gates": {
    "C1_form_version": "pass",
    "C2_consent_log": "pass",
    "C3_clip_consent_map": "pass",
    "C4_opt_out_excluded": "pass",
    "C5_concat_duration": "pass",
    "C6_build_receipt": "pass"
  },
  "highlight_concat_ok": true,
  "promotion_allowed": true
}

Pin under release-evidence/playtest/vod/PLAYTEST_CLIP_CONSENT_RECEIPT.json.

BUILD_RECEIPT row (C6)

Column Pass when
playtest_clip_consent_ok highlight_concat_ok: true
playtest_vod_gap_recovery Lesson 224 GREEN or n/a
facilitator_vod_batch Lesson 220 independent
ALTER TABLE release_publish_gate ADD COLUMN IF NOT EXISTS
  playtest_clip_consent_blocked BOOLEAN NOT NULL DEFAULT false;

Relationship to guide vs Lesson 224

Artifact Role
Highlight clip consent preflight C1–C6 checklist
MKV gap preflight Duration recovery on clips
Lesson 224 BUILD_RECEIPT gap column
This lesson BUILD_RECEIPT playtest_clip_consent_ok
Audacity VO consent preflight WAV-level consent metadata cousin (guide row #14)
VO waveform consent metadata tutorial Beginner evening LIST/iXML + mux survival
Lesson 250 BUILD_RECEIPT vo_consent_metadata_ok
Lesson 251 BUILD_RECEIPT trailer_handoff_ok — run before consent concat
Lesson 220 Whisper batch—not marketing reel

Triage merged_playtest.wav and public highlight .mp4 are different lanes—do not reuse Whisper manifest for Discord marketing.

Key takeaways

  1. Gap-free ≠ consent-clear—224 cousin + 243 consent.
  2. Manifest-driven concat—never glob inbox/.
  3. Lesson 239 — tag routing for consent issues.
  4. Q3 capstone 244 requires playtest_clip_consent_ok.
  5. 16 OBS/ffmpeg tools — capture stack only.
  6. Thursday reviewVOD / consent line.
  7. Do not merge into mkv_gap_reencode_receipt—separate schemas.

Common mistakes

  • Publishing reel before C3 map audit.
  • Opt-out clip in manifest.
  • Skipping C5 after ffmpeg “success”.
  • Using Whisper triage WAV for marketing reel.
  • Consent form version not bumped mid-wave.

Troubleshooting

Symptom Lane
Clip in reel, no consent row C3 audit
OBS GREEN, legal blocks VO lane Missing iXML recovery case study + Lesson 250
Concat short vs sum C5 + Lesson 224
Legal block (clip manifest) C1 form version
Internal clip in public reel consent_scope filter
Batch Whisper blocked Lesson 220 separate

Mini exercise (60 minutes)

  1. Collect five Replay Buffer clips + consent rows.
  2. Exclude one opt-out—verify manifest.
  3. Concat from filelist.txt; ffprobe duration.
  4. File receipt; BUILD_RECEIPT GREEN.
  5. Pin facilitator taxonomy message (link Lesson 239).

Continuity — Q3 2027 summer playtest wave (236–244)

Lesson Receipt focus
236–242 Art → WASM heap
243 (this) OBS clip consent
244 Q3 capstone — arc 236–244 closed

Previous: Lesson 242 — itch WASM heap cap.
Next: Lesson 244 — Q3 summer playtest capstoneQ3 arc 236–244 closed.

FAQ

Same as highlight clip consent guide?
Guide = checklist; 243 = BUILD_RECEIPT column.

Same as Lesson 224?
224 = MKV timestamp gaps; 243 = consent + highlight manifest.

Need 224 before 243?
Run gap recovery on clips that need it; consent receipt can file with mkv_gap_reencode: n/a per clip.

Whisper batch same pass?
No—Lesson 220 is triage audio; 243 is marketing reel.


Public highlight reels fail legal review when concat skips the consent log—map clips, exclude opt-outs, prove duration, promote playtest_clip_consent_ok on BUILD_RECEIPT.