tonhowtf/omniget

▲ 1,018 stars today★ 12,353⑂ 1,068

Download Udemy and Hotmart courses, YouTube videos, music and books — 1,800+ sites, no terminal. Free open-source desktop app for Windows, macOS and Linux, with a built-in course player, PDF/EPUB reader and music library. Powered by yt-dlp. Your files stay on your computer.

12,353Star
1,068Fork
46Watch
41Issue
RustLanguage
GPL-3.0License
Created 2026-02-11 · last push 2026-09-11 · repository size 54687 KB · default branch main

README

https://github.com/tonhowtf/omniget/blob/HEAD/OmniGet: paste a link, get the file. Downloads, tools and a study library in one desktop app for Windows, macOS and Linux.

OmniGet

English · Português (BR) · Русский · 简体中文

Download Udemy and Hotmart courses, YouTube, Instagram, X, Pinterest, TikTok and 1,800+ other sites.
Then transcribe, convert, read and study what you saved. One free desktop app, no terminal.

https://github.com/tonhowtf/omniget/blob/HEAD/Latest release https://github.com/tonhowtf/omniget/blob/HEAD/Total downloads https://github.com/tonhowtf/omniget/blob/HEAD/GitHub stars https://github.com/tonhowtf/omniget/blob/HEAD/License GPL-3.0 https://github.com/tonhowtf/omniget/blob/HEAD/Discord community https://github.com/tonhowtf/omniget/blob/HEAD/Translation status

https://github.com/tonhowtf/omniget/blob/HEAD/Download OmniGet   https://github.com/tonhowtf/omniget/blob/HEAD/See the Tools section

Free. Open source under GPL-3.0. No account, no ads, no telemetry on what you download. Your files stay on your computer.
9,500+ GitHub stars. The most starred repository in the udemy-downloader, hotmart-downloader and course-downloader topics.

https://github.com/tonhowtf/omniget/blob/HEAD/OmniGet home screen: paste a URL, magnet link or .torrent and the file lands in your folder

---

Contents

---

Why OmniGet

You bought a course and want it on your disk before the platform pulls it. You keep a yt-dlp cheat sheet because the flags never stick. You have one site for Instagram stories, another for X videos, a Chrome extension for Pinterest, a Python script for subtitles, and none of them remember your login.

OmniGet puts all of that behind one text box. Paste a link, see a preview with quality options, click download. The same window then plays the course, reads the PDF, transcribes the audio and backs up the Pinterest board. yt-dlp and FFmpeg install themselves and stay updated, so there is nothing to configure and no terminal to open.

https://github.com/tonhowtf/omniget/blob/HEAD/How OmniGet works: paste a link or press the hotkey, OmniGet detects the site and fetches with yt-dlp or a native extractor, the file lands in your folder and opens in the built-in player, reader or tools.

How it compares

| | OmniGet | yt-dlp alone | Single-site web downloaders | Paid course downloaders | |---|---|---|---|---| | Sites | Courses, Instagram, X, Pinterest, Bilibili, Telegram, torrents natively, plus 1,800+ through yt-dlp | 1,800+ | One | One or two platforms | | Setup | Download one file, open it | Python, PATH, FFmpeg, flags | None | Installer, license key | | Logged-in content | Cookies from your browser through the extension | Manual --cookies export | Rarely | Sometimes | | Queue | Resume, retry with backoff, rules, followed channels | One command at a time | No | Varies | | After the download | Player, reader, flashcards, notes, 108 tools | Files | Files, often re-encoded | Files | | Price and license | Free, GPL-3.0 | Free, Unlicense | Free with ads | Subscription |

yt-dlp is the engine OmniGet runs on, and OmniGet would not exist without it. If you live in a terminal and only want files, yt-dlp alone is the right tool.

---

Download and install

Pick your system. Every build is published on the Releases page. Updates arrive inside the app.

System What to download Other ways
Windows 10 / 11 omniget_x.y.z_x64-setup.exe (installer)
omniget_x.y.z_x64-portable.exe (no install, runs from anywhere)
omniget_x.y.z_x64_en-US.msi (for IT deployments)
winget install -e --id tonhowtf.OmniGet
macOS 10.15+ omniget_x.y.z_aarch64.dmg for Apple Silicon (M1 and later)
omniget_x.y.z_x64.dmg for Intel Macs
brew install --cask tonhowtf/tap/omniget
Linux .deb for Debian and Ubuntu (amd64 and arm64)
.rpm for Fedora, openSUSE and RHEL family (x86_64 and aarch64)
.AppImage for everything else (amd64 and aarch64)
AppImage self-updates through the .zsync files

The first launch warning, and how to clear it

OmniGet is not signed with a paid certificate, so each system shows a warning the first time. This is normal for open source desktop apps and you handle it once.

Windows. SmartScreen shows a blue box. Click More info, then Run anyway.

macOS. Gatekeeper refuses to open the app and may say it is "damaged". After you drag OmniGet into Applications, open Terminal (Spotlight, type "Terminal") and paste these two lines:

xattr -cr /Applications/omniget.app
codesign --force --deep --sign - /Applications/omniget.app

Then open OmniGet from Launchpad as usual.

Linux, AppImage on Debian 12+ or Ubuntu 24.04+. Those releases ship without FUSE 2, which AppImage needs. If the file fails with a libfuse error, run sudo apt install libfuse2, or launch it with ./omniget.AppImage --appimage-extract-and-run. The .deb avoids this entirely.

Portable mode

Create an empty file named portable.txt (or .portable) next to the Windows .exe and relaunch. Settings, the database, cookies, plugins, caches, yt-dlp and FFmpeg all move to a data folder next to the executable. Nothing touches AppData, so the whole install fits on a USB stick.

---

Your first download in one minute

1. Open OmniGet. The setup screen asks for your language and theme, then installs yt-dlp and FFmpeg with one click. yt-dlp is checked against its SHA-256 before it runs. 2. Copy any link: a YouTube video, an Instagram reel, an X post, a Pinterest board, a magnet, a direct file URL. 3. Paste it in the box on the home screen. OmniGet detects the site and shows the title, thumbnail and available qualities. Pick one and press Enter.

The Downloads page shows speed, phase and ETA read straight from the downloader, so a stalled download looks stalled instead of frozen at "3 seconds left". Interrupted downloads resume where they stopped. Rate-limited sites get retried with backoff, and connections per site adapt on their own, so YouTube gets up to 16 parallel fragments while a site that answers 429 gets fewer. When a Python 3.10 or newer is present, yt-dlp runs as a zipapp on it and starts in under a second instead of unpacking the bundled binary on every launch.

https://github.com/tonhowtf/omniget/blob/HEAD/OmniGet Downloads page with an active 4K YouTube download showing phase, speed, ETA and the exact yt-dlp command, plus queued and finished items

Skip the window entirely

Copy a link anywhere on your system and press Ctrl+Shift+D (Cmd+Shift+D on macOS). OmniGet reads the clipboard and starts the download in the background. A second hotkey, Ctrl+Shift+M, grabs audio only, so a YouTube link becomes an MP3 without opening anything. It is off until you enable it, and both shortcuts can be rebound in Settings → Downloads → Clipboard & hotkeys.

---

What OmniGet downloads

OmniGet has native extractors for the platforms people use most, and hands everything else to yt-dlp, which covers roughly 1,800 sites.

| Category | Sites and formats | |---|---| | Online courses | Hotmart, Udemy, Kiwify, Rocketseat and Meta-Analysis Academy through the Courses plugin. Every lesson, section selection, attachments, resume where you stopped. | | Video and audio | YouTube (videos, playlists, channels, live from start, chapters, SponsorBlock), Instagram, TikTok, X/Twitter, Reddit, Twitch (VODs, clips, live), Vimeo, Bluesky, Threads, Pinterest, Douyin | | Bilibili, signed in | 4K, HDR, Dolby Vision, Hi-Res lossless and Dolby Atmos according to your subscription. Danmaku comments as XML, ASS or JSON, NFO files for Kodi and Jellyfin, custom naming templates, 11 URL types including bangumi, courses, favorites, watch later and history | | Image galleries | Whole galleries and profiles from 250+ sites through gallery-dl (DeviantArt, Pixiv, ArtStation, Flickr, Tumblr, Imgur, Kemono and more) | | Bulk | Paste many links or load a .txt, download whole subreddits, Reddit and X profiles, Instagram and Pinterest profiles | | Files and transfer | .torrent files and magnet links with a built-in BitTorrent client, direct HTTP files, HLS and DASH manifests, and person-to-person transfer between two OmniGet installs with a short word code | | Telegram | Photos, videos, files and audio from any channel or group you belong to, through the Telegram plugin |

Options you set once and forget: default quality, audio-only format (MP3, M4A, Opus, FLAC or WAV), subtitle languages and format (SRT, VTT, ASS, embedded or sidecar), thumbnail and metadata embedding, filename template, organize by platform, skip existing files, split by chapters, speed limit, concurrent downloads, proxy. Rules send a given channel or host to a folder and quality of your choice without asking again. Followed channels are checked in the background and can download new uploads automatically with a tray notification.

https://github.com/tonhowtf/omniget/blob/HEAD/OmniGet settings: grouped sidebar with Appearance, Downloads, Network, Cookies, Channels, AI, Plugins and Advanced, and a download section with Output, Quality, Subtitles, Clipboard and hotkeys, Per-platform options

---

The browser extension, step by step

The extension does two jobs. On sites it recognizes (YouTube, Instagram, TikTok, X, Reddit, Twitch, Pinterest, Bluesky, Telegram, Vimeo, Udemy, Hotmart, Rocketseat, Bilibili, SoundCloud) it sends the page to OmniGet with one click or with Alt+O. On any other site it watches network traffic for MP4, HLS, DASH, WebM and audio streams and lists them in its popup. In both cases it forwards your cookies and referer, which is what lets OmniGet download private content you are logged into, such as Instagram stories, a paid course, or a members-only video. Cookies are grouped by real site, so a Brazilian .com.br domain gets its own entry instead of sharing one with every other .com.br site. The popup also has a Force H.264 switch for YouTube, for computers that stutter on VP9 and AV1.

Pick the level that matches how comfortable you are.

https://github.com/tonhowtf/omniget/blob/HEAD/Pairing flow: install the extension in Chrome, click Pair extension in OmniGet Settings, the extension finds the app on localhost and connects. From then on every download carries your cookies.

Level 1: from inside the app (no downloads, no zip files)

1. Open OmniGet and install it if you have not. Launch it once. 2. Go to Settings → Plugins → Browser extension. Click Update / Install next to Chrome. OmniGet copies the extension that ships inside it to a folder and opens that folder for you. 3. Open Chrome (Edge, Brave and other Chromium browsers work the same way) and type chrome://extensions in the address bar. 4. Turn on Developer mode with the switch in the top right corner. 5. Click Load unpacked and pick the folder OmniGet just opened. 6. The OmniGet icon appears in the toolbar. An options page opens on its own and says it is looking for the app. 7. Back in OmniGet, still in Settings → Plugins → Browser extension, click Pair extension. Within a few seconds the app says "Extension connected" and the options page turns green. Done.

From now on, visit any supported page and click the icon. The page, its cookies and its title go to OmniGet and the download starts. Your cookies also show up in Settings → Cookies, where the Courses plugin and the Instagram, X and Pinterest tools reuse them.

Level 2: from the release zip

Every release ships omniget-chrome-extension-vX.Y.Z.zip. Download it from the latest release, unzip it, then follow steps 3 to 7 above pointing Load unpacked at the unzipped folder. Use this if you keep the app on one machine and the browser on another, or if you are installing for someone else.

Level 3: Firefox, other browsers and manual pairing

Firefox: Settings → Plugins → Browser extension → Update / Install next to Firefox, then open about:debugging#/runtime/this-firefox, click Load Temporary Add-on and pick manifest.json in the exported folder. Firefox drops temporary add-ons on restart, so repeat this until the extension is published on AMO. Safari is not supported yet because Safari extensions must ship through the App Store.

Manual pairing: if Pair extension times out, open the extension's options page (right-click the icon → Options), then in OmniGet reveal and copy the Pairing token and paste it into the options page. The endpoint URL is detected automatically. The app listens on 127.0.0.1 ports 47720 to 47729 and the token is generated per install, so nothing leaves your machine.

If the extension is installed but OmniGet is closed, clicks fall back to the omniget:// link scheme, which still queues the URL but cannot carry cookies. Tick "Always allow" the first time Chrome asks.

---

The Tools section: 108 tools in 16 categories

Tools is the part of OmniGet that grew beyond downloading. Each tile is one job: an isolated Rust command with JSON in and JSON out, which is also what lets AI agents drive them through the built-in MCP server. The hub has a search box that understands English and Portuguese ("legenda" finds subtitle tools) and a platform filter, and tools that only run on Windows say so on the tile and stay hidden elsewhere.

https://github.com/tonhowtf/omniget/blob/HEAD/OmniGet Tools hub with 16 categories: YouTube, Speech and subtitles, Video editing, Instagram, X, Pinterest, Spotify, PDF, Documents, Images, System, Files, Downloads, Automation, Phone and AI

Status legend: no mark means ready, beta means it works but has not been tested against every account type, planned means the tile exists so you can see where things are going and does nothing yet.

https://github.com/tonhowtf/omniget/blob/HEAD/Instagram tools in OmniGet: download post, bulk download, reel audio, stories, highlights, story viewers, profile viewer, HD avatar, profile download, unfollowers, fans, mutuals, who unfollowed, ghost followers, whitelist, data export, analytics, compare profiles, hashtag explorer, comments, likers, giveaway picker, publish and schedule https://github.com/tonhowtf/omniget/blob/HEAD/X / Twitter tools in OmniGet: download post, unroll thread, post to image, profile X-ray, profile media, advanced search, export bookmarks, who doesn't follow back, your X archive and Grok
https://github.com/tonhowtf/omniget/blob/HEAD/Pinterest tools in OmniGet: download pin, board backup, profile backup, search without AI or ads, similar pins, find the source, duplicates, color palette, offline gallery and keyword ideas https://github.com/tonhowtf/omniget/blob/HEAD/Speech and subtitles tools in OmniGet: transcribe with whisper.cpp, text to speech, translate subtitles, dub from subtitles, and planned voice cloning, voice design, vocal isolation and dictation

YouTube (11)

Speech and subtitles (8)

Video editing (6)

Instagram (24)

All of these run on your own Instagram session captured by the browser extension, so stories, close friends and your own lists work. Reads are paced and write actions stop on the first sign of a rate limit.

X / Twitter (10)

Public data comes through the FxTwitter API without login. Anything private (bookmarks, your follows, Grok on X) uses y

More Today's Trending projects

1

debpalash / VoiceStudio

Python★ 29,840⑂ 3,606▲ 2,776 stars
2

JustVugg / colibri

C★ 32,609⑂ 3,430▲ 2,173 stars
3

bilawalsidhu / gods-eye-view

JavaScript★ 33,945⑂ 6,772▲ 1,831 stars
4

alibaba / open-code-review

Go★ 26,516⑂ 1,906▲ 1,571 stars
5

ever-co / ever-gauzy

TypeScript★ 6,164⑂ 994▲ 1,130 stars
6

pacifio / atlas

Rust★ 4,440⑂ 274▲ 1,091 stars