TubeBrief is a web app that helps users quickly generate summaries of any public YouTube video. It fetches video transcripts using a Transcript API (via RapidAPI) and then uses Gemini AI to generate a concise, readable summary. All summaries are saved into the database, so you can browse previous summaries anytime.
The goal is simple: consume valuable video content in less time, with less cognitive load.
- Explore the live version of TubeBrief here:
Follow the steps below to set up TubeBrief and start generating summaries.
- Visit:
👉 https://rapidapi.com/solid-api-solid-api-default/api/youtube-transcript3 - Sign in to RapidAPI.
- Subscribe to the API (free plan includes 100 requests per month).
- Copy your API key.
- Log in to TubeBrief, go to Settings, and paste the key there.
- Visit Google AI Studio:
👉 https://aistudio.google.com/api-keys - Create a new API key.
- Copy the key.
- Paste it into TubeBrief → Settings.
✅ Setup Complete! Great job 👏
TubeBrief is now ready. You can start generating video summaries right away.
- 📅 December 2025
- To save time by consuming educational YouTube videos without watching the full video
- To improve my overall productivity
- Because I love building software that makes life easier and truly helps people.
This is a tool I personally use on a regular basis.
- 🔐 Secure authentication with Clerk — saves summary history in the database
- 🌙 Dark & Light mode support for eye comfort
- 🤖 AI-powered summaries using Gemini, presented in a clean and focused UI
- 📊 Dashboard with recent summaries and usage statistics
- ⚙️ Settings to manage API keys (stored only in your browser)
- 🌍 Multi-language support — generate summaries in any language
- TypeScript
- Next.js 16 (App Router with CacheComponents ~ PPR)
- Clerk
- Tailwind CSS
- shadcn/ui
- MongoDB
- React Hook Form
src
├── app
│ ├── (private) # Private routes
│ ├── (public) # Public routes
│ ├── api
│ │ └── webhooks
│ │ └── clerk
│ │ └── register
│ │ └── route.ts
│ ├── favicon.ico
│ ├── globals.css
│ ├── layout.tsx
│ └── not-found.tsx
├── components
│ ├── private # Components only for private routes
│ ├── shared # Shared/common components used across the app
│ ├── ui # shadcn UI components
│ └── core # Miscellaneous/core components
├── lib # Server actions, helpers, and utilities
│ ├── actions
│ │ └── summary.action.ts
│ ├── api
│ │ ├── getSummary.ts
│ │ └── getTranscript.ts
│ ├── constants
│ │ ├── METADATA.ts
│ │ └── index.ts
│ ├── database
│ │ ├── connect-db.ts
│ │ ├── user.model.ts
│ │ └── video-summary.model.ts
│ └── utils
│ └── index.ts
├── mdx-components.tsx
└── proxy.ts# clone the repository
git clone https://github.com/fazle-rabbi-dev/tube-brief.git
# move into the project directory
cd tube-brief
# install dependencies
npm install
# rename the sample environment file
# env.local.example -> .env.local
# and fill in your own credentials
# run the app locally
npm run devContributions are welcome and appreciated!
If you have ideas to improve this project, feel free to get involved.
- 🐞 Report bugs or unexpected behavior
- 💡 Suggest new features or improvements
- 🛠️ Submit pull requests for fixes or enhancements
- Fork the repository
- Create a new branch (
feature/your-feature-name) - Make your changes and commit with clear messages
- Push to your fork
- Open a pull request with a brief explanation
Please make sure your code follows the existing style and conventions.
Even small contributions matter. If this project helped you, consider giving it a ⭐️




