Whop video downloads

Hi, does anyone know a free way that’s working to download the videos inside of whop memberships?

If you’re looking for an solution, you can try using a Tampermonkey script called Inject2Download. It’s designed to help with downloading embedded media . You can find it here:

It’s a user-side script, so you’ll need Tampermonkey (or a similar extension) installed in your browser.

The Inject2Download script mentioned above was last updated in 2016 — it hooks into old-school players like JWPlayer and Flowplayer. Whop doesn’t use any of those. It uses Mux (a video streaming API), which serves videos through HLS streaming — basically, the video gets split into tiny chunks with a playlist file (.m3u8) that your browser reads. So yeah, that script won’t work here.

Here’s what actually works — pick the method that matches your comfort level.


:bullseye: How Whop Videos Actually Work? (lets see…)

Every video on Whop is streamed through Mux. When you hit play, your browser fetches a link that looks like this:

https://stream.mux.com/abc123xyz.m3u8?token=eyJhbGci...

That link IS the video. Grab it → feed it to a download tool → done. The ?token= part is your access pass — it’s usually valid for hours to days (Mux defaults to 7 days), so you don’t need to rush.

Most Whop sellers do not enable DRM encryption (it costs them $100+/month and requires Apple certification). So the methods below work on almost everything.


:high_voltage: Method 1 — Browser Extension (Easiest, Zero Tech Skills)

Install a free extension → click download → done

Best free options:

Extension Browser What It Does Link
MPMux Chrome, Edge Auto-detects HLS streams on any page, merges to MP4 in-browser Chrome Web Store
HLS Downloader Chrome, Firefox, Edge, Brave, Arc Auto-sniffs HLS playlists, lets you pick quality, merges with ffmpeg.wasm locally GitHub Releases

Steps:

  1. Install one of the extensions above
  2. Log into Whop → open the course lesson
  3. Play the video (even for 1 second — this triggers the stream)
  4. Click the extension icon — it’ll show the detected stream
  5. Pick your quality → hit Download
  6. Wait for it to merge into MP4 → saves to your Downloads folder

:light_bulb: Trick: MPMux opens a separate tab for processing large files. Don’t close that tab until it says “Complete.” HLS Downloader does everything in the background — pick whichever feels less annoying.


:wrench: Method 2 — DevTools + yt-dlp (Best Quality, Full Control)

Copy one link from your browser → paste into terminal → full HD MP4

This is the method every guide uses, and it works perfectly. You need two things:

Steps:

  1. Open the Whop lesson page in Chrome or Firefox
  2. Press F12 to open DevTools → click the Network tab
  3. In the filter box at the top, type m3u8
  4. Now hit Play on the video
  5. You’ll see a request pop up that looks like https://stream.mux.com/...m3u8?token=...
  6. Right-click that row → CopyCopy URL
  7. Open your terminal (Command Prompt on Windows, Terminal on Mac) and run:
yt-dlp --no-playlist --concurrent-fragments 16 -f "bv*+ba/b" --merge-output-format mp4 -o "lesson-video.mp4" "PASTE_THE_URL_HERE"

That’s it. Full quality MP4 in your Downloads.

:light_bulb: Trick: The -o "lesson-video.mp4" part is important — without it, yt-dlp tries to use the stream URL as the filename, and Mux URLs are ridiculously long. Give it a short name.

:light_bulb: Trick: The token in that URL is usually valid for hours. You don’t need to rush. But if yt-dlp gives an error about expired tokens, go back to step 3 and grab a fresh link.


:package: Method 3 — Bulk Download an Entire Course

For when you need all 30+ lessons, not just one

Doing Method 2 thirty times is painful. Here’s how to speed it up:

Option A — HAR Export (Medium Effort)

  1. Open DevTools → Network tab → type m3u8 in filter
  2. Browse through every lesson in the course (just load each page — let the video start for a second, then move on)
  3. Each lesson generates its own m3u8 request in the Network tab
  4. When you’ve loaded all lessons: right-click in the Network panel → Export HAR…
  5. Save the .har file, then run this to extract all video URLs:
grep -oE "https://stream\.mux\.com[^\"]*\.m3u8[^\"]*" your-file.har > urls.txt
  1. Now download them all:
cat urls.txt | while read url; do yt-dlp --no-playlist -f "bv*+ba/b" --merge-output-format mp4 -o "%(autonumber)03d.mp4" "$url"; done

Option B — Python Batch Script (Low Effort, Needs Setup)

zaakirio/whop-video-downloader — a Python script that reads Mux URLs from a text file and downloads them all using yt-dlp. Just paste your URLs into urls.txt and run it.

:light_bulb: Trick: When browsing through lessons to collect URLs, you don’t need to watch the videos. Just load the page and let the player initialize (takes ~2 seconds). That’s enough to generate the m3u8 request in the Network tab.


:brain: Pro Tricks That Nobody Talks About

For the curious ones who want to understand what's actually happening

The Thumbnail Shortcut

Every Whop video has a thumbnail. That thumbnail URL looks like this:

https://image.mux.com/abc123xyz/thumbnail.jpg

See that abc123xyz part? That’s the Playback ID — the unique identifier for the video. If you view the page source of a course listing page, you’ll often find these thumbnail URLs for every video in the course, sitting right there in the HTML.

From a Playback ID, the stream URL is just:

https://stream.mux.com/abc123xyz.m3u8

If the seller didn’t enable signed URLs (many don’t for preview content), that link works directly — no token needed.


The Console Snippet (Passive URL Capture)

Instead of digging through the Network tab, paste this into your browser console (F12 → Console tab) before you start browsing lessons:

const _orig = Hls.prototype.loadSource;
Hls.prototype.loadSource = function(url) {
  console.log('%c[VIDEO URL] ' + url, 'color: lime; font-weight: bold');
  return _orig.call(this, url);
};

Now just browse through lessons normally. Every video URL will print in green in your console as the player loads it. Way cleaner than filtering through hundreds of Network tab entries.


Check Your Token’s Expiry

Grab the token= value from any m3u8 URL and paste it at jwt.io. Look for the exp field — that’s a Unix timestamp showing when the token expires. Convert it at unixtimestamp.com to see the actual date/time. If it says it’s valid for 6 more hours, you’ve got plenty of time to batch-download everything.


:warning: Quick Do’s and Don’ts

:white_check_mark: Do :cross_mark: Don’t
Download courses you’ve paid for Share downloaded files publicly
Use reasonable download speeds Hammer the server with 50 parallel downloads
Keep yt-dlp updated (yt-dlp -U) Use ancient versions — Mux streams evolve
Grab fresh m3u8 URLs if downloads fail Reuse expired URLs and wonder why it broke
Try the extension method first Jump to CLI if you’ve never used a terminal

:world_map: Which Method Should You Use?

Your Situation Do This
Never used a terminal, just want the video Method 1 — MPMux or HLS Downloader extension
Comfortable with copy-paste in terminal Method 2 — DevTools + yt-dlp
Need an entire course (10+ videos) Method 3 — HAR export or batch script
Video won’t download with any method The seller likely enabled DRM — screen recording is your only option
Inject2Download (the reply above) Won’t work — it’s from 2016 and doesn’t support Mux/HLS

Some useful things you can do with this:

  • :mobile_phone: Offline study — download lessons before a flight or commute, watch without internet
  • :counterclockwise_arrows_button: Speed adjustment — downloaded MP4s play in VLC where you can do 1.5x/2x speed with proper pitch correction (Whop’s player speed options are limited)
  • :memo: Note-taking — pause, screenshot, annotate at your own pace without buffering
  • :file_cabinet: Backup — if your subscription expires or the seller removes content, your local copies stay

For a deeper dive into downloading from any course platform (not just Whop), check out the Download DRM-Protected Videos From Login-Restricted Sites guide posted here — it covers the heavier stuff like Widevine-protected streams.