AI-powered YouTube video summarization with smart chapter detection, multi-language support, and clickable timestamps.
Transform lengthy YouTube videos into structured, digestible summaries. YouTube Summarizer v2 automatically detects chapters and topics, generates summaries in your preferred language, and provides clickable timestamps that jump directly to video positions.
- Smart Chapter Detection - Automatically identifies chapters and topics with precise timestamps
- Multi-Language Support - Generate summaries in English, German, French, Spanish, or Italian
- Clickable Timestamps - Jump directly to any video position from the summary
- Visual Chapter Timeline - See video structure at a glance with an interactive timeline
- Full Transcript View - Access the complete transcript with clickable timestamps
- Markdown Export - Download summaries as markdown files
- Summary Caching - Summaries are cached per-user, per-video for instant access
- Permanent History - All summaries are archived and searchable
- Secure Authentication - HTTP-only cookie sessions with better-auth
- Password Recovery - Security questions for self-service password reset
- Node.js 20+ - Download
- Supadata Account - For YouTube transcript extraction
- Sign up at supadata.ai (referral link)
- Free tier: 100 credits/month
- Z.AI Account - For AI summarization (GLM-4.7)
- Sign up at z.ai (referral link)
- Pricing: Coding Plan from $3/month or API on-demand
Disclosure: The links above are referral links. Using them helps support this project at no extra cost to you.
# 1. Clone the repository
git clone https://github.com/DevRico003/youtube_summarizer.git
cd youtube_summarizer
# 2. Install dependencies
npm install --legacy-peer-deps
# 3. Configure environment
cp .env.example .env
# Generate secrets and add to .env:
openssl rand -hex 32 # For APP_SECRET
openssl rand -base64 32 # For BETTER_AUTH_SECRET
# 4. Setup database
npx prisma generate
npx prisma db push
npx prisma db seed
# 5. Run development server
npm run devFor production:
npm run build
npm start# 1. Clone the repository
git clone https://github.com/DevRico003/youtube_summarizer.git
cd youtube_summarizer
# 2. Configure environment
cp .env.example .env
# Generate secrets and add to .env:
openssl rand -hex 32 # For APP_SECRET
openssl rand -base64 32 # For BETTER_AUTH_SECRET
# 3. Run with docker-compose
docker-compose up -dThe application will be available at http://localhost:3000.
Database migrations and seeding (security questions) run automatically on first start.
| Variable | Required | Description |
|---|---|---|
APP_SECRET |
Yes | Secret key for encryption. Generate with openssl rand -hex 32 |
BETTER_AUTH_SECRET |
Yes | Secret for session signing. Generate with openssl rand -base64 32 |
BETTER_AUTH_URL |
No | Base URL for auth callbacks. Default: http://localhost:3000 |
DATABASE_URL |
No | SQLite database path. Default: file:./dev.db (auto-configured for Docker) |
Create an account with your email and password. During registration, you'll set up 3 security questions for password recovery. Each user has their own isolated data and API keys.

On first login, the setup wizard guides you through configuring:
- Paste a YouTube URL into the input field
- Select your preferred summary language
- Click "Summarize"
- Wait for the AI to process the video

- Compact View: Chapters are collapsible for easy navigation
- Full Text View: See the complete summary with all details
- Timeline: Visual representation of video chapters

Click any timestamp in the summary or transcript to open the video at that exact position.
Click the download button to export your summary as a markdown file.
Update your API keys anytime from the Settings page.
- Framework: Next.js 16 (React 19, Turbopack)
- Language: TypeScript
- Authentication: better-auth (HTTP-only cookies)
- Styling: Tailwind CSS
- Database: Prisma + SQLite
- Animations: Framer Motion
- LLM: Z.AI GLM-4.7
- Transcripts: Supadata API
- Ensure
APP_SECRETandBETTER_AUTH_SECRETare set as environment variables - Set
BETTER_AUTH_URLto your production domain - SQLite database requires persistent volume storage
- Container exposes port 3000
- Clone repository on your server
- Configure
.envwith secrets and production URLs - Run
docker-compose up -d - Configure reverse proxy (nginx/Caddy) for HTTPS
YouTube Summarizer v2 is a complete rewrite:
- Streamlined UX - Removed preferences and templates for a cleaner flow
- Transcript extraction & creation - Transcript extraction with timestamps and if no timestamps available supadata does analyse the video and create them
- Setup Wizard - Guided API key configuration
- Per-User Isolation - Each user manages their own API keys and data with better-auth state of the art auth security
- New LLM - Z.AI GLM-4.7 as primary model (more providers planned)
This project is licensed under the MIT License - see the LICENSE file for details.


