Make YouTube videos readable 🎥
A modern, local-first CLI tool to extract transcripts from YouTube and transform them into concise summaries and key points.
reko is a command-line tool that converts YouTube videos into clean Markdown summaries using transcripts and Large Language Models.
Give it a video URL, a playlist, or a file containing multiple URLs, and reko will fetch the transcript, summarize the content in manageable chunks, and generate a readable Markdown document with a summary and optional key points.
It’s designed to be simple, fast, and automation-friendly, making it easy to extract useful information from long, informational videos.
By default, reko is local-first and privacy-friendly when used with Ollama, while still supporting paid cloud models when needed.
- Generate clean Markdown summaries with optional key points.
- Summarize a single video, a playlist, or a batch of URLs.
- Optimized for Small Language Models (SLMs), which are often sufficient for high-quality summarization.
- Works with Ollama and cloud providers via APIs.
- Multi-language summaries: uses native transcripts when available, with automatic fallback and translation.
- Handles long videos via transcript chunking.
- Skips reprocessing when a summary already exists (with an option to force regeneration).
At a high level, reko follows a simple pipeline:
- Resolve the input target (video, playlist, or file).
- Fetch the YouTube transcript in the requested language, with fallback and translation when needed.
- Split the transcript into word-based chunks.
- Summarize each chunk independently.
- Merge chunk summaries into a coherent final result.
- Output a Markdown file and/or print to stdout.
- Optionally extract key points from the generated summary.
This approach allows reko to scale smoothly from short clips to multi-hour videos.
- Python 3.10+
- An LLM endpoint:
- Ollama (local): install Ollama and pull the model you want to use.
- Hosted APIs (for example
openai/...): configure the required API keys in your environment. When using non-local providers, the required environment variables must be configured according to the supported provider of the model which can be found here.
pip install reko-ytShow available commands:
reko --help
reko summarize --helpNote
Small Language Models are a great default for most summarization tasks.
Summarize a single YouTube video (prints and saves by default):
reko summarize 'https://www.youtube.com/watch?v=eMlx5fFNoYc' 'ollama/llama3.2:3b'
reko summarize 'https://www.youtube.com/watch?v=eMlx5fFNoYc' 'openai/gpt-5-nano'For OpenAI GPT-5 models, reko uses the Responses API and maps --max-tokens to
OpenAI's completion-token limit. GPT-5 reasoning models only support the default
sampling temperature, so custom --temperature values are ignored for those
models. You can tune reasoning cost/latency with:
reko summarize 'https://www.youtube.com/watch?v=eMlx5fFNoYc' \
'openai/gpt-5-nano' \
--reasoning-effort lowGenerate key points only, in Italian, without saving to disk:
reko summarize 'https://www.youtube.com/watch?v=eMlx5fFNoYc' \
'ollama/llama3.2:3b' \
--length short \
--language it \
--key-points-only \
--print-onlySummarize a playlist or a batch of URLs:
reko summarize 'https://www.youtube.com/playlist?list=PL908547EAA7E4AE74' 'ollama/llama3.2:3b'
reko summarize urls.txt 'ollama/llama3.2:3b'Warning
When processing playlists or large batches, YouTube may temporarily rate-limit your IP.
Using a proxy is recommended for high-volume usage.
Use a remote Ollama instance:
reko summarize 'https://www.youtube.com/watch?v=eMlx5fFNoYc' 'ollama/llama3.2:3b' --host 'http://YOUR_OLLAMA_HOST:11434'Start a local web page that can summarize a YouTube URL and render the Markdown:
reko serveThen open http://127.0.0.1:8000 in your browser.
Options:
reko serve --host 127.0.0.1 --port 8000
reko serve --host 0.0.0.0 --port 8000 # expose on your LANNotes:
- The web UI supports single video URLs (no playlists/batch files).
MIT. See LICENSE.
