Circle.so hosts course videos using HLS streaming, where video data is split into .ts segments and controlled by a .m3u8 playlist file.
This guide shows you how to download, optimize, and auto-name Circle Academy videos with a single command on macOS.
Try the Circle Video Downloader โ it automatically detects and saves circle.so videos in one click. Or check out the code repository
- Open Developer Tools โ Network in your browser.
- Filter by
m3u8. - Youโll see URLs like:
https://cdn-media.circle.so/.../playlist.m3u8
or
https://cdn-media.circle.so/.../playlist_1.m3u8
โ
Use the playlist.m3u8 file (the master manifest).
This is your reusable one-liner template.
It handles download, metadata optimization, and QuickLook thumbnail compatibility.
yt-dlp -o "%(title)s.%(ext)s" "<PASTE_M3U8_URL_HERE>" --exec 'ffmpeg -y -i "{}" -movflags +faststart -pix_fmt yuv420p -c copy "{}_fixed.mp4" && mv "{}_fixed.mp4" "{}"'๐ก Keep this saved somewhere โ youโll just swap out the placeholder each time.
- Go back to DevTools and copy your actual
.m3u8link. - Replace
<PASTE_M3U8_URL_HERE>in the command with your real link. - Paste it into Terminal and hit Enter.
โ It will automatically:
- Download all
.tssegments and merge them. - Dynamically name the file based on video metadata.
- Add
faststartand pixel formatting for Finder previews. - Replace the original file with the optimized one.
| Flag | Purpose |
|---|---|
-o "%(title)s.%(ext)s" |
Dynamically name the file based on metadata. |
--exec 'ffmpeg ...' |
Run ffmpeg automatically after download. |
-movflags +faststart |
Moves metadata to the start of file for instant playback. |
-pix_fmt yuv420p |
Ensures Finder and QuickLook compatibility. |
-c copy |
No re-encoding (lossless). |
| Issue | Cause | Fix |
|---|---|---|
| Token expired | Circleโs CDN tokens expire quickly. | Refresh the page and grab a fresh .m3u8 link. |
| No title metadata | Some Circle embeds omit titles. | yt-dlp will fallback to a timestamp-based filename. |
| No thumbnail still | macOS caching delay. | Run qlmanage -r cache to refresh Finder previews. |
- Find the
.m3u8link under Network โ Media. - Use the master
playlist.m3u8, not the_1.m3u8variant. - Copy the template command from Step 2.
- Replace the placeholder URL in Step 3.
- Youโll get a Finder-previewable
.mp4auto-named and ready to use.
๐ก Tip: Prefer a one-click solution?
Use the Circle Video Downloader to automatically detect, download, and merge Circle.so course videos without touching the command line.