How kowshikkodumuri/video-agent works
Video-Agent turns a YouTube URL or local audio/video file into a meeting transcript, then generates a title, summary, action items, decisions, and open questions. Users can also ask transcript-grounded questions through a retrieval-augmented chat. The Streamlit app and CLI are separate entry points for this workflow. The sampled code shows the transcription, analysis, and retrieval calls; some UI and supporting modules are only partially represented in the excerpts.
Main entry points: app.py Streamlit app · main.py CLI pipeline · transcriber.py Transcription routing · rag_engine.py Question answering
Components 19
User interfaces
- Streamlit app
app.py - CLI pipeline
main.py
Audio and transcription
- Input processing
utils/audio_processor.py - YouTube audio download
utils/audio_processor.py - Audio conversion and chunks
utils/audio_processor.py - Transcription routing
core/transcriber.py - Whisper transcription
core/transcriber.py - Sarvam transcription
core/transcriber.py
Meeting analysis
- Title generation
core/summarize.py - Transcript summary
core/summarize.py - Meeting findings
core/extractor.py
Transcript Q&A
- Question answering
core/rag_engine.py - Vector indexing
core/vector_store.py - Chroma store
core/vector_store.py - Text embeddings
core/vector_store.py
Other components
- User
- Mistral model
- YouTube
- Sarvam API
Connections 32
- User → Streamlit app: submits source
- User → CLI pipeline: submits source
- Streamlit app → Input processing: processes source
- CLI pipeline → Input processing: processes source
- Input processing → YouTube audio download: downloads URL audio
- YouTube audio download → YouTube: fetches audio
- Input processing → Audio conversion and chunks: converts and chunks
- YouTube audio download → Audio conversion and chunks: provides audio
- Audio conversion and chunks → Transcription routing: provides chunks
- Transcription routing → Whisper transcription: routes English
- Transcription routing → Sarvam transcription: routes Hinglish
- Sarvam transcription → Sarvam API: sends audio pieces
- Transcription routing → Streamlit app: returns transcript
- Transcription routing → CLI pipeline: returns transcript
- Streamlit app → Title generation: generates title
- Streamlit app → Transcript summary: summarizes transcript
- Streamlit app → Meeting findings: extracts findings
- CLI pipeline → Title generation: generates title
- CLI pipeline → Transcript summary: summarizes transcript
- CLI pipeline → Meeting findings: extracts findings
- Title generation → Mistral model: generates text
- Transcript summary → Mistral model: generates text
- Meeting findings → Mistral model: generates text
- Streamlit app → Question answering: builds and queries
- CLI pipeline → Question answering: builds and queries
- Question answering → Vector indexing: builds index
- Vector indexing → Text embeddings: embeds chunks
- Vector indexing → Chroma store: writes chunks
- Question answering → Chroma store: retrieves context
- Question answering → Mistral model: answers question
- User → Streamlit app: asks question
- User → CLI pipeline: asks question