Have you ever purchased a video course or similar content?
Platforms often promise “lifetime” access — which is rarely true.
Terms can change, prices can rise, or the service may even shut down.
Additionally, you might need the videos in an environment with limited (or no) internet access.
Here are two methods I’ve found useful for downloading videos from the web:
1. Using a Browser Extension
This is the most convenient method. With just one click, videos can be saved directly to your computer.
I recommend Video DownloadHelper, which works very well in Firefox.
It’s also available for other browsers — just install it using your browser’s standard extension or add-on manager.
2. Downloading via the Shell
In more complex cases — for example, when videos are protected by a token — a command-line approach may be required.
On my Mac, I used:
- A browser with Developer Tools
- Streamlink (
brew install streamlink
)
Note: In theory,
ffmpeg
can also be used, but it didn’t work for my specific case.
Step 2.1 — Identify the Video URL
- Open Developer Tools in your browser (
Firefox → Tools → Browser Tools → Web Developer Tools
orCmd+Opt+I
). - Switch to the Network tab and refresh the page.
- Use the Filter field to search for:
m3u8
- Usually, the video stream appears in the first result — but this can vary.
Right-click the entry and choose Copy Value or Copy URL (in Firefox:Copy Value / Copy URL
).
You can also check theGET
request in the Headers tab to find the URL.
Step 2.2 — Build the Shell Command
- Add the Referer header using the current page URL from your browser.
- Add the Origin header using the base domain from that URL.
- Use the full
.m3u8
URL (from above) in the command. - Choose a filename for the downloaded video.
Example:
streamlink \
--http-header Referer="https://course.specificdomain.com/course-name/lesson/5761622243" \
--http-header Origin="https://course.specificdomain.com" \
"https://xxx.file.domain.com/master-xyf-da7a2c54d93b.m3u8?params..." \
best -o yourname.mp4
Notes:
- If the video uses a short-lived token, run the command quickly before it expires.
- If the video is protected by DRM, you will need a different solution.
- Always pay for the content you consume and never share it outside your household!