YouTube Talker
Chat with any video instead of watching it.
An AI web application that turns any YouTube video into a searchable conversation. Paste a link, ask questions in plain language, and get answers grounded in the video's transcript.
- Attribution
- Independent Project
- Period
- 2025
- Category
- AI & Automation
45m → 30s
Video review time
01The challenge
Long-form video — from one to six-plus hours — is slow to review. Finding a single answer can mean scrubbing through an entire recording.
02The solution
A Flask application that pulls the video's transcript (or transcribes the audio with Whisper when none exists), indexes it in a FAISS vector store, and answers questions with retrieval-grounded responses.
03Key features
- 01
Works with any YouTube video, with or without published captions
- 02
Whisper audio transcription fallback with multi-language support
- 03
Transcript chunking and FAISS vector indexing
- 04
Grounded, context-aware answers to free-form questions
- 05
Automatic failover between LLM providers (Google Gemini and Groq)
- 06
Deployment configurations for Docker, Render, Railway and Vercel
04Engineering approach
How it's built.
- Flask
- LangChain
- Whisper
- Google Gemini
- Groq
- FAISS
- HuggingFace embeddings
- Docker
- 01
Transcript retrieval tries the video's published captions first and only falls back to downloading and transcribing the audio with Whisper when needed — keeping the common path fast.
- 02
Both embeddings and generation have fallbacks: Google embeddings fall back to HuggingFace sentence-transformers, and Gemini and Groq (Llama 3.1) fail over to each other.
- 03
Transcripts are split into overlapping chunks (1,000 characters with a 200-character overlap) before indexing, so answers keep their surrounding context.
05Project gallery
Inside the system.
Architecture views drawn from the project's documented design and its public source code.
System view · architecture from verified project notes
From a URL to grounded answers.
Captions first, transcription only when needed — then retrieval-grounded answers with provider failover.
- 0102
YouTube URL
Any public video
- 0203
Transcript
Captions, or Whisper when none exist
- 0304
Chunk & embed
Overlapping chunks, Gemini or HF embeddings
- 0405
FAISS index
Vector store per video
- 0506
Retrieve context
Relevant passages for each question
- 06
Answer
Gemini ⇄ Groq with automatic failover
Key design decisions
- Fast path first: published captions before audio transcription.
- Provider fallbacks at both the embedding and generation steps.
- Overlapping chunks so retrieved passages keep their context.
app.py Flask entrypoint
services/
├── youtube_service.py captions + transcription fallback
├── audio_transcription_service.py Whisper transcription
└── rag_service.py chunking, FAISS, LLM failover
templates/index.html web interface
Dockerfile · render.yaml · railway.json · vercel.json06Outcome
What it delivered.
A real-time chat experience over long-form video content, cutting the time to find an answer from roughly 45 minutes of review to about 30 seconds.
- Video review time per video
- 45m → 30s
As published in the founder's portfolio. No figures on this page are estimates or projections.
07Project attribution
Independent ProjectAn independent project designed and built by our founder, Arslan Arshad. It is not a client engagement.
Sources: Founder portfolio (opens in a new tab) · Repository README & source (opens in a new tab)