- Tools
- yt-dlp, whisper.cpp, ffmpeg
- Price
- Free (open source)
- Time
- 10 min the first time
- Level
- Terminal, beginner
I use it for research: pulling what a video says so I can skim it, quote it or have AI summarise it. Everything happens in the Mac Terminal, with Homebrew to install the tools.
Install the tools
- Install yt-dlp, ffmpeg and whisper.cppyt-dlp downloads the video, ffmpeg converts the audio, whisper.cpp does the transcription.
brew install yt-dlp ffmpeg whisper.cpp - Download a transcription modelThe “small” model (about 490 MB) is a good balance between speed and quality.
mkdir -p ~/.local/share/whisper curl -L -o ~/.local/share/whisper/ggml-small.bin \ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin
Transcribe a video
- Grab the audioReplace the address with the video's.
yt-dlp -f bestaudio -o audio.m4a "https://video-address" - Convert it to the expected formatwhisper.cpp works on a 16 kHz mono WAV file.
ffmpeg -i audio.m4a -ar 16000 -ac 1 audio.wav - Run the transcriptionThe text is shown on screen and saved to
audio.wav.txt. Use-l enfor English, or-l autoto detect the language.whisper-cli -m ~/.local/share/whisper/ggml-small.bin -l auto -otxt -f audio.wav
Good to know
- Automatic transcription makes mistakes, especially on names and brands: check before you quote.
- The “small” model is fine for short videos. For a long or noisy recording, try “medium”, which is slower and heavier.
- For your own meetings or videos, skip yt-dlp and convert your file directly with ffmpeg.
Play fair. Only download content you are allowed to use: platform terms and copyright apply. For personal use (reading, summarising), keep the transcript to yourself.
Sources
Want it to run on its own, say every morning on a channel's new videos? That is the kind of automation I set up.