Configuration

CLI flags override everything in summarizer.yaml. Use --no-config to ignore the config file entirely.

Providers (summarizer.yaml)

Define your LLM providers and defaults. See summarizer.example.yaml for a complete starter file.

1default_provider: groq
2
3providers:
4 groq:
5 base_url: https://api.groq.com/openai/v1
6 model: openai/gpt-oss-120b
7
8 gemini:
9 base_url: https://generativelanguage.googleapis.com/v1beta/openai
10 model: gemini-3.1-flash-lite
11
12 deepseek:
13 base_url: https://api.deepseek.com/v1
14 model: deepseek-v4-flash
15
16 openrouter:
17 base_url: https://openrouter.ai/api/v1
18 model: google/gemini-3.1-flash-lite
19
20 openrouter-video:
21 base_url: https://openrouter.ai/api/v1
22 model: minimax/minimax-m3
23
24 openrouter-youtube:
25 base_url: https://openrouter.ai/api/v1
26 model: google/gemini-3.1-flash-lite
27 visual-input-mode: url
28
29 openai:
30 base_url: https://api.openai.com/v1
31 model: gpt-5.5
32
33 nvidia:
34 base_url: https://integrate.api.nvidia.com/v1
35 model: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning
36
37 perplexity:
38 base_url: https://openrouter.ai/api/v1
39 model: perplexity/sonar
40 chunk-size: 128000
41
42 litellm-anthropic:
43 base_url: litellm
44 model: anthropic/claude-sonnet-4-6
45
46defaults:
47 prompt-type: Questions and answers
48 chunk-size: 120000
49 parallel-calls: 10
50 max-tokens: 4096
51 output-language: auto
52 speed: 1.0
53 use-proxy: false
54 output-dir: summaries
55 keep-history: false
56 cache-transcript: true
57 cache-transcript-persist: false
58 visual: false
59 visual-compression: off
60 visual-chunk-seconds: auto
61 visual-chunk-overlap-seconds: 0
  • output-language: auto, none, or a human-readable name like Italian, Spanish, German, Japanese.
  • speed: Playback speed for audio preprocessing before Whisper and for visual-mode video in base64 mode. Faster transcription is cheaper on Groq (priced by audio duration) but may reduce accuracy. The API accepts values up to 10.0; the CLI accepts any positive value.
  • cache-transcript: false disables the transcript cache entirely.
  • cache-transcript-persist: true stores transcripts on disk under {output-dir}/.cache/transcripts/ (survives restarts).
  • keep-history: true persists GUI summaries to disk for the Streamlit sidebar.
  • visual-input-mode: url on a provider sends YouTube URLs directly to the model without downloading (see Visual Mode).
  • Docker: use summarizer.docker.yaml or set SUMMARIZER_KEEP_HISTORY / SUMMARIZER_CACHE_PERSIST when a YAML key is omitted.

The legacy audio-speed / audio_speed keys are no longer supported. Use speed instead.

API Keys (.env)

1# Required for Cloud Whisper transcription
2groq = gsk_YOUR_KEY
3
4# LLM providers (choose one or more)
5openai = sk-proj-YOUR_KEY
6generativelanguage = YOUR_GOOGLE_KEY
7deepseek = YOUR_DEEPSEEK_KEY
8openrouter = YOUR_OPENROUTER_KEY
9perplexity = YOUR_PERPLEXITY_KEY
10hyperbolic = YOUR_HYPERBOLIC_KEY
11NVIDIA_API_KEY = YOUR_NVIDIA_KEY
12
13# Optional: Webshare proxy credentials
14WEBSHARE_PROXY_USERNAME = YOUR_WEBSHARE_USERNAME
15WEBSHARE_PROXY_PASSWORD = YOUR_WEBSHARE_PASSWORD
16
17# Optional: yt-dlp per-platform cookie files
18INSTAGRAM_COOKIES_FILE = C:\path\to\instagram-cookies.txt
19TIKTOK_COOKIES_FILE = C:\path\to\tiktok-cookies.txt
20TWITTER_COOKIES_FILE = C:\path\to\twitter-cookies.txt
21REDDIT_COOKIES_FILE = C:\path\to\reddit-cookies.txt
22FACEBOOK_COOKIES_FILE = C:\path\to\facebook-cookies.txt
23
24# Generic fallback cookie file (used when no per-platform file is set)
25YTDLP_COOKIES_FILE = C:\path\to\cookies.txt
26
27# Optional: Instagram username/password login when cookies are not used
28INSTAGRAM_USER = YOUR_INSTAGRAM_USERNAME
29INSTAGRAM_PASS = YOUR_INSTAGRAM_PASSWORD

API Key Lookup

The app resolves API keys in this order:

  1. Explicit --api-key flag
  2. Provider api_key field in summarizer.yaml
  3. .env file matched by URL keyword (e.g., generativelanguage for Google AI Studio)
  4. .env file matched by conventional env var name (e.g., NVIDIA_API_KEY, GOOGLE_API_KEY, OPENAI_API_KEY)

If a key is missing, the error message lists all acceptable .env keys for that provider.