Key capabilities
Visual editing
Select utterances directly from the transcript timeline with click-and-drag or Shift+Click range selection.
Live preview
Preview your highlight with automatic playback through selected segments before generating the final video.
Multiple formats
Generate in 16:9 landscape for desktop or 9:16 portrait for social media platforms.
Smart rendering
Automatic captions, speaker overlays, and social media enhancements like blur margins and zoom.
How highlights work
The highlight system uses a page-based architecture with editing mode on the transcript page:Create highlight
Click the “Create Highlight” button in the header, right-click an utterance to start from that point, or use the ”+ Add Highlight” button in the list. The system creates a highlight with an auto-generated name.
Edit content
Select utterances in transcript view. Click individual utterances to toggle them, or Shift+Click to select ranges. Changes are tracked with an “Unsaved Changes” badge.
Preview playback
Open the preview dialog to watch your highlight with automatic playback through segments. The video loops back to the beginning for continuous review.
Configure rendering
Choose aspect ratio (16:9 or 9:16), enable captions and speaker overlays, and configure social media enhancements in the preview dialog.
Generate video
Click “Generate” to dispatch a background task. The system auto-saves unsaved changes before generation. Track progress on the highlight detail page.
Creating highlights
There are three ways to create a highlight:docs/guides/meeting-highlights.md:120-128
Editing interface
The highlight editing mode provides a streamlined interface:Highlight mode bar
Highlight mode bar
A yellow bar appears at the top of the transcript with:
- Highlight name with edit icon to update name and subject
- Statistics: Duration, speaker count, utterance count (real-time)
- Preview button: Opens the dedicated preview dialog
- Navigation: Previous/Next highlight navigation
- Actions menu: Save now, reset to original, exit editing
src/components/meetings/HighlightModeBar.tsxTimeline visualization
Timeline visualization
The transcript controls timeline shows:
- Base layer: Speaker segments as colored bars (party colors)
- Highlight layer: Selected utterances overlaid as amber bars
- Clip navigation: Previous/Next buttons with “Clip X/Y” indicator
- Interactive tooltips: Hover to see speaker and timestamp
- Click-to-seek: Click anywhere on timeline to jump to that moment
src/components/meetings/TranscriptControls.tsxUtterance selection
Utterance selection
Select content directly in the transcript:
- Click an utterance to toggle selection (bold/underlined when selected)
- Shift+Click to select/deselect all utterances between clicks
- Amber overlays appear on the timeline for visual feedback
- Unsaved changes badge appears when modifications are made
src/components/meetings/transcript/Utterance.tsxPreview and generation
The preview dialog provides a unified interface for review and configuration:- Preview mode
- Rendering options
- Generation status
The preview dialog displays:From
- Video player with current segment playback
- Text preview showing grouped utterances by speaker
- Clip navigation controls (Previous/Next, Clip X/Y)
- Auto-advancing playback that loops through all segments
- Hover controls for play/pause with large button overlay
Preview mode seeks to the first highlighted utterance and automatically plays through each segment.
docs/guides/meeting-highlights.md:143-150Video rendering
Highlights are generated by an external task server with sophisticated rendering:src/lib/tasks/generateHighlight.ts:10-212
Aspect ratios and formats
Highlights support two aspect ratios for different use cases:- Default (16:9)
Landscape format for traditional viewing
- Desktop-optimized
- Suitable for YouTube, website embeds
- Standard meeting video format
- No additional processing needed
Use 16:9 when sharing on desktop platforms or when you want the full meeting frame.
docs/guides/meeting-highlights.md:22-32
Categorization system
Highlights are automatically categorized into three sections:Showcased
Featured highlights marked for special attention. Toggle showcase status on the detail page (requires generated video).
Video highlights
Non-showcased highlights with generated videos in both 16:9 and 9:16 formats.
Draft highlights
Highlights without videos, ready for content editing and generation.
docs/guides/meeting-highlights.md:209-216
The showcased toggle is only available when
muxPlaybackId exists (video has been generated).Responsive video player
The highlight video player adapts to different aspect ratios:src/components/meetings/HighlightVideo.tsx and docs/guides/meeting-highlights.md:35-39
Desktop layout: Side-by-side content and video
Mobile layout: Stacked vertically for optimal viewing
Mobile layout: Stacked vertically for optimal viewing
Subject association
Highlights can be connected to meeting subjects for better organization:- Better discoverability via subject pages
- Contextual grouping of related highlights
- Improved search and filtering
State management
Highlight editing uses centralized context:HighlightContext API
HighlightContext API
Main editing lifecycle methods:
enterEditMode(highlight)- Start editing a specific highlightupdateHighlightUtterances(utteranceId, 'add' | 'remove')- Modify compositionsaveHighlight(options?)- Persist changes with optional name/subject updatesresetToOriginal()- Discard unsaved changesexitEditMode()- Return to highlights list (prompts if unsaved)
openPreviewDialog()/closePreviewDialog()- Control preview dialoggoToPreviousHighlight()/goToNextHighlight()- Navigate between highlights
hasUnsavedChanges- Track dirty statestatistics- Real-time duration, speaker count, utterance countisPreviewDialogOpen- Preview dialog statehighlightUtterances- Current composition
src/components/meetings/HighlightContext.tsxCouncilMeetingDataContext
CouncilMeetingDataContext
Centralized meeting data with highlight management:
addHighlight(highlight)- Add new highlight to listupdateHighlight(highlightId, data)- Update existing highlightremoveHighlight(highlightId)- Remove from list
src/components/meetings/CouncilMeetingDataContext.tsxConfiguration
Set up highlight generation:API reference
Dispatches highlight video generation task
Processes video generation result callback
Best practices
Keep highlights focused
Keep highlights focused
Create concise highlights (1-3 minutes) that focus on a single topic or decision:
- ✅ “Mayor’s response to parking concerns”
- ✅ “Vote on new bike lane proposal”
- ❌ “Entire 2-hour meeting summary”
Use descriptive names
Use descriptive names
Rename “Unnamed Highlight” to something descriptive:
- ✅ “Budget approval for park renovation”
- ✅ “Opposition party statement on traffic plan”
- ❌ “Unnamed Highlight 1”
Connect to subjects
Connect to subjects
Link highlights to agenda subjects for context:
- Helps users find all content related to a subject
- Improves organization and navigation
- Enables subject-based filtering
Choose the right format
Choose the right format
Select aspect ratio based on your audience:
- 16:9 for websites, YouTube main feed, desktop viewers
- 9:16 for Instagram, TikTok, YouTube Shorts, mobile-first audiences
Next steps
Transcription
Understand how transcripts enable highlight creation
AI summaries
Generate summaries to identify key moments for highlights
Search
Search transcripts to find moments worth highlighting
User guide
Detailed guide for creating effective highlights