You’re using the Z shell (zsh), which has strict globbing (filename expansion) rules. Characters like ?, !, *, and [] are treated specially. In your YouTube URL (https://www.youtube.com/watch?v=rNg-cx5OiEQ), the ! can cause unexpected behavior, leading to the zsh: no matches found error.

Solution:

To prevent zsh from interpreting special characters in the URL, always enclose URLs in quotes. You can use either single (' ') or double (" ") quotes. Here’s how you can modify your commands:

Example Commands:

  • Basic Download:bashCopyyt-dlp "https://www.youtube.com/watch?v=rNg-cx5OiEQ" Or using single quotes:bashCopyyt-dlp 'https://www.youtube.com/watch?v=rNg-cx5OiEQ'
  • Specifying Formats:bashCopyyt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best' "https://www.youtube.com/watch?v=rNg-cx5OiEQ"
  • Downloading Audio Only:bashCopyyt-dlp -x "https://www.youtube.com/watch?v=rNg-cx5OiEQ"

Alternative: Escaping Special Characters

If you prefer not to use quotes, you can escape special characters with a backslash (\):

bashCopyyt-dlp https://www.youtube.com/watch\?v\=rNg-cx5OiEQ

However, using quotes is generally more straightforward and less error-prone.