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.
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
- Download button: available on Pro and above, opt-in per video
- Domain restriction: optional, set per video or per account
- DRM: not used by Wistia (no Widevine or PlayReady)
- API access to assets: available via the public embed JSON for non-private videos
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
- Install Vidora from the Chrome Web Store. One-time payment, $9.99, no subscription.
- Open the page containing the Wistia video. If it is behind a login, log in normally first.
- Press play on the video. This triggers the embed JSON request that Vidora needs to detect the available assets.
- 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).
- 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:
original: the source upload. Highest quality, but may be ProRes, MOV, or another non-MP4 format.mp4_video: a transcoded MP4. Safe choice for compatibility.hls_video: the adaptive HLS master playlist. Best for bandwidth-adaptive playback, requires muxing.still_image/storyboard: thumbnail images, not video.
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:
- For the manual method: you must click each video within the Channel, let it start playing, and capture the embed JSON request per video.
- For Vidora: navigate to each video within the Channel, press play briefly, and the extension queues it. Repeat for each video you want, then batch download.
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.
5. Legal and ethical considerations
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
- Your own content. If you uploaded the video to a Wistia account you control, downloading it is simply recovering your own file. Many creators do this to build local archives.
- Courses you purchased. Downloading a course video you paid for, for personal offline use, is consistent with most platform terms that permit personal use. You are not redistributing the content.
- Open-license or public-domain content. Content published under Creative Commons or similar licenses can be downloaded and re-used according to the specific license terms.
When it gets ethically murky
- Downloading to share. If you download a paid course video and share it publicly or with people who have not paid, you are redistributing copyrighted content. This is copyright infringement regardless of the technical method used.
- Circumventing explicit restrictions. Some platforms explicitly forbid downloading in their Terms of Service. Downloading in violation of ToS can void your account or, in extreme cases, result in legal action even if the technical access was possible.
- Company or client materials. Wistia hosts many B2B product demos and internal training videos. Downloading these without permission from the content owner may violate NDAs or access agreements.
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.