A simple tool that takes a YouTube video, extracts the audio, transcribes it, and generates a short summary of the content.
The goal is to quickly understand long videos without watching them fully.
- takes a YouTube link as input
- downloads audio from the video
- converts speech to text using Whisper
- generates a summary using an NLP model (BART)
- Python 3.10+
- FFmpeg installed and added to PATH
- Internet connection (for downloading models the first time)
git clone https://github.com/RSlucas/video-summarizer.git
cd video-summarizerpython -m venv venv
Activate it:
venv\Scripts\activatepip install -r requirements.txtRequired for audio processing.
Download here: https://ffmpeg.org/download.html
Add it to PATH and check:
ffmpeg -version
Usage
Run the program:
python main.py
Then paste a YouTube link:
https://youtu.be/xxxx
Wait for the transcript and summary output.
How it works
yt-dlp downloads audio from YouTube
Whisper converts speech into text
a transformer model summarizes the transcript
Project structure
video-summarizer/
│
├── main.py
├── downloader.py
├── transcribe.py
├── summarize.py
├── requirements.txt
└── .gitignore
Known issues
-- First run is slow because models are downloaded
-- Runs on CPU by default (slower but stable)
-- FFmpeg must be installed correctly or audio extraction will failrun on cmd: streamlit run app.pyWeb UI (Streamlit or React frontend)
Better summarization using LLM APIs or larger models
Export results to PDF or Markdown
Highlight key points instead of full summaryNotes
This is a learning project to explore:
- speech-to-text systems
- NLP summarization models
- YouTube automation pipelines