The open-source tool to download courses and media files
GitHub RepoImpressions124

The open-source tool to download courses and media files

@githubprojectsPost Author

Project Description

View on GitHub

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

Back to Projects
Project ID: 53d62d87-889e-436c-b18d-13ecd4b9be82Last updated: April 30, 2026 at 08:13 PM