name: highlight-scanner description: Combined analysis skill to find viral-worthy highlights from videos. Scans transcripts, detects laughter, analyzes sentiment/emotion, and uses scene changes to identify the most engaging moments for TikTok/Shorts/Reels. Produces ranked list of highlight segments with virality scores. allowed-tools: Bash(ffmpeg:) Bash(python:) compatibility: Requires other trimer-clip skills and dependencies metadata: version: "1.0" methods: "Combined Analysis (Transcript + Laughter + Sentiment + Scenes)"
Highlight Scanner
This skill combines all detection methods to find viral-worthy highlights from videos. It's the core analysis component for the autocut-shorts workflow.
When to Use
- User wants to find the best moments from a video
- Identifying viral-worthy segments for short-form content
- Creating highlight reels from long videos
- Analyzing podcast, vlog, gaming, or tutorial content
- Preparing content for autocut workflow
Detection Signals
1. Transcript Analysis
- Identifies hooks and attention-grabbing phrases
- Detects story beats and important points
- Finds question/answer patterns
- Keyword matching for viral phrases
2. Laughter Detection
- Finds humorous moments
- Detects audience reactions
- Identifies funny segments
3. Sentiment/Emotion Analysis
- Positive emotions (excitement, joy)
- Surprise moments
- Negative emotions (controversy, drama)
- Emotional peaks and intensity
4. Scene Detection
- Scene changes as natural cut points
- Topic transitions
- Visual changes
Scoring System
Each highlight is scored based on:
virality_score = (
transcript_score * 0.35 +
laughter_score * 0.25 +
sentiment_score * 0.25 +
scene_score * 0.15
)
Score Range: 0.0 - 1.0
- 0.8 - 1.0: Premium viral potential (must use)
- 0.6 - 0.8: High potential (excellent clips)
- 0.4 - 0.6: Good potential (consider using)
- 0.2 - 0.4: Moderate potential (optional)
- 0.0 - 0.2: Low potential (skip)
Available Scripts
scripts/find_highlights.py
Find viral-worthy highlight segments.
Usage:
python skills/highlight-scanner/scripts/find_highlights.py <video_path> [options]
Options:
--transcript-path: Path to transcript SRT/VTT file--scenes-path: Path to scenes JSON file (from scene-detector)--laughter-path: Path to laughter JSON file (from laughter-detector)--sentiment-path: Path to sentiment JSON file (from sentiment-analyzer)--num-clips: Number of clips to generate - default: 5--min-duration: Minimum clip duration (seconds) - default: 15--max-duration: Maximum clip duration (seconds) - default: 60--output, -o: Output JSON path (default:<video_path>_highlights.json)
Examples:
Find highlights with transcript only:
python skills/highlight-scanner/scripts/find_highlights.py video.mp4 --transcript-path video.srt
Full analysis with all signals:
python skills/highlight-scanner/scripts/find_highlights.py video.mp4 \
--transcript-path video.srt \
--scenes-path video_scenes.json \
--laughter-path video_laughter.json \
--sentiment-path video_sentiment.json
Find 10 clips with custom duration:
python skills/highlight-scanner/scripts/find_highlights.py video.mp4 \
--transcript-path video.srt \
--num-clips 10 \
--min-duration 20 \
--max-duration 45
scripts/analyze_viral_potential.py
Analyze the viral potential of video segments.
Usage:
python skills/highlight-scanner/scripts/analyze_viral_potential.py <video_path> [options]
Options:
--transcript-path: Path to transcript file--output, -o: Output JSON path
Example:
python skills/highlight-scanner/scripts/analyze_viral_potential.py video.mp4 --transcript-path video.srt
Output Format
{
"video_path": "video.mp4",
"total_segments_analyzed": 15,
"highlights": [
{
"rank": 1,
"start_time": 45.2,
"end_time": 72.5,
"duration": 27.3,
"virality_score": 0.92,
"scores": {
"transcript": 0.95,
"laughter": 0.80,
"sentiment": 0.85,
"scenes": 0.70
},
"text": "This is the key moment text...",
"reasoning": "Contains hook + laughter + positive emotion",
"suggested_clip_start": 42.0,
"suggested_clip_end": 75.0,
"confidence": "high"
}
],
"analysis_summary": {
"total_duration": 120.5,
"avg_virality_score": 0.68,
"best_segment_start": 45.2,
"recommended_num_clips": 5
}
}
Scoring Weights
Default weights (customizable):
DEFAULT_WEIGHTS = {
'transcript': 0.35, # Content analysis
'laughter': 0.25, # Humor detection
'sentiment': 0.25, # Emotion analysis
'scenes': 0.15 # Visual transitions
}
Adjust weights based on content type:
- Comedy content: Increase
laughterweight - Emotional content: Increase
sentimentweight - Educational content: Increase
transcriptweight - Action content: Increase
scenesweight
Viral Phrases/Keywords
High-Viral Potential Phrases
Hooks/Attention Grabbers:
- "You won't believe..."
- "This changes everything..."
- "The secret to..."
- "What nobody tells you about..."
- "I made a huge mistake..."
- "This is illegal..."
Story Beats:
- "The plot twist..."
- "And then it happened..."
- "But here's the catch..."
- "The most important part..."
Engagement:
- "Comment if you agree..."
- "Like if you've experienced this..."
- "Wait for it..."
- "Watch till the end..."
Moderate-Viral Potential
- Interesting facts
- Tips and tricks
- How-to content
- Before/after reveals
Integration with Other Skills
This skill combines inputs from:
video-transcriber: Transcript for content analysisscene-detector: Scene changes for cut pointslaughter-detector: Humorous momentssentiment-analyzer: Emotional peaks
Output is used by:
video-trimmer: Create clips from highlightsautocut-shorts: Full workflow execution
Common Workflow
- User provides video file
- Transcribe with
video-transcriber - Detect scenes with
scene-detector(optional) - Detect laughter with
laughter-detector(optional) - Analyze sentiment with
sentiment-analyzer(optional) - Find highlights using this skill (combines all signals)
- Create clips from highlights with
video-trimmerorautocut-shorts
Tips
- More input signals = better highlight detection
- Always provide transcript (minimum requirement)
- Scene detection helps with clean cuts
- Laughter detection improves viral potential
- Sentiment analysis identifies emotional peaks
- Adjust weights based on your content type
- Filter by score threshold for quality control
- Consider clip duration when selecting highlights
Performance
- Transcript only: ~2 seconds for 1-minute video
- Full analysis: ~10-30 seconds for 10-minute video
- Scales linearly with video duration
- Can process in real-time for live content
References
- Viral content analysis research
- Engagement metrics studies
- TikTok/YouTube algorithm insights