Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reko

Make YouTube videos readable 🎥

A modern, local-first CLI tool to extract transcripts from YouTube and transform them into concise summaries and key points.

License: MIT PyPI version Python 3.10+

✨ What is reko?

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.

Example of a Markdown summary generated by reko

🚀 Features

  • 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).

🧠 How it works

At a high level, reko follows a simple pipeline:

  1. Resolve the input target (video, playlist, or file).
  2. Fetch the YouTube transcript in the requested language, with fallback and translation when needed.
  3. Split the transcript into word-based chunks.
  4. Summarize each chunk independently.
  5. Merge chunk summaries into a coherent final result.
  6. Output a Markdown file and/or print to stdout.
  7. Optionally extract key points from the generated summary.

This approach allows reko to scale smoothly from short clips to multi-hour videos.

📦 Installation

Prerequisites

  • 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.

Install from PyPI

pip install reko-yt

⚡ Quick start

Show available commands:

reko --help
reko summarize --help

Note

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 low

Generate 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-only

Summarize 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'

🌐 Local web UI

Start a local web page that can summarize a YouTube URL and render the Markdown:

reko serve

Then 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 LAN

Notes:

  • The web UI supports single video URLs (no playlists/batch files).

📄 License

MIT. See LICENSE.

About

Make YouTube videos readable. Local-first Markdown summaries with Ollama, with cloud providers support.

Topics

Resources

Stars

64 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages