Master Video Downloads on macOS: Right-Click Any URL with yt-dlp & Automator

Introduction

Video downloading on macOS can be frustrating. iTubeGo requires clicking through dialogs; other tools are bloated or unreliable. But what if you could simply right-click on any URL and download it instantly to your Downloads folder?

This guide walks you through setting up a seamless workflow using yt-dlp (the maintained successor to youtube-dl), Automator, and a Quick Action. You'll support 1,000+ websites including YouTube, Vimeo, Twitter, Instagram, TikTok, and more. Best of all, it's free and works entirely from the command line.

By the end, you'll have a system that feels native to macOS—no app windows, no subscription fees, just pure efficiency.

What You'll Need

  • macOS 10.14 or later (Automator built-in)
  • Homebrew (free package manager for macOS)
  • yt-dlp (video/audio downloader)
  • ffmpeg (optional but strongly recommended for format handling)
  • deno (optional but recommended for YouTube)

Estimated setup time: 10–15 minutes
Difficulty level: Beginner-friendly

Step 1: Install Homebrew

If you don't have Homebrew, it takes 30 seconds to install. Open Terminal (find it via Spotlight: Cmd+Space, type "Terminal") and paste:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Press Enter and follow the prompts. When complete, verify installation:

brew --version

Step 2: Install yt-dlp

yt-dlp is the core tool that handles downloads. Install it with:

brew install yt-dlp

Verify it works:

yt-dlp --version

You should see a version number (e.g., 2025.12.08).

Step 3: Install ffmpeg (Recommended)

ffmpeg handles video re-encoding and format fixes. Many downloads will fail or use suboptimal formats without it. Install it:

brew install ffmpeg

This eliminates warnings like "ffmpeg not found" and ensures you get the best available quality.

Step 4: Install deno (Recommended for YouTube)

YouTube requires a JavaScript runtime to extract video URLs properly. deno is the easiest option:

brew install deno

This removes the "No supported JavaScript runtime" warnings you'll see when downloading YouTube videos.

Step 5: Find Your yt-dlp Installation Path

This is critical for the Automator script. Run:

which yt-dlp

Copy the output. On Apple Silicon Macs (M1, M2, M3, etc.), it's typically /opt/homebrew/bin/yt-dlp. On Intel Macs, it might be /usr/local/bin/yt-dlp. You'll need this exact path in Step 6.

Step 6: Create the Automator Quick Action

Now the magic happens. Follow these steps carefully:

6.1 Open Automator

Launch Automator (Spotlight: Cmd+Space, type "Automator").

6.2 Create a New Quick Action

  • Select File > New
  • Choose Quick Action as the document type
  • Click Choose

6.3 Configure Workflow Input

In the dropdown at the top, set:

  • Workflow receives current: text (not "files or folders")
  • in: Any application

6.4 Add Run Shell Script

  • In the left sidebar, search for "Run Shell Script"
  • Drag it to the right panel (the workflow area)
  • Change the shell dropdown from /bin/bash to /bin/zsh
  • Change "Pass input" from "to stdin" to "as arguments"

6.5 Paste the Script

Replace the yt-dlp path if needed. If your which yt-dlp output was different, update /opt/homebrew/bin/yt-dlp accordingly:

for f in "$@"
do
cd ~/Downloads
/opt/homebrew/bin/yt-dlp --restrict-filenames "$f"
done
osascript <<'END'
set dialogResult to display dialog "Download complete! Open Downloads folder?" buttons {"Yes", "Close"} default button "Yes"
if button returned of dialogResult is "Yes" then
tell application "Finder"
activate
open folder "Downloads" of home
end tell
end if
END

6.6 Save the Quick Action

  • File > Save
  • Name it Download with yt-dlp
  • Save location: default (~/Library/Services/)
  • Click Save

Step 7: Test It Out

Using Right-Click (Context Menu)

  1. Open Safari, Mail, or any app that supports text selection
  2. Copy a URL from a supported site (YouTube, Vimeo, Twitter, etc.)
  3. Right-click on the URL or selected text
  4. Look for Services submenu > Download with yt-dlp
  5. A notification dialog will appear when done; click Yes to open your Downloads folder

Direct Terminal Test (Optional)

To test before using the Quick Action, try this in Terminal:

cd ~/Downloads
yt-dlp "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

The video should download to your Downloads folder.

Step 8: Add a Keyboard Shortcut (Optional but Handy)

Want to download with a keyboard shortcut instead of hunting through menus? Here's how:

  1. Open System Settings (Apple menu > System Settings)
  2. Click Keyboard in the sidebar
  3. Scroll down and click Keyboard Shortcuts button
  4. In the left panel, select Services
  5. Scroll to find Download with yt-dlp (under "General" or "Text")
  6. Click the field next to it
  7. Press your desired key combo (e.g., Cmd+Opt+Y)
  8. Close System Settings

Now, anywhere you can select text, press your shortcut to download instantly.

Bonus: Safari Share Sheet Integration

Note: Unfortunately, macOS doesn't allow custom Quick Actions to appear directly in Safari's native Share menu. However, you have two workarounds:

Workaround 1: Use Shortcuts App (macOS 12+)

Apple's built-in Shortcuts app integrates with Safari's Share menu natively:

  1. Open Shortcuts app (Applications > Shortcuts)
  2. Click + (Create Shortcut)
  3. Search for and add "Open URLs" action
  4. In the workflow, add a "Run Shell Script" action and paste:
    /opt/homebrew/bin/yt-dlp --restrict-filenames "$@"
  5. Click the three dots > Add to Share Menu
  6. Name it and save
  7. Now it appears in Safari's Share menu

Workaround 2: Browser Extension (Safari)

Use a Safari browser extension that sends URLs to Terminal:

  • Search the Mac App Store for "Open in Terminal" or similar
  • Some let you pipe output to shell commands

For most users, the right-click Quick Action is sufficient and faster.

Troubleshooting

❌ "No such file or directory: /opt/homebrew/bin/yt-dlp"

Run which yt-dlp again and update the path in your Automator script. Your path might be different.

⚠️ "WARNING: ffmpeg not found"

Run brew install ffmpeg. Without it, some videos won't download or will use poor formats.

⚠️ "WARNING: No supported JavaScript runtime"

Run brew install deno. This fixes YouTube extraction.

❌ "zsh: command not found: yt-dlp"

Your shell isn't finding yt-dlp. Use the full path (/opt/homebrew/bin/yt-dlp) instead of just yt-dlp in the script.

❌ Download works in Terminal but not in Automator

Ensure you're using the correct full path from which yt-dlp. Also, make sure you changed the shell to /bin/zsh.

What Sites Can You Download From?

yt-dlp supports 1,000+ sites. Here are the most popular:

Category Sites
Video YouTube, Vimeo, Dailymotion, Twitch, Bilibili
Social Media Instagram, TikTok, Twitter/X, Facebook, Reddit
Music SoundCloud, Bandcamp, Spotify (via workaround)
Streaming Crunchyroll, BBC iPlayer, PBS, Hulu (via workaround)
Other Pornhub, xHamster, Tumblr, Imgur, and 900+ more

For a complete list, check yt-dlp's GitHub supportedsites.md.

Pro Tips

1. Download Audio Only

Edit your Automator script to add -x --audio-format mp3:

/opt/homebrew/bin/yt-dlp -x --audio-format mp3 --restrict-filenames "$f"

2. Custom Filename Patterns

Change the script to use custom filenames. For example, to include the upload date:

/opt/homebrew/bin/yt-dlp -o "~/Downloads/%(upload_date)s - %(title)s.%(ext)s" "$f"

3. Create Config File (Advanced)

For power users, create ~/.config/yt-dlp/config with your preferences:

-P ~/Downloads
--restrict-filenames
-f best
--merge-output-format mp4

Then your Automator script becomes just /opt/homebrew/bin/yt-dlp "$f" and loads these defaults.

4. Keep yt-dlp Updated

Run this monthly to stay current:

brew upgrade yt-dlp

YouTube and other sites constantly change; staying updated ensures continued compatibility.

Conclusion

You've just built a professional-grade download system in under 15 minutes. No app clutter, no subscriptions—just a clean, native macOS workflow.

Next time you find a video you want to keep, simply right-click and download. Your Downloads folder will thank you.

Questions? Run yt-dlp --help for the full command reference, or visit the yt-dlp GitHub wiki for advanced usage.