How cobanov/websum works
websum is a Python library for summarizing web pages and YouTube videos, with translation, pluggable model backends, a CLI, and a Gradio UI. The main flow accepts a URL, detects its source, loads page content or a video transcript, then summarizes it; long transcripts are chunked before map-reduce summarization. The same Summarizer API powers the CLI and UI. Edges reflect calls visible in sampled source or capabilities explicitly documented in the README; no storage layer is present.
Main entry points: summarizer.py Summarizer · cli.py CLI · backends.py Backend protocol · __init__.py Public API exports
Components 19
Summarization core
- Summarizer
src/websum/summarizer.py - Prompt templates
src/websum/prompts.py - Domain errors
src/websum/exceptions.py - Version metadata
src/websum/__version__.py - Public API exports
src/websum/__init__.py
Content ingestion
- YouTube detection
src/websum/loaders.py - Web page loader
src/websum/loaders.py - Transcript loader
src/websum/loaders.py
Model backends
- Backend protocol
src/websum/backends.py - Ollama backend
src/websum/backends.py - OpenAI backend
src/websum/backends.py
Other components
- User
- Web pages
- YouTube transcripts
- Custom backend
- Ollama service
- OpenAI service
Connections 23
- User → CLI: runs commands
README.md - User → Gradio UI: uses browser UI
README.md - User → Summarizer: calls API
README.md - CLI → Summarizer: creates and calls
src/websum/cli.py - CLI → Ollama backend: selects backend
src/websum/cli.py - CLI → OpenAI backend: selects backend
src/websum/cli.py - CLI → Gradio UI: launches
src/websum/cli.py - Gradio UI → Summarizer: calls summarize and translate
src/websum/webui.py - Summarizer → YouTube detection: detects source
src/websum/summarizer.py - Summarizer → Web page loader: loads page
src/websum/summarizer.py - Summarizer → Transcript loader: loads transcript
src/websum/summarizer.py - Web pages → Web page loader: provides page
README.md - YouTube transcripts → Transcript loader: provides transcript
README.md - Summarizer → Prompt templates: uses templates
src/websum/summarizer.py - Summarizer → Backend protocol: builds model
src/websum/summarizer.py - Ollama backend → Backend protocol: implements
src/websum/backends.py - OpenAI backend → Backend protocol: implements
src/websum/backends.py - Custom backend → Backend protocol: satisfies protocol
README.md - Ollama backend → Ollama service: connects to
src/websum/backends.py - OpenAI backend → OpenAI service: calls model service
README.md - Public API exports → Summarizer: re-exports API
src/websum/__init__.py - Public API exports → Backend protocol: re-exports API
src/websum/__init__.py - Public API exports → Version metadata: re-exports version
src/websum/__init__.py