Tutorial · Wistia · B2B Video

How to Download Wistia Videos in 2026 (2 Working Methods)

Wistia hides the download button behind a paid plan, and most account owners leave it disabled. But the video stream itself is not DRM-protected. This guide covers two reliable methods to save any Wistia video as a local MP4: the manual embed JSON route and the one-click path using Vidora, which ships a native Wistia resolver in v2.1.

By the Vidora team 10 min read

Quick answer

To download a Wistia video, open DevTools (F12), go to the Network tab, filter by "wistia", play the video, and find the request to fast.wistia.net/embed/medias/{id}.json. Open that URL in a new tab, find the "assets" array, and copy the highest-resolution MP4 URL. Or use Vidora to do all of that in one click.

1. Why Wistia downloads are gated

Wistia is the video hosting platform of choice for B2B SaaS companies, online course creators, and marketing teams. Unlike YouTube, it is built for private or semi-private distribution: product demos on landing pages, course videos behind login walls, and webinar replays for email subscribers. The audience is paying customers or qualified leads, not the open web.

This context explains why the download button is a paid, opt-in feature. Wistia gives account owners control: the button appears in the player only when the owner explicitly enables it under their video settings. Most leave it off, either to keep content feeling exclusive or simply because they never thought about it.

The embed.json endpoints

Wistia's player works by fetching a JSON payload from fast.wistia.net/embed/medias/{mediaId}.json at load time. This payload describes every asset the player can use: multiple MP4 renditions at different resolutions, the HLS master playlist, thumbnail images, and captions. The player itself picks the right asset based on the viewer's screen and connection. Crucially, this endpoint is publicly accessible for any video that is not set to "private" or domain-restricted.

Referer protection and domain restrictions

Wistia can restrict embeds to specific domains. If a video is set to play only on example.com, loading the player from a different origin will fail with a domain restriction error. The CDN hosting the actual video files also checks the Referer header on some accounts. These are the two real technical barriers, not DRM. A tool that runs inside your browser session sidesteps both automatically, because the browser sends the correct Referer and your session cookies along with every request.

The paid-plan gating summary

2. Method 1: DevTools and the embed JSON endpoint

This method works on any Chromium browser with no extensions required. It takes roughly 3 minutes the first time, faster once you know the pattern. The core insight: Wistia publicly documents that the embed JSON endpoint exists, and it is not behind any authentication for public videos.

For a deeper look at how network inspection works across platforms, our guide on how to find the M3U8 URL of any stream covers the DevTools workflow end to end. The Wistia case is a variation of the same technique.

Step 1: Find the Wistia media ID

Open the page containing the Wistia video. Open DevTools with F12 (Windows / Linux) or Cmd + Opt + I (Mac). Go to the Network tab. In the filter box, type wistia. Now press play on the video.

Within one or two seconds, a request appears for fast.wistia.net/embed/medias/{mediaId}.json. The mediaId is the alphanumeric string in the URL path, for example abc123xyz9. Note it down, or click the request and copy the full URL from the Headers tab.

Step 2: Fetch the embed JSON

Open a new browser tab and navigate to:

https://fast.wistia.net/embed/medias/{mediaId}.json

Replace {mediaId} with the ID you found. The browser renders the raw JSON. If you use Chrome, install a JSON formatter extension to make it readable, or copy the content into JSONLint for a tree view.

Step 3: Locate the MP4 or HLS asset

Inside the JSON, look for the assets array under the media key. Each entry describes one video rendition:

{
  "type": "mp4_video",
  "width": 1920,
  "height": 1080,
  "size": 421347891,
  "url": "https://embed-fastly.wistia.com/deliveries/abc123/file.mp4",
  ...
}

Pick the entry with the highest width value and type mp4_video or original. The original type is the source file as uploaded, at full quality, but it may be in a container other than MP4 if the creator uploaded a different format. For HLS, look for a type of hls_video or an entry whose URL ends in .m3u8.

Step 4: Download the file

Copy the URL from the url field. For a direct MP4 link, paste it into a new browser tab and the file downloads. You can also use the terminal:

curl -L -o wistia-video.mp4 "PASTE_MP4_URL_HERE"

For HLS assets (URL ending in .m3u8), use ffmpeg to fetch and mux all segments into a single container:

ffmpeg -i "PASTE_M3U8_URL_HERE" -c copy output.mp4

The -c copy flag preserves quality by skipping re-encoding. For more detail on the ffmpeg route, our M3U8 download guide walks through the common gotchas.

Step 5: Verify the output

Open the saved file in VLC, QuickTime, or any media player. Confirm the runtime matches the Wistia player duration. Both audio and video tracks should be present. If audio is missing, you likely grabbed only the video rendition from an HLS stream that separates audio into a distinct track. The Vidora method (below) handles audio-video muxing automatically.

3. Method 2: Vidora one-click (v2.1 native Wistia resolver)

Vidora v2.1 ships a dedicated Wistia resolver. When the player on a page fires the embed JSON request to fast.wistia.net/embed/medias/{id}.json, Vidora intercepts the response, parses the assets array locally (no data leaves your browser), and presents you with a quality picker. No DevTools, no JSON parsing, no ffmpeg.

This is the same architecture used for the Bunny.net resolver: platform-specific logic that knows exactly what endpoint to watch and how to extract the highest-quality asset without guessing. For a full comparison with other downloaders, see our alternatives page.

How to use it

  1. Install Vidora from the Chrome Web Store. One-time payment, $9.99, no subscription.
  2. Open the page containing the Wistia video. If it is behind a login, log in normally first.
  3. Press play on the video. This triggers the embed JSON request that Vidora needs to detect the available assets.
  4. Click the Vidora icon in your Chrome toolbar. The popup shows the detected Wistia video with quality options (360p, 720p, 1080p, or the original if available).
  5. Select your quality and click Download. Vidora fetches the MP4 directly, or for HLS streams, downloads all segments in parallel and muxes audio and video into a clean MP4 in your Downloads folder.

Vidora handles the Referer header automatically. If the account owner has enabled domain restrictions, Vidora runs inside your browser session on the correct origin domain, so the restriction is satisfied without any extra configuration.

Batch downloads for full courses

If you are downloading a full course hosted on Wistia (common with Kajabi, Podia, and custom LMS platforms), Vidora supports batch mode: open multiple lesson tabs, let each video play for a few seconds, and the extension queues all detected videos. You can then download the whole batch overnight. This is a significant advantage over the manual JSON method, which requires repeating the five steps per video. Compare this to how we handle saving online courses for offline access across platforms.

4. Wistia-specific quirks: HD, audio descriptions, Channel pages

Wistia has a few behaviors that differ from other platforms and can trip up downloaders that were not built with Wistia in mind.

HD vs SD renditions in the assets array

The embed JSON lists every rendition Wistia created during transcoding, from the original upload down to a low-bitrate 360p version. The width and height fields identify the resolution. The size field gives the file size in bytes, which can help you choose between two renditions at the same resolution (pick the larger one for higher bitrate). The type field matters:

Audio descriptions and alternate audio tracks

Wistia supports audio descriptions (a separate audio track narrating on-screen action for visually impaired viewers) and multiple caption files. These are stored as separate assets in the JSON with types like audio_description. If you only download the primary MP4, you get the standard audio track. The audio description track is a separate file you would need to download independently if required. Most users can ignore this.

Wistia Channel pages vs single-video pages

Wistia Channels are curated video hubs that display multiple videos in a Netflix-style layout. Each video within a Channel is a separate media with its own ID. The Channel page does not load all embed JSONs at once; it loads them on demand as the viewer clicks each video. This means:

One shortcut: if the Channel page URL includes a video ID in the path or hash (some do, some do not), you can construct the embed JSON URL directly without playing the video first.

AES-128 encrypted Wistia videos

A small number of Wistia accounts use HLS with AES-128 segment encryption for an additional layer of protection. The encryption key is referenced in the M3U8 playlist and fetched by the player at runtime. Vidora is built to handle AES-128 streams (it is part of the core HLS engine). The manual ffmpeg method also handles AES-128 automatically if you have the right key URL, which is included in the playlist. Our M3U8 inspection guide explains how to identify AES-128 streams in the playlist header.

Downloading a video you are legitimately authorized to view is generally accepted in most jurisdictions for personal use. The legal picture gets complicated quickly when content is involved that you do not own or have not paid for. Here is a straightforward breakdown:

When downloading is clearly fine

When it gets ethically murky

Vidora and the methods described in this guide are tools. Legal and ethical responsibility for how you use them sits with you. If you are unsure whether you have the right to download a specific video, the answer is to ask the content owner. For a broader look at the tooling landscape and how responsible downloaders operate, our alternatives comparison and Vidora vs SaveFrom comparison discuss the legal posture of different tools.

6. Frequently asked questions

Can I download a Wistia video for free?

Yes, for videos that are not domain-restricted or private. The embed JSON method described above is entirely free: it uses only a browser and optionally a command-line tool like curl or ffmpeg. Vidora is $9.99 one-time if you prefer the one-click route.

What is a Wistia media ID and where do I find it?

The media ID is the short alphanumeric string that uniquely identifies a video in Wistia. Find it in the iframe src (look for the string after /embed/), in the embed script tag as a data-video-id attribute, or in the Network tab when filtering by "wistia" while the video plays. Example: abc123xyz9.

Does Wistia use DRM that prevents downloading?

No. Wistia does not implement Widevine or PlayReady DRM. It relies on domain restrictions, Referer checks, and paid-plan gating. None of these are unbreakable technical barriers, which is why the embed JSON method works for non-private videos.

Why does Wistia hide the download button?

The download button is a Pro-plan feature that account owners must explicitly enable per video. Most marketers and course creators leave it off, either to reduce casual redistribution risk or because they have never explored the option in their account settings.

Does Vidora work on Wistia Channel pages?

Yes. Each video within a Wistia Channel is a separate media. Navigate to the individual video, press play, and Vidora detects it. Repeat for each video you want to download, then use the batch queue to download them all at once.

What happens if the embed JSON returns 403 Forbidden?

A 403 on the embed JSON means the video is private or domain-restricted. In that case, you need an authenticated session on the source domain. Load the page normally in Chrome (logged in), press play, then use Vidora, which runs inside your browser session with the correct origin and cookies already present.

Can I batch-download a full Wistia-hosted course?

With Vidora, yes. Open multiple lesson tabs, let each video load and play for a few seconds, and Vidora queues all detected videos. You can then download the whole batch. Our guide on saving online courses offline covers the multi-platform workflow in detail.

What quality does Wistia serve, and which asset should I pick?

Wistia transcodes to 360p, 540p, 720p, and 1080p MP4s, plus an HLS adaptive ladder. The embed JSON lists all. For the best quality, pick the highest-resolution mp4_video type, or the original type if you want the source file exactly as uploaded. Use our M3U8 detector tool to analyze HLS assets before downloading if you are unsure which to pick.

About the author

RGC Digital LLC builds Vidora, a privacy-first Chrome extension for downloading HLS, DASH, and MP4 video from Vimeo, Bunny.net, Wistia, and Loom. Based in Albuquerque, NM. We test every method we publish against real streams before shipping.

Related reading