Turn videos & podcasts into
source-traceable summaries
stream-reduce ingests YouTube, Bilibili, Apple Podcasts, 小宇宙 and any RSS feed, transcribes them, and writes timestamped summaries that link back to the exact moment in the source — all kept in a searchable, folder-organized library.
Read the summaries — or request one
A read-only mirror of the library is published for everyone. Browse and search existing summaries, and suggest new videos or podcasts to add.
Browse the library
Read every summary with its timestamped outline, key points and quotes — searchable by keyword, all deep-linked back to the original source. No account needed.
Open the library →Request a summary
Want something summarized? Open a GitHub issue with the link. The maintainer reviews requests and may add them to the summarization queue — once processed, it appears on the mirror.
Request on GitHub →Everything you need to read instead of watch
From a flaky-CDN-proof download pipeline to source-cited summaries and a tidy library.
Many sources
YouTube, Bilibili, Apple Podcasts, 小宇宙, and any RSS / RSSHub feed — paste a link or a whole playlist.
Source-traceable
Every claim carries an [HH:MM:SS] marker that deep-links straight to the moment in the original video.
Folders & library
Organize summaries into folders, favorite, archive, search, and sort by views, likes, date or length.
Subscriptions
Poll feeds and channels on a schedule and auto-summarize new episodes as they appear.
Queue & stats
A live processing queue and a dashboard of time, requests, tokens and cost per pipeline stage.
Multilingual
Output follows the source: Chinese-dominant talks are summarized in 简体中文 (English terms preserved), everything else in its own language.
Robust downloads
Decode-verified downloads with automatic clean re-fetch survive flaky CDNs — no more silently truncated audio.
Self-hosted
FastAPI + SQLite + Redis and a React UI in one Docker Compose stack. Runs entirely on a NAS — no GPU.
A losslessly source-cited pipeline
Native captions when available, otherwise transcription — then a map-reduce summary that keeps every timestamp.
Ingest
yt-dlp / iTunes / RSS fetch metadata and audio. Downloads are decode-verified and retried on corruption.
Transcribe
Use the native transcript if present, else OpenRouter Whisper with timestamped {start, end} segments.
Summarize
Gemini (via a LiteLLM proxy) map-reduces chunks into a structured, timestamp-cited summary.
Library
TL;DR, outline, key points, quotes and entities — searchable, foldered, and deep-linked to the source.
The actual app
Real screens from a running instance — a fast, keyboard-friendly dark UI.





Up and running in minutes
One Docker Compose stack pulls a prebuilt multi-arch image — nothing to build on your NAS.
# clone & configure git clone https://github.com/hmumixaM/stream-reduce cd stream-reduce cp .env.example .env # add your API keys # pull the prebuilt image & launch docker compose pull docker compose up -d ➜ open http://localhost:8010
- No GPU. Transcription via OpenRouter, summaries via Gemini behind a LiteLLM proxy.
- Multi-arch image (amd64 + arm64) — ideal for a Synology / low-power NAS.
- Your data stays yours. SQLite + retained media live in a local volume.
- Bilibili-ready. Drop a cookies file in
./cookies/to unlock gated streams.