Skip to main content

Prerequisites

You need three programs:

  • yt-dlp downloads the media and accompanying information.
  • ffmpeg joins separate video and audio streams and can remux files.
  • A supported JavaScript runtime lets yt-dlp handle YouTube's current player. Deno is the recommended default.

Use a currently supported version of Windows, macOS, or Linux. Commands in this guide are shown for PowerShell and POSIX shells such as Bash or Zsh.

Install yt-dlp​

Prefer one of the methods in the official yt-dlp installation guide. These examples keep the tool easy to update.

Windows​

The simplest route is winget:

winget install yt-dlp.yt-dlp
winget upgrade yt-dlp.yt-dlp

macOS​

With Homebrew:

brew install yt-dlp
brew upgrade yt-dlp

Linux​

The standalone release is consistent across distributions. Install it in your own binary directory—no system-wide sudo pip required:

mkdir -p "$HOME/.local/bin"
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp \
-o "$HOME/.local/bin/yt-dlp"
chmod a+rx "$HOME/.local/bin/yt-dlp"

Ensure $HOME/.local/bin is on your PATH. Your distribution package or pipx install yt-dlp are also reasonable choices, but distribution releases can lag behind upstream.

Install ffmpeg and Deno​

Follow the ffmpeg setup for your operating system. Install Deno from its official installation page, or use your operating system's package manager if it offers a current release.

Verify everything​

Open a new terminal after installing, then run:

yt-dlp --version
ffmpeg -version
deno --version

Each command should print a version instead of “command not found” or “not recognized.” If it does not, see Troubleshooting.

Keep the tools current​

Video sites change without notice. If a download that worked yesterday suddenly fails, update yt-dlp before changing your command:

yt-dlp -U

Package-managed installations should be updated through the same package manager instead. For example, use winget upgrade, brew upgrade, or your Linux distribution's update command.