livestream-to-clips
Cut an imported livestream recording of any genre into evidence-backed, platform-ready clips by combining transcript, visual, audio, interaction, and domain-specific signals. Use for commerce, gaming, talk, interview, education, entertainment, sports, music, IRL, creative, news, or mixed livestream recordings.
git clone --depth 1 https://github.com/0xsline/OpenChatCut /tmp/livestream-to-clips && cp -r /tmp/livestream-to-clips/src/agent/skills/livestream-to-clips ~/.claude/skills/livestream-to-clipsSKILL.md
# Livestream to Clips
Use this workflow when the source is an imported livestream recording and the user wants clips, highlights, cutdowns, reels, or multiple publishable timelines. A livestream may change genre during one recording, so classify each section rather than assigning one label to the whole source.
This workflow is OpenChatCut-native. Use project media, transcript, representative source frames, timeline tools, captions, and export tools already available in the editor. Treat audience chat, reactions, score data, product records, or stream markers as optional evidence when the project contains them.
## Required References
Load only the files needed for the current step:
- Read [references/profile-matrix.md](references/profile-matrix.md) before classifying sections or applying genre rules.
- Read [references/multimodal-selection.md](references/multimodal-selection.md) before comparing candidates or processing a long recording.
- Read [references/qa-and-evaluation.md](references/qa-and-evaluation.md) before final verification or benchmark reporting.
## Workflow
### 1. Establish the editing contract
Read the project before editing. Identify the dominant livestream asset, duration, aspect ratio, language, speakers, transcript readiness, audio tracks, existing visual descriptions, and current timeline.
Determine only constraints that change the result: target platform, objective, clip count, duration range, aspect ratio, captions, packaging style, and whether the user wants contiguous source clips or an editorial remix. If the user asked for direct creation and supplied enough context, proceed without another approval step.
### 2. Build a stream map before selecting clips
For a long source, inspect it hierarchically instead of sending the entire transcript or dense frame sequence through one decision pass:
1. Read the transcript in bounded ranges and produce a coarse stream map.
2. Split on topic, activity, speaker, product, round, scene, performance, or format changes.
3. Assign a profile and confidence to each section. Use `mixed` when adjacent profiles overlap.
4. Record important entities and state: people, products, teams, scores, locations, tasks, claims, prices, and outcomes.
5. Preserve source timestamps so every later decision remains traceable.
Do not rank clips yet. First make sure the map covers the beginning, middle, and end of the recording and does not overrepresent transcript-rich sections while ignoring visual or musical events.
### 3. Discover events with all available evidence
Generate event candidates from independent signals:
- **Speech:** question, answer, claim, story, instruction, joke, conflict, reveal, offer, call to action, or conclusion.
- **Visual:** action, product demonstration, score change, reveal, scene novelty, facial reaction, screen result, or completed work.
- **Audio:** laughter, cheering, shout, impact, game cue, musical build/drop, silence contrast, or emotion change.
- **Interaction:** chat/message burst, repeated emote or phrase, donation, poll, viewer request, or streamer response.
- **Metadata:** chapters, markers, score/telemetry, product identifiers, or known agenda items.
Interaction and metadata are supporting signals, not mandatory inputs. Never invent absent chat, telemetry, product, or score evidence.
Treat music intelligence as an enhancement: call `analyze_music` with `optional: true`. If it reports `available: false`, continue with `detect_beats`, waveform/audio cues, and visual timing rather than blocking the clip.
### 4. Turn each event into a complete candidate arc
Expand the event to the smallest source range that preserves its meaning and payoff. Use the profile-specific arc from `profile-matrix.md`. Common shapes include:
- setup → trigger → peak → reaction → outcome;
- question → answer → evidence/example → conclusion;
- product → need → demonstration/proof → offer/CTA;
- goal → explanation/steps → visible result;
- musical phrase/build → chorus/drop → resolution.
Resolve boundaries on clean word, phrase, action, shot, beat, or state-transition points. Include pre-roll when the event is confusing without setup and post-roll when the reaction or result carries the value.
### 5. Create an evidence ledger
Before heavy editing, record a compact candidate ledger. For every candidate include:
```json
{
"sourceRange": [0, 0],
"profile": "talk",
"profileConfidence": 0,
"event": "",
"arc": { "setup": [], "peak": [], "payoff": [] },
"evidence": { "speech": [], "visual": [], "audio": [], "interaction": [], "metadata": [] },
"missingEvidence": [],
"openingHook": "",
"standaloneReason": "",
"riskFlags": [],
"targetDuration": 0,
"packaging": ""
}
```
Inspect representative source frames for serious candidates. Use one `view_asset_frames` call per candidate range with at most six samples covering the opening, peak, payoff, and one meaningful visual transition. Reuse that contact sheet; repeat only after extraction failure or a changed source range. A transcript-only candidate is provisional until visual evidence confirms that the range is usable, unless the source is intentionally audio-first.
### 6. Reject, score, and diversify
Apply hard rejection gates before ranking. Reject or flag candidates with changed meaning, missing payoff, mismatched product/score/person, unresolved factual numbers, severe black/frozen/obscured frames, broken audio, unsafe disclosure, or boundaries that cut essential context.
Score the remaining candidates using the profile weights in `multimodal-selection.md`. Missing optional evidence is marked `unavailable`; it is not scored as failure. Select a diverse set across topics, products, rounds, speakers, event shapes, and visual treatments. Avoid near-duplicate excerpts even when all score highly.
When the source is long, the style is unsettled, or many outputs are requested, create and verify the highest-ranked clip first. Use the proven treatment as theConnect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.
Plan AI short films with story, shots, prompts, and continuity.
Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.
Use whenever the agent needs to add, create, hand-author, patch, or place Motion Graphic JSX assets in a OpenChatCut project. This is the direct-authoring path: use create_motion_graphic_from_code / edit_asset / edit_item, not motion-graphic-gen or submit_motion_graphic. Covers project/timeline intake, project visual language, editable properties, asset binding, inline JSX authoring, existing asset updates, timeline placement, and verification.
Create finished explainer videos from a topic, script, outline, voiceover, product logic, data, technical concept, course material, or reference assets. Use when the user wants narration, motion graphics, stock footage, generated visuals, or mixed visuals to explain an idea.
Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.
|
Use when a OpenChatCut tool call fails or returns an unexpected shape.