Turn YouTube subscriptions into a personal newsletter. Reclaim focus in a world engineered for distraction.
Live at read.tube.
ReadTube converts the YouTube channels you follow into readable, searchable articles so you can consume videos without being pulled into the feed.
- Subscribe to channels. Point ReadTube at the YouTube channels you care about. New videos show up in your inbox, not in an autoplay queue.
- Read instead of watch. Each video is transcribed and turned into a clean, readable page — with the original video embedded for when you want it.
- Search across everything. Full-text search over transcripts lets you find the moment you remember without scrubbing a timeline.
- Annotate and save. Highlight passages and come back to them later; your subscriptions become a personal knowledge base instead of a feed.
- Skim, don't doomscroll. An inbox-style layout puts you in control of what you open and when.
YouTube is a great source of ideas and a terrible place to think. Long videos bury the substance; the homepage is optimized for the next click, not for you. ReadTube strips the video feed down to the parts you actually subscribed for and hands them back in a format built for reading.
See DEVELOPMENT.md for local development.
ReadTube self-hosts on the following stack:
- Vercel: Hosts the Next.js app, runs scheduled cron jobs, and routes LLM and embedding calls through the AI Gateway.
- Postgres: Application database (with
pgvectorfor semantic search). Any managed Postgres works. - Clerk: Authentication and user management.
- Transcript API: Transcript vendor for YouTube.
- JustOneAPI: Channel metadata and transcript vendor for Bilibili.
- Fork the repo and import it as a new Vercel project. Set the root directory to
apps/web— Vercel will detect Next.js automatically. - Provision a Postgres database (with
pgvectorenabled) and run the migrations:yarn db:deployagainst the productionDATABASE_URL. - Add the environment variables from DEVELOPMENT.md to the Vercel project (Postgres URL, Clerk keys, Transcript API key, JustOneAPI token, AI Gateway key,
CRON_SECRET).- The
CRON_SECRETcan be any random string (e.g.openssl rand -hex 32). Just make sure to set the same value in Vercel and in the.envfile for local development.
- The
- Enable the Vercel AI Gateway on the project so LLM and embedding calls route through it.
- Deploy. The cron in
apps/web/vercel.json(/api/cron/refresh-channels, every 30 min) is registered automatically.
ReadTube is licensed under the Elastic License 2.0 (ELv2).