Summarize
Summarize or extract text/transcripts from URLs, podcasts, YouTube videos, and local files.
Tags: summarization, youtube, transcription, url, ai
Category: AI
Use Cases
- YouTube video transcription: get full text from any video with captions
- Article summarization: drop a URL, get a clean summary
- Podcast transcription: extract text from podcast episodes for notes
- Content curation pipeline: blogwatcher → summarize → notify
- Research: extract and summarize multiple papers/articles for comparison
- Meeting recording transcription: process local audio/video files
Tips
- Use `--extract-only` for deterministic text extraction without AI summarization
- Add `--timestamps` for YouTube/podcast transcripts to get segment-level timings
- Use `--json` output for automation pipelines: `summarize https://example.com --json | jq .text`
- Pair with blogwatcher for automated content monitoring: detect → extract → summarize → notify
- Use local Whisper (`--whisper-model medium`) for private transcription without API calls
- The Chrome extension is great for quick summarization while browsing — install from summarize.sh
- Cache saves API calls — repeated URLs return cached results instantly
- Use `--model` flag to pick the best model for your content type (long articles → Gemini for context window)
Known Issues & Gotchas
- AI summarization requires an LLM API key (OpenAI, Anthropic, or Google) — extraction is free
- YouTube transcript extraction may fail if the video has no captions — falls back to yt-dlp audio download + Whisper
- yt-dlp must be installed for YouTube fallback transcription: `brew install yt-dlp`
- Local Whisper transcription requires significant CPU/GPU — slow on older machines
- Some websites block scraping — you may get incomplete extractions from heavily protected sites
- Podcast transcription requires the RSS feed URL, not just the podcast name
- Cache is per-URL — clear with `summarize cache clear` if you need fresh extraction
- Gemini audio/video transcription requires a Google API key and may have file size limits
Alternatives
- yt-dlp + Whisper (manual)
- Fabric (danielmiessler)
- Reader API (Jina)
- Trafilatura (Python)
- Whisper CLI (standalone)
Community Feedback
Step 1: great CLI. Step 2: Chrome Extension. Get Summarize: runs local/free/paid models. Any page: YouTube, podcasts, articles. No transcript? Local Whisper.
— Twitter/X (steipete)
YouTube Summarizer: Extracts and summarizes YouTube video transcripts to help generate descriptions, headlines, and social copy. One of the top 10 OpenClaw skills.
— Composio Blog
Peter Steinberger discusses how summarize was built to be the content extraction layer for OpenClaw — deterministic text extraction that any AI model can then process.
— Lex Fridman Podcast Transcript
OpenClaw is a game changer. Runs on my own machine, where I can control network traffic. I can review the Agent skills it uses — like summarize for content extraction.
— Reddit r/vibecoding
Configuration Examples
Basic URL extraction and summarization
# Extract text only (no AI)
summarize https://example.com/article --extract-only
# Summarize with default model
summarize https://example.com/article
# JSON output for automation
summarize https://example.com/article --json | jq '{title: .title, text: .text[:200]}'YouTube and podcast transcription
# YouTube transcript with timestamps
summarize https://youtube.com/watch?v=xxx --timestamps
# Podcast episode from RSS
summarize https://feeds.example.com/podcast.xml --episode 1
# Local video file
summarize ./meeting-recording.mp4 --whisper-model mediumModel selection and caching
# Use a specific model
summarize https://example.com --model gpt-4o
# Use Gemini for long content
summarize https://long-article.com --model gemini-2.0-flash
# Clear cache for a URL
summarize cache clear https://example.comInstallation
brew install steipete/tap/summarizeHomepage: https://summarize.sh
Source: bundled