Here’s a developer-friendly blog post based on the tweet and GitHub repo you shared.
Title: Download Courses and Media from the Command Line with OmniGet
Intro
You know that feeling when you find a great online course or a media library you want to keep offline, but the platform doesn’t offer a download button? It’s frustrating. Enter OmniGet, an open-source CLI tool that lets you grab courses and media files directly from the web.
It’s not a flashy SaaS product. It’s a pragmatic script that does one thing and does it cleanly. If you’ve ever wanted to archive a tutorial series or a playlist without clicking through dozens of pages, this is for you.
What It Does
OmniGet is a command-line tool that downloads course content and media files from supported sources. It uses Python under the hood. You provide a URL, and it fetches the videos, subtitles, and accompanying materials in a structured way. Think of it as a focused crawler that knows exactly what to look for.
The repository (tonhowtf/omniget) includes the source code, a requirements file, and basic instructions. It’s not reinventing the wheel. It uses requests, BeautifulSoup, and yt-dlp (a well‑known fork of youtube‑dl) to handle the heavy lifting.
Why It’s Cool
OmniGet stands out for a few reasons:
- No bloat. It’s a single-purpose tool. No accounts, no UI, no “pro” tier. Just install Python dependencies and run.
- Course‑aware. Unlike a generic downloader, it knows how to navigate course structures (like sections and chapters) and respects the order.
- Simple error handling. It retries failed downloads and logs which files were skipped, so you can rerun the command without starting over.
- Lightweight. The entire repo is under a few hundred lines. Easy to read, easy to modify.
One clever implementation detail: it uses a session cache to avoid re‑downloading files you already have. Handy if you’re frequently updating a course.
How to Try It
You’ll need Python 3.8+ and pip. Here’s the quick start:
git clone https://github.com/tonhowtf/omniget.git
cd omniget
pip install -r requirements.txt
python omniget.py --url "https://example.com/course"
That’s it. The tool will create a folder named after the course and start downloading. Check the --help flag for options like output directory and quality preference.
If you run into issues, the README has a basic troubleshooting section. Most problems are just missing dependencies or a blocked URL.
Final Thoughts
OmniGet isn’t going to replace a streaming service or a full LMS. But as a developer, you probably know the value of a sharp, single‑purpose tool. It saves time, respects your file system, and works offline.
I’d use this for archiving technical courses I want to watch on flights or for grabbing media from a public library site that doesn’t offer an export option. It’s not perfect (yet), but it’s a solid starting point. If you contribute a PR for a new source, that’d be a great improvement.
Follow us on X: @githubprojects
Repository: https://github.com/tonhowtf/omniget