- right-click on the playing video, select Copy link
- find Wistia video ID in the copied link e.g.
wvideo=tra6gsm6rl- alternative: look for e.g.
hashedId=tra6gsm6rlin the page source
- alternative: look for e.g.
- load
http://fast.wistia.net/embed/iframe/+ video ID in your browser - look for
"type":"original"in the page source and copy the URL from the next line e.g."url":"http://embed.wistia.com/deliveries/129720d1762175bcd8e06dcab926ec76ad38ff00.bin"- alternative: look for
"type":"hd_mp4_video"
- alternative: look for
- download the video from the URL with
.mp4extension instead of.bin
-
Star
(154)
You must be signed in to star a gist -
Fork
(32)
You must be signed in to fork a gist
-
-
Save szepeviktor/2a8a3ce8b32e2a67ca416ffd077553c5 to your computer and use it in GitHub Desktop.
HI guys! I created a Chrome extension that does just that in a click of a button: https://chromewebstore.google.com/detail/fhmlmcbfjnegdoafmfcfmhpahfegdjlp?authuser=1&hl=en
I'd really appreciate it if you can give me your feedback after trying it. Any bugs, anything I can improve on it?Perfect thank you. Working Well and file sizes are good also
I'm happy to hear that!
It would be great if you can leave me a review on the Google webstore, it will really help me and encourage me to offer more :)
Thanks!
HI guys! I created a Chrome extension that does just that in a click of a button: https://chromewebstore.google.com/detail/fhmlmcbfjnegdoafmfcfmhpahfegdjlp?authuser=1&hl=en
I'd really appreciate it if you can give me your feedback after trying it. Any bugs, anything I can improve on it?
Brilliant. Are you going to put the code on Github so others can possibly contribute?
Has anybody encountered different code for the video like thumbnail_120728 (https://study.com/academy/lesson/what-is-word-processing-software-definition-types-examples.html)? On this site there are different video IDs.
I had to extract 365 links and download them with a proper naming - best way I found for myself:
- Use/Open Ditto to save everything copied to the clipboard
- Rightclick on every video and copy the link (takes some time for 365 videos, you just need some quick fingers)
- Copy all the links from Ditto into notepad (because of the link format) and afterwards into Excel
- Extract the ID with an easy formula into this format "http://fast.wistia.net/embed/iframe/ + video ID"
- Copy all 365 links into JDownloader and enjoy
This way the naming of the original source will also be taken, in my case everything was named like 01-01, 01-02 ... 80-01, 80-02 ... and it took it from the original source. As I'm working with Excel everyday, it was also the quickest way for me.
If someone wants to use this way, the Excel formula (if the link is in A1):
=CONCATENATE("http://fast.wistia.net/embed/iframe/", MID(A1, FIND("wvideo", A1) + 7, FIND("""", A1) - 2))
With the tool for Google Chrome it just gets saved with the name "video", the other tools can just handle one at a time and also don't take the original name like JDownloader. But I also see, that you could rename the videos afterwards, if you're doing it chronologically, as their names will be (1), (2), ...
Hope you can still improve the tool regarding the names, would be pretty nice!
I had to extract 365 links and download them with a proper naming - best way I found for myself:
- Use/Open Ditto to save everything copied to the clipboard
- Rightclick on every video and copy the link (takes some time for 365 videos, you just need some quick fingers)
- Copy all the links from Ditto into notepad (because of the link format) and afterwards into Excel
- Extract the ID with an easy formula into this format "http://fast.wistia.net/embed/iframe/ + video ID"
- Copy all 365 links into JDownloader and enjoy
This way the naming of the original source will also be taken, in my case everything was named like 01-01, 01-02 ... 80-01, 80-02 ... and it took it from the original source. As I'm working with Excel everyday, it was also the quickest way for me. If someone wants to use this way, the Excel formula (if the link is in A1): =CONCATENATE("http://fast.wistia.net/embed/iframe/", MID(A1, FIND("wvideo", A1) + 7, FIND("""", A1) - 2))
With the tool for Google Chrome it just gets saved with the name "video", the other tools can just handle one at a time and also don't take the original name like JDownloader. But I also see, that you could rename the videos afterwards, if you're doing it chronologically, as their names will be (1), (2), ... Hope you can still improve the tool regarding the names, would be pretty nice!
Have you thought of using this Chrome extension? Maybe it'll save you all that headache:
https://chromewebstore.google.com/detail/fhmlmcbfjnegdoafmfcfmhpahfegdjlp?authuser=1&hl=en
Awesome @willberthun
I think they might have tighten their service, as no available method seem to work anymore
Awesome @willberthun
<3
I think they might have tighten their service, as no available method seem to work anymore
Try the wistia video downloader. it always work fine and fast. few ads will appear just to keep me motivated and pay the server costs
Planning on creating an issue-free Chrome extension sooner as well. Gday!
That one fails too, at least with my URLs
That one fails too, at least with my URLs
The tool is made to extract the video ID, even after pasting the whole source code (it does the video ID filtering itself with some regex)
Is it a private video? Providing the video ID here may help. if the video is not sensitive
Yep it's private, but I remember this tool worked with these videos anyway. Can't paste it here, but I can provide the ID privately if you wish to give it a try.
I think they might have tighten their service, as no available method seem to work anymore
This Chrome extension is still working to download Wistia vids as far as I'm concerned...
https://chromewebstore.google.com/detail/fhmlmcbfjnegdoafmfcfmhpahfegdjlp
Has anyone tried the extension or wistiavideodownloader.com with a private url? I'd love to share my links to try but don't really want to share them publicly. One way I can think of is making a private repo and sharing access there, I don't think this platform has PMs.
Has anyone tried the extension or wistiavideodownloader.com with a private url? I'd love to share my links to try but don't really want to share them publicly. One way I can think of is making a private repo and sharing access there, I don't think this platform has PMs.
What do you mean by private URL? a URL that requires login to view the video?
Has anyone tried the extension or wistiavideodownloader.com with a private url? I'd love to share my links to try but don't really want to share them publicly. One way I can think of is making a private repo and sharing access there, I don't think this platform has PMs.
I logged into my paid training portal on Edge and found the wistia hashed_Id code, went to Chrome and used the video downloader and pasted in the hashed code without having logged in previously. So, technically, the wistia codes are all "public" but good luck getting the hashed Ids without accessing the paid training at least once.
I'm all for keeping a local copy of something I paid for. In this case, the videos are hosted on Wistia while the course provider is Thinkific. I'm 100% sure something changed between a couple of months ago and now, as the *.bin files previously accessible by looking into the jsop now return 403, even from within the same authenticated browser session. I'm not a frontend dev, but if I have to guess an authentication code/token is now sent when the website requests that resource.
@mbagattini Particular to thinkific, I have fixed it. Wistia has recently restricted private video downloads and it depends on the wisitia admin to keep videos private or public.
In order to download private videos:
- you need to find the iframe source (platform specific)
- get the account id and jwt token
- generate the playlist URL
- multi threaded download (all ts files) and then merge all segments with ffmpeg
- Obtain the Video Player HTML
Protected Wistia videos are embedded in an HTML iframe that contains the necessary authorization tokens.
This endpoint returns an HTML page with the embedded Wistia player and is platform specific.
- Extract Video ID and JWT Token
From the HTML response, extract:
a) Wistia Video ID:
Find the jsonp URL containing the video ID.
Regex Pattern:
'/medias\/(\w+)\.jsonp/'b) JWT Authorization Token:
options.authorization = {
jwt: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...'
}Regex Pattern:
/jwt:\s*['\"]([^'\"]+)['\"]/sNote: The JWT token may span multiple lines in the HTML. Remove all whitespace/newlines after extraction.
- Get Video Metadata
Query the Wistia API to get video metadata:
GET https://fast.wistia.com/embed/medias/{video_id}.json
Response includes:
protected: Boolean indicating if video is protectedaccountId: Required for constructing protected URLsassets: Array of video qualities and formats
- Construct Protected M3U8 URL
For protected videos, construct the HLS playlist URL:
https://fast-protected.wistia.com/embed/accounts/{account_id}/medias/{video_id}.m3u8?quality_min=360&quality_max=2160&pma={jwt_token}
Parameters:
account_id: From metadata responsevideo_id: Wistia video IDpma: JWT token (URL-encoded if necessary)
Note:
- Wistia JWT tokens are very much time limited.
- Playlist JWT is valid for 24h
@mbagattini Particular to thinkific, I have fixed it. Wistia has recently restricted private video downloads and it depends on the wisitia admin to keep videos private or public.
In order to download private videos:
- you need to find the iframe source (platform specific)
- get the account id and jwt token
- generate the playlist URL
- multi threaded download (all ts files) and then merge all segments with ffmpeg
- Obtain the Video Player HTML
Protected Wistia videos are embedded in an HTML iframe that contains the necessary authorization tokens.
This endpoint returns an HTML page with the embedded Wistia player and is platform specific.
- Extract Video ID and JWT Token
From the HTML response, extract:
a) Wistia Video ID: Find the jsonp URL containing the video ID.
Regex Pattern:
'/medias\/(\w+)\.jsonp/'b) JWT Authorization Token:
options.authorization = { jwt: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...' }Regex Pattern:
/jwt:\s*['\"]([^'\"]+)['\"]/sNote: The JWT token may span multiple lines in the HTML. Remove all whitespace/newlines after extraction.
- Get Video Metadata
Query the Wistia API to get video metadata:
GET https://fast.wistia.com/embed/medias/{video_id}.jsonResponse includes:
protected: Boolean indicating if video is protectedaccountId: Required for constructing protected URLsassets: Array of video qualities and formats
- Construct Protected M3U8 URL
For protected videos, construct the HLS playlist URL:
https://fast-protected.wistia.com/embed/accounts/{account_id}/medias/{video_id}.m3u8?quality_min=360&quality_max=2160&pma={jwt_token}Parameters:
account_id: From metadata responsevideo_id: Wistia video IDpma: JWT token (URL-encoded if necessary)Note:
- Wistia JWT tokens are very much time limited.
- Playlist JWT is valid for 24h
Hi Sumeet, thanks so much for the information!
Is this restriction by Wistia only applicable to Thinkific? Or can admins make any embedded videos private?
Upon checking my Wistia account, the only relevant option I see is to make a video password-protected, so the video can only be watched upon entering the password. Not sure if that's what you refer to as private?
Hi @berroz1 Wistia admins can make any video private. It is independent of platform. Thinkfic type platforms just use the embed code to show to end users.

Perfect thank you. Working Well and file sizes are good also