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

  1. Install yt-dlp, ffmpeg and whisper.cppyt-dlp downloads the video, ffmpeg converts the audio, whisper.cpp does the transcription.
    Terminal
    brew install yt-dlp ffmpeg whisper.cpp
  2. Download a transcription modelThe “small” model (about 490 MB) is a good balance between speed and quality.
    Terminal
    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

  1. Grab the audioReplace the address with the video's.
    Terminal
    yt-dlp -f bestaudio -o audio.m4a "https://video-address"
  2. Convert it to the expected formatwhisper.cpp works on a 16 kHz mono WAV file.
    Terminal
    ffmpeg -i audio.m4a -ar 16000 -ac 1 audio.wav
  3. Run the transcriptionThe text is shown on screen and saved to audio.wav.txt. Use -l en for English, or -l auto to detect the language.
    Terminal
    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.