Open source · self-hosted · no GPU required

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.

YouTube Bilibili Apple Podcasts 小宇宙 RSS / RSSHub
A source-traceable summary in stream-reduce
Public 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 →
Features

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.

How it works

A losslessly source-cited pipeline

Native captions when available, otherwise transcription — then a map-reduce summary that keeps every timestamp.

01

Ingest

yt-dlp / iTunes / RSS fetch metadata and audio. Downloads are decode-verified and retried on corruption.

02

Transcribe

Use the native transcript if present, else OpenRouter Whisper with timestamped {start, end} segments.

03

Summarize

Gemini (via a LiteLLM proxy) map-reduces chunks into a structured, timestamp-cited summary.

04

Library

TL;DR, outline, key points, quotes and entities — searchable, foldered, and deep-linked to the source.

Screenshots

The actual app

Real screens from a running instance — a fast, keyboard-friendly dark UI.

Self-host

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.
Read the docs →