Skip to main content

Video Summarizer

Video summarizer demo

Documentation · GitHub stars

Local-first, multi-source video summarization for YouTube, social platforms, cloud drives, and local files. Works with any OpenAI-compatible LLM, supports an optional vision path, and includes NotebookLM-style workflows.

Not steipete/summarize. This project is a self-hosted video pipeline with transcript caching, Cobalt fallback, a Streamlit workspace, and an agent skill. steipete/summarize is a generic URL clipper.

Bring your own API keys. Configuration lives in summarizer.yaml and .env. Full documentation: summarize.martino.im.

Features

  • 11+ sources — YouTube, Instagram, TikTok, X/Twitter, Reddit, Facebook, Google Drive, Dropbox, and local files
  • Any LLM — OpenAI, Groq, Gemini, Ollama, OpenRouter, NVIDIA, Perplexity, LiteLLM, and other OpenAI-compatible endpoints
  • Two modes — Transcript-based summarization (default) or visual mode with vision-capable models
  • Summary styles — Q&A, distillation, fact-checking, tutorials, Mermaid diagrams, essays, and custom prompts via summarizer/prompts.json
  • Multiple interfaces — CLI, Streamlit UI, HTTP API, Docker, Raycast extension, and agent skill
  • Transcript cache — Reuse cached transcripts across runs; optional Cobalt sidecar for yt-dlp fallbacks

Requirements

  • Python 3.7+
  • ffmpeg on PATH
  • At least one LLM API key in .env
  • Cobalt (optional, included in Docker Compose) for URLs that yt-dlp cannot handle

Quick Start

Set an OpenAI-compatible API key in .env. Groq (GROQ_API_KEY) offers a free tier; OPENAI_API_KEY works with --provider openai.

pip install martino-summarize
summarizer --init-config
echo "GROQ_API_KEY=your_key_here" > .env
summarizer --source "https://www.youtube.com/watch?v=arj7oStGLkU"

Summaries are saved to summaries/watch_YYYYMMDD_HHMMSS.md.

Optional extras:

pipx install "martino-summarize[server]"   # HTTP API
pipx install "martino-summarize[all]"      # server + whisper + litellm

Docker

git clone https://github.com/martinopiaggi/summarize.git
cd summarize
cp summarizer.example.yaml summarizer.yaml   # first time only
echo "GROQ_API_KEY=your_key_here" > .env     # or OPENAI_API_KEY, etc.
docker compose up -d

Open http://localhost:8501, paste a URL, and summarize.

Pre-built image:

docker pull ghcr.io/martinopiaggi/summarize:latest

docker-compose.yml mounts .env, summarizer.yaml, and ./summaries/ for persistence. Cobalt runs as a sidecar for TikTok, Instagram, and other yt-dlp fallbacks.

Interfaces

Interface Command
Streamlit GUI docker compose up -d → http://localhost:8501
CLI summarizer --source <source>
HTTP API summarizer serve → http://localhost:8000/docs
Docker docker compose up -d
Agent Skill .agent/skills/summarize/SKILL.md
Raycast extensions/raycast-summarize/

How It Works

  • Transcript path (default): downloads audio or video, transcribes with Whisper or captions, caches the transcript, then summarizes with an LLM.
  • Visual path (--visual): sends the video directly to a vision-capable model, skipping transcription. Uses the same prompts, provider config, and .env keys as the transcript path. Supports base64 chunks (default) and url passthrough for YouTube.

Full pipeline diagram: summarize.martino.im/how-it-works

Troubleshooting

Issue Resolution
yt-dlp or platform errors Ensure Cobalt is running (docker compose includes it) or set COBALT_BASE_URL
Missing API key Add the provider key to .env (see summarizer.example.yaml for provider names)
No config file Run summarizer --init-config or pass --base-url and --model with --no-config

Full guide: summarize.martino.im

Contributing

git clone https://github.com/martinopiaggi/summarize.git
cd summarize
pip install -e ".[all]"
pip install pytest
pytest tests/

See CONTRIBUTING.md.

License

MIT

Release files for martino-summarize 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for martino-summarize 0.2.1
File Size Uploaded
martino_summarize-0.2.1.tar.gz 64.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for martino-summarize 0.2.1
File Interpreter ABI Platform
martino_summarize-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 125.6 kB

Release files / martino_summarize-0.2.1.tar.gz

Download URL martino_summarize-0.2.1.tar.gz
Size 64.3 kB
Tags Source
SHA-256 checksum
How to use checksums
00f93f67697e67bf01c7d7311df9ad628c3c763459973dd35186f38d302489f8
BLAKE2b-256 checksum
How to use checksums
6d5d422256dc07f0deb4239988456e2dc8924f00d6e6089896722108c07365e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / martino_summarize-0.2.1-py3-none-any.whl

Download URL martino_summarize-0.2.1-py3-none-any.whl
Size 61.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d26151f84ce3573d8cb1d580763f36476227edf58dc9e23a496a970643c9f4a3
BLAKE2b-256 checksum
How to use checksums
e5e37a725ca62bfbc2b7b8dcee16df9650a478ad2f689911689e16f1cd10da18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page