Which website can I download a video from in 2026? Does anyone know of an extension?

Which website can I download a video from in 2026? Does anyone know of an extension?

Browser Extensions (easiest to start with):

Command-line / power user (handles the most sites):

  • yt-dlp is still the gold standard — supports 1000+ sites. If you want a GUI for it, check out Fifu (terminal TUI) or this Electron+React wrapper.

Self-hosted (run your own download service):

  • MeTube — web UI wrapping yt-dlp, supports YouTube/TikTok/X.com, no ads, deploy with Docker
  • Hermes — self-hosted with REST API, great if you want to automate downloads

Niche platforms:

Pro tip: If an extension can’t grab a video because it’s using blob URLs or m3u8 streams, open DevTools (F12) → Network tab → filter by “m3u8” → copy the URL → feed it to yt-dlp. Works on almost everything including stubborn players. Detailed walkthrough here.

SaveFrom.net is a reliable free website for downloading videos from many sites in 2026. For browser extensions, SaveMate works well on Chrome for detecting and downloading from most sites (not YouTube), and Video DownloadHelper supports Chrome and Firefox. Always check site terms to avoid violations.

:hammer_and_wrench: The 2026 video download playbook

Simple-pimple — Forget “one extension for everything.” Climb a 5-rung ladder. Most stop at rung 1 or 2.[/center]


Forget “one extension for everything” — that idea died when Chrome killed Manifest V2 in late 2024.

The Chrome Web Store purged half the old downloaders in the rollout. SaveFrom Helper got pulled. The full uBlock Origin is gone from Chrome. Half the listicles you’ll Google still recommend ghosts.

What works in 2026 is a ladder. Try the easy thing first. When it fails, climb one rung. Most videos give up at rung 1 or 2 — you’ll rarely need to climb past 4.


:ladder: The Ladder

Rung Try this What it catches Where it taps out
1 F12 → Network tab → “Media” filter → play video → look for the .mp4/.webm row → right-click → Open in new tab → Save News, blogs, low-traffic embeds — anything with a direct file Stream sites that chunk into .m3u8 or hide behind a blob: URL
2 CocoCut (Chrome / Edge) — no signup, handles HLS, screen-record fallback Most streaming sites, social embeds, Vimeo-likes Doesn’t touch YouTube — no Web Store extension can
3 A green-status mirror from cobalt.directory — paste URL, get file. Refreshed every ~10 min YouTube, TikTok, Reddit, Twitter, Instagram, Vimeo Login-walled or niche sites
4 yt-dlp with --cookies-from-browser firefox — 1,864 extractors as of March 2026 Almost everything VOD Live broadcasts, real DRM
5 streamlink — the live-stream tool the listicles always skip Live HLS broadcasts (Twitch, IPTV, PPV) The DRM ceiling

:green_circle: If you only do one thing today

For the everyday “I just want this video offline”:

Install CocoCut → click the icon while you’re on the page → done.

Free, no signup, handles HLS streams (the chunked kind that breaks every other extension), and falls back to screen-recording when it can’t grab the file directly.

:warning: If CocoCut returns nothing on your specific site → jump straight to rung 3 (a cobalt mirror) before climbing higher. Most sites it can’t grab, cobalt can.

:adhesive_bandage: If you got a silent file out of it → that’s just the recording fallback dropping audio. Retry, the second attempt usually catches the direct download.

:triangular_flag: One warning before you get sold the other big-name extension — Russian Pikabu users called Video DownloadHelper a лохотрон (scam): the “free” tier now needs a paid companion app installed and gates large downloads behind a 2-hour wait. CocoCut just works without that ceremony.


:laptop: What I keep on my own machine

Three things, layered:

:green_circle: CocoCut → one-click capture
:yellow_circle: A bookmark to cobalt.directory → for when CocoCut shrugs
:red_circle: yt-dlp → for everything else

The yt-dlp config (paste into ~/.config/yt-dlp/config on Linux/Mac, or %APPDATA%\yt-dlp\config.txt on Windows):

-f bestvideo+bestaudio --merge-output-format mkv
-o "%(uploader)s/%(upload_date)s - %(title)s [%(resolution)s].%(ext)s"
--write-sub --all-subs --convert-subs srt
--add-metadata --write-thumbnail
--cookies-from-browser firefox
-i --download-archive ~/.config/yt-dlp/archive.txt

:light_bulb: The line that retires the 2018-era ritual--cookies-from-browser firefox. yt-dlp now reads your live browser session directly. No more “install Cookie.txt extension → export to file → pass --cookies file.txt.” One flag. No export step.

:toolbox: If yt-dlp throws “this video is not available” on a site that played fine in your browser five minutes ago → that’s just an extractor breaking after a site update. Run yt-dlp -U to pull the latest, or check the issue tracker — someone’s usually filed it within hours.


🔧 Pop the hood — the full mechanics of each rung

:hole: Why the Network tab loses sometimes

Modern players hide the video behind a blob URL — you’ll see src="blob:https://..." in the inspector. That blob is fake from the network’s perspective; it’s built in JavaScript from chunks that arrived earlier.

→ Trace the .m3u8 request that fed it instead of the blob.

Other silent-failure modes:

Failure mode What you’ll see Workaround
MSE (Media Source Extensions) Chunks come through Worker threads as opaque traffic Skip to rung 2 or 3
Signed URLs (30–60s TTL) Copy-paste fails — link expired before tab opened Use yt-dlp directly on the page URL
Encrypted segments .m4s files that won’t play after download DRM territory — see ceiling below

:cookie: Why CocoCut isn’t a magic bullet

It can’t touch YouTube directly. None of the Chrome Web Store extensions can — Google’s Web Store policy line.

→ For YouTube → use rung 3 (cobalt mirror) or rung 4 (yt-dlp).

It also occasionally drops audio when it falls back to recording mode.

:adhesive_bandage: Got a silent file? → Hit retry. The second attempt usually catches it as a direct download instead of a record.


:globe_with_meridians: How the cobalt mirror situation actually works

cobalt.tools is open source. The main instance has been YouTube-rate-limited since mid-2025 because YouTube fingerprinted the IP and started serving bot challenges to it.

But the code is open, so dozens of people host their own mirrors:

:pushpin: Don’t bookmark a specific mirror — it might be down next week. Bookmark the directory instead. That’s the durable answer.

If you’re technical and want a private instance with its own IP that won’t share the main instance’s ban, the Railway template deploys one for ~$5/month.


:satellite_antenna: Live streams are a different scene

streamlink ≠ yt-dlp. streamlink is built specifically for HLS live capture — pulls the segment-being-broadcast-now and pipes it to disk in real time.

Basic command:

streamlink twitch.tv/CHANNEL best -o stream.ts

:police_car_light: Twitch ad-discontinuity gotcha — when Twitch injects an ad mid-stream, streamlink throws “stream discontinuity” warnings and the recording corrupts.
Clean workaround: subscribe to the streamer (no ads → no discontinuity), grab the OAuth header from your browser DevTools, pass --twitch-api-header 'Authorization=OAuth YOURTOKEN'. Full walkthrough on glubsy’s gist.

For “auto-record when this streamer goes live”Avnsx/twitch-stream is a clean Python wrapper, no Twitch API tokens needed.


:shield: The DRM honest ceiling — read before wasting hours

Some streams are protected by Widevine — Google’s content decryption system. It runs at three security levels:

Level Where it runs Bypassable?
L1 Hardware-backed (Netflix, Prime, Disney+, Hulu on certified devices) :cross_mark:
L2 Intermediate, rare :cross_mark:
L3 Software (desktop browsers) :warning: Theoretical, far outside casual zone

:bullseye: For Netflix / Prime / Disney+ / Hulu → the only realistic option is screen recording (OBS, Bandicam, native QuickTime on Mac). You lose quality, you lose timestamps, but you get a file. That’s the honest ceiling — the whole industry has spent a decade hardening L1 against client-side bypass.

For fake DRM (AES-128 with publicly available keys, common on smaller training platforms with weak protection where users already have the key from the platform itself): yt-dlp’s --allow-unplayable-formats downloads the encrypted stream, then Bento4’s mp4decrypt applies the key. frozenpandaman’s gist walks the chain.


:bird: The niche social / archive layer

For Twitter video where Cobalt is rate-limited and yt-dlp’s extractor is currently flaky → gallery-dl.

Built originally for image galleries; handles video on Twitter, Reddit, Tumblr, Pixiv, Bluesky, Mastodon.

The -g flag is the secret weapon — prints the direct URL without downloading. Lets you verify whether the extractor still works on your specific URL before committing to a 2GB pull:

gallery-dl -g "https://twitter.com/i/web/status/..."

:detective: When everything else has failed

The bottom rung — packet interception. Tools that sit between your browser and the internet and reveal the actual manifest URL the browser DevTools won’t surface:

  • :wrench: mitmproxy — open source, scriptable
  • :briefcase: Charles Proxy — paid, polished
  • :shield: Burp Suite Community — free, security-focused

The pen-test community uses these for API analysis. They double as video-grabbing tools when nothing else works.

:memo: Most readers will never need this rung. But if rungs 1–5 all failed on the same site, this is where the manifest is hiding.


The 2026 reality is messier than 2020 was. Manifest V3 killed half the extensions, Widevine creep added DRM to sites that didn’t have it before, and SaveFrom-style aggregators are mostly dying or going paid.

But yt-dlp ships nightly builds, cobalt mirrors keep multiplying, and the F12 Network tab still works on most of the open web.


Pick the lowest rung that handles your site.

Climb only when you have to.

Don’t pay for any “best video downloader 2026” until you’ve tried all five.