How to Download Videos from Any Website on Mac — The 2026 Complete Guide
If you've tried to save a video on a Mac recently, you may have noticed something: most of the advice on the internet is wildly out of date. YouTube's Jan-2026 SABR rollout broke half the popular tools, the right-click "Save video as" trick hasn't worked on modern sites for about five years, and Safari's "Show All Downloads" only catches files that were literally served as a single HTTP response — which is almost no videos anymore.
So here's a current guide. What actually works, which tool to pick depending on your situation, and the specific gotchas for YouTube, Twitter, Vimeo, Bilibili, and plain HLS streams.
The short version
If you want one answer: install shooff or Downie 4, paste the URL, and you're done. Those two are the only tools that reliably handle YouTube's current signature system without any fiddling.
If you want the free answer: install yt-dlp via Homebrew and learn two flags. That's also a complete solution. It just lives in the terminal.
Everything below is the longer explanation.
Why "Save video as" doesn't work anymore
In the early 2010s, most web videos were a single MP4 or FLV file, served by the server at a fixed URL. Right-click, Save As, done. A few things changed:
- Adaptive streaming became the default. HLS (m3u8) and DASH (mpd) break a video into hundreds of small
.tsor.m4ssegments. The browser stitches them in real time. There's no single file to save. - Encrypted streams. Many HLS streams are AES-128 encrypted. The decryption key is fetched separately, often with a session cookie. Even if you catch all the segments, they're useless without the key.
- Player obfuscation. YouTube and a few other major sites sign URLs with a player-generated signature that expires in a few minutes. Miss the window and the URL returns 403.
That's why modern downloaders exist. They implement the site-specific logic needed to find the manifest, fetch all the segments, fetch the key, decrypt, and remux into a single playable file.
Step 1. Pick the right tool for your situation
If you want the easiest path
shooff — installs like a normal Mac app, built-in webview, click-to-download button. Also keeps everything in an encrypted library if that matters to you. Free tier available. Download here.
If you want a pure download-focused tool
Downie 4 — drag-and-drop URL, nothing else. $20 one-time. Official site.
If you're comfortable in the terminal
yt-dlp — install with brew install yt-dlp ffmpeg, then:
yt-dlp --extractor-args "youtube:player_client=default,tv_simply;formats=missing_pot" \
-f "bv*+ba/b" --merge-output-format mp4 \
"VIDEO_URL"
The --extractor-args flag is the key to 2026 YouTube working. Without it, you'll get "Sign in to confirm you're not a bot" errors.
Step 2. Download from YouTube specifically
YouTube is the hardest case because the signature keeps changing. What works as of April 2026:
- Open the video in the downloader's built-in browser (shooff, Downie) or copy the URL from
youtube.com/watch?v=.... - In shooff: click the Add to Queue (YouTube) button that appears below the URL bar. In Downie: drag the URL onto the Downie dock icon. In yt-dlp: use the command above.
- Wait. YouTube downloads are slow because they ship separate video and audio streams that get merged after downloading. A 10-minute 1080p video is usually done in 30-90 seconds on a decent connection.
YouTube Shorts work the same way — paste the URL. Live streams that have finished (VOD replays) also work, but while the stream is still live, downloads are usually incomplete.
Step 3. Download from Vimeo, Twitter, Bilibili, and other major sites
These are easier than YouTube because the signature system is less aggressive.
- Vimeo (public): paste the URL, done. All three recommended tools work.
- Vimeo (password-protected): shooff handles the password flow in the built-in webview. Downie prompts you. yt-dlp needs
--video-passwordon the command line. - Twitter / X: paste the tweet URL. The tool finds the embedded video. Quote tweets with videos work too.
- Bilibili: works with all three. Chinese login may be required for some videos (yt-dlp needs a cookie file).
- Dailymotion, Reddit, Instagram, TikTok: all handled by yt-dlp's extractor library, which shooff and Downie use under the hood.
Step 4. Download m3u8 / HLS streams from random sites
This is where cheaper downloaders typically fail. An m3u8 URL looks like this:
https://cdn.example.com/streams/abc/master.m3u8?token=XYZ
And it points to a text file that points to more text files that point to hundreds of .ts segments. On top of that, many are AES-128 encrypted, with a key URL in the playlist that's only fetchable with a valid session cookie.
The way to approach this:
- shooff has a built-in network capture that watches the webview for m3u8 URLs. Open the video page inside shooff and hit play. The downloader will detect the stream and offer to save it.
- yt-dlp can take the m3u8 URL directly:
yt-dlp "URL.m3u8". For cookie-protected streams, export cookies from Firefox/Chrome and pass--cookies cookies.txt. - Downie handles many m3u8 sources but can fail on AES-128 keys that require session authentication.
Step 5. Download direct MP4 files from sites that do a referer check
Some news sites and CDNs serve a plain MP4 URL but only if the HTTP request includes a specific Referer header. A direct browser navigation to that URL returns 403. Cheap downloaders that don't spoof referer fail here.
In shooff, this works automatically — the webview captures the referer at page open time and attaches it to the aria2c download. In yt-dlp: yt-dlp --referer "https://originsite.com/" "FILE.mp4".
Step 6. Verify the file you saved
A successful download doesn't always mean a good file. Check these:
- Size is reasonable. A 10-minute 1080p video should be roughly 100-300 MB. If you got a 1 MB file, something went wrong (usually an HLS download that only caught one fragment).
- Duration matches. Open in QuickTime or IINA and check the duration against the original page. Short durations mean partial downloads.
- Audio syncs. Scrub to a dialogue scene. Out-of-sync audio usually means a failed merge between video and audio streams.
Common problems and fixes
"Sign in to confirm you're not a bot" (YouTube)
Your yt-dlp is out of date or missing the --extractor-args "youtube:player_client=default,tv_simply;formats=missing_pot" flag. Update with brew upgrade yt-dlp or switch to shooff/Downie, which handle this automatically.
Download finishes in 1 second with a 1 MB file
You captured a single fragment instead of the full stream. This is a classic HLS issue — the video was the playlist URL, not a single file. Use a tool that follows the m3u8 structure (shooff, yt-dlp).
"URL expired" or HTTP 403 after a few minutes
You're dealing with a signed URL. Re-fetch the URL right before downloading. Better: use a tool that does the fetch for you (shooff, Downie).
Vimeo returns a tiny thumbnail instead of the video
You copied the iframe embed URL instead of the main video page URL. Open the original Vimeo page and copy that URL.
The downloaded file won't play
Try opening it in IINA. QuickTime is strict about codecs; IINA isn't. If IINA also fails, the file is genuinely broken — redownload.
What about browser extensions?
They used to work. In 2026, most "video downloader" Safari / Chrome extensions have been either abandoned, bought by ad networks, or removed from the stores after policy violations. The ones still around mostly work for YouTube-embed-on-random-site (which is just YouTube) and fail on everything else. A dedicated desktop tool is more reliable.
A note on legality
Downloading videos you own, videos with a Creative Commons license, videos your own server hosts, or videos the publisher has explicitly made downloadable is perfectly fine. Downloading copyrighted content for redistribution is not. YouTube's Terms of Service generally prohibit downloading unless the publisher has enabled the save feature. That's a contract between you and YouTube, enforced by account termination, not a law. shooff and every tool in this guide don't care what you download — that's up to you.
Frequently asked
What's the best free video downloader for Mac?
yt-dlp, if you're OK with the terminal. It's free, MIT-licensed, supports 1,700+ sites, and is updated weekly. If you want a GUI, shooff has a free tier and Downie offers a trial.
Can I download entire YouTube playlists?
Yes — paste the playlist URL into shooff or yt-dlp. For yt-dlp: yt-dlp -f "bv*+ba/b" "PLAYLIST_URL". Expect some videos to fail if they're member-only or region-locked.
How do I download a private Vimeo with password?
shooff and Downie open the Vimeo page in their built-in browser where you enter the password normally, then the download proceeds. yt-dlp uses --video-password YOURPASSWORD.
Is there a way to download 4K YouTube videos?
Yes, all three tools support 4K. shooff and Downie pick the best available quality by default. yt-dlp needs -f "bv*+ba/b" to get the highest video + best audio. You need ffmpeg (bundled in shooff and Downie) to merge the two.
How do I download videos from Chinese sites like Bilibili or Youku?
Bilibili works with shooff/Downie/yt-dlp out of the box. Youku requires a Chinese IP or VPN. For Bilibili Premium content, export your login cookies from a browser and pass them to yt-dlp with --cookies.
What format is best for saving — MP4 or MKV?
MP4 is universally compatible (QuickTime, iOS, most TVs). MKV supports more features (multiple audio tracks, chapters, soft subtitles) but macOS QuickTime can't play it natively without a helper app. If you're archiving for long-term storage, MKV preserves more metadata. For everyday watching, MP4 is simpler.