tube-summary
Search YouTube for videos on any topic, then extract and summarize their content using subtitles.
Quick Start
Step 1: Search for Videos
When asked about a topic, search YouTube and list the top 10 results:
python3 scripts/youtube-search.py "your search query"
This returns a numbered list of videos with titles, channels, and view counts.
Step 2: User Picks a Video
The user selects one video by number (e.g., "3" for the third video).
Step 3: Download Subtitles
Extract English subtitles from the selected video using yt-dlp:
yt-dlp --write-subs --sub-langs en --skip-download "VIDEO_URL"
This creates a .en.vtt subtitle file without downloading the video.
Step 4: Process & Summarize
Use the subtitle processor to analyze and summarize:
python3 scripts/process-subtitles.py "path/to/subtitle-file.vtt"
This generates:
- Key Topics: Main subjects covered in the video
- Summary: Concise 2-3 paragraph description of content
- Timestamps: Notable moments with context
- Key Quotes: Important statements from speakers
Workflow
- Search →
youtube-search.py "<topic>"→ Display top 10 videos - User selects → e.g., "Video 5"
- Extract URL → From the search results
- Download subs →
yt-dlp --write-subs --sub-langs en --skip-download "URL" - Process →
process-subtitles.py "subtitle.vtt" - Present → Formatted summary with key points
Prerequisites
yt-dlp(install:pip install yt-dlp)requests(for YouTube search fallback)- Python 3.7+
Notes
- If YouTube search API is unavailable, the fallback uses web scraping via requests
- Subtitles may be auto-generated if not manually authored
- Some videos may not have English subtitles available
- The subtitle file is created in the same directory as yt-dlp is run
Example Usage
User: "Tell me about Rust programming language"
→ Search returns 10 videos about Rust
User: "Summarize video 3"
→ Downloads subtitles from video 3
→ Processes and returns detailed summary