Khan Academy is one of the few remaining large-scale educational video libraries that treats its content as a public good rather than a subscription wall. Lectures, worked problem sets, science demonstrations, and full course playlists are streamed freely to anyone with a browser. That openness, however, is not the same as permanence. Lessons are periodically re-recorded, re-sequenced into new course structures, or silently retired when curricula change. A URL that resolves today to a lesson on stoichiometry may return a 404 within a year, and no archive announcement will accompany the disappearance.
The technical obstacles to preserving this material are ordinary for modern streaming. Khan Academy delivers video as chunked adaptive streams, typically in DASH or HLS containers, where a single lesson is fragmented into hundreds of short segments served at varying bitrates. The player negotiates a manifest and pulls only the fragments it needs, which is why a browser's "Save video as" option yields nothing useful. Sustained bulk downloading also runs into polite server-side throttling and per-connection rate limits, meaning a naive single-threaded fetch of a 60fps 1080p lecture can take far longer than the video's own runtime. Subtitles arrive as a separate track, and multi-video course playlists must be enumerated before any download begins.
None of this is a legal grey area for personal archival. Recording a freely available educational stream for offline study, classroom use without connectivity, or long-term preservation under fair use is well established in most jurisdictions. What is not acceptable is redistribution, re-uploading, or commercial exploitation of the material. Treat your archive as a private library, not a publishing pipeline.
This guide compares three practical routes to that archive: a desktop GUI application built on Tauri v2 and Rust that wraps upstream open-source utilities such as yt-dlp, FFmpeg, and aria2c; the upstream yt-dlp command-line tool used directly; and browser-based converter sites. Each has a different trade-off between convenience, fidelity, and risk. All three handle the same fragmented streams, but they differ sharply in how much of the resolution ladder, subtitle set, and playlist structure survives the trip to your hard drive.
yt-dlp app (Recommended Desktop GUI)
The yt-dlp app is a proprietary desktop application built on Tauri v2 and Rust that bundles upstream open-source utilities — yt-dlp, FFmpeg, and aria2c — behind a native interface. Its multi-connection fragment engine splits each lesson into parallel downloads, which matters enormously for 60fps 4K lecture captures where a single-threaded fetch would stall against server-side throttling.
When the video and audio arrive on separate adaptive tracks, FFmpeg muxing is invoked automatically, joining them into a single playable file without manual remux commands. Subtitle tracks are captured alongside the video and can be embedded or exported separately. All queue state, download history, and preferences live in local filesystem JSON storage with zero telemetry — nothing about your archive leaves the machine.
Step-by-Step Instructions
Step 1: Download & Launch yt-dlp app
Install the desktop build for your operating system from the official source and open it. All bundled utilities are configured on first run, so no separate dependency setup is needed.
Step 2: Paste the Khan Academy Video or Playlist URL
Copy the lesson or course URL from your browser and paste it into the input field. The app resolves manifests and enumerates every video inside a playlist automatically.
Step 3: Select Resolution, Frame Rate, and Subtitles
Choose your target quality from the available ladder — up to 4K and 60fps where the source provides it — and tick the subtitle languages you want captured.
Step 4: Choose an Output Folder and Start the Download
Pick a destination on your drive and begin. Multi-fragment acceleration and FFmpeg muxing run in the background; completed files are playable immediately.
Step 5: Verify the Archive and Export Subtitles if Needed
Play back a sample file to confirm audio and video muxed correctly, then export subtitle tracks separately if you want searchable transcripts in your library.
Advantages
- ✓ Multi-connection aria2c fragment acceleration with automatic FFmpeg muxing of separate video and audio tracks
- ✓ Native playlist enumeration so full Khan Academy courses download in correct sequence
- ✓ Zero telemetry, with all settings and history kept in local filesystem JSON storage
Drawbacks
- ✗ Requires desktop installation
Ready to download yt-dlp app? 🚀
Experience native speed, 4K/8K stream extraction, and zero telemetry video archiving on Windows, macOS, and Linux. ✨
Get yt-dlp appyt-dlp (Command Line Interface)
yt-dlp itself is the upstream open-source command-line powerhouse that most desktop tools, including the GUI above, ultimately drive. Invoked directly, it exposes the full breadth of its options: format selection expressions, playlist range filters, subtitle download flags, cookie injection, and post-processing hooks for embedding metadata or extracting audio.
This is the right choice for automation. A shell script or scheduled task can mirror an entire course channel, enforce a consistent naming convention, and log failures for retry — all without a graphical session. The cost is terminal familiarity, and the responsibility for keeping yt-dlp and FFmpeg current on your own system.
Step-by-Step Instructions
Step 1: Install the CLI and FFmpeg
Install yt-dlp through your package manager or the official binary, then install FFmpeg separately. Confirm both are on your system PATH before continuing.
Step 2: Inspect Available Formats
Run a format listing against the lesson URL to see the exact resolution, frame rate, and codec combinations the server offers.
Step 3: Build Your Format Selector
Compose a format expression that prefers the highest video stream plus the best audio stream, and add subtitle flags for the languages you need.
Step 4: Download the Video or Full Playlist
Execute the command against a single URL, or point it at a playlist with a range filter to archive an entire course unattended.
Advantages
- ✓ Complete access to advanced format selectors, playlist filtering, and post-processing hooks
- ✓ Ideal for scripting, cron jobs, and reproducible bulk archival workflows
- ✓ Upstream open-source tool with a very large and responsive development community
Drawbacks
- ✗ Steep learning curve; format expression syntax and flag combinations are unforgiving
- ✗ Manual dependency management — you must install and update yt-dlp and FFmpeg yourself
Web-Based Online Converters
Browser-based converter sites ask only for a pasted URL and return a downloadable file. For a single low-stakes video, that convenience is real, and there is nothing to install. The trade-off is that you surrender control of the entire pipeline to an anonymous third party.
These services typically cap output well below the source's best quality, transcode aggressively to save server bandwidth, and drop subtitle tracks entirely. Many are funded by intrusive pop-ups and redirect chains, and several have been documented collecting the URLs users submit. Server-side rate limits mean long playlists are effectively out of reach.
Advantages
- ✓ No installation required; works from any browser on any device
- ✓ Simple single-file workflow with no configuration or command syntax to learn
Drawbacks
- ✗ Intrusive ads, aggressive pop-ups, and redirect chains that obscure the actual download
- ✗ Privacy tracking — submitted URLs are logged by an unknown third party
- ✗ Strict resolution caps and lossy re-encoding that discard subtitles and high frame rates