PromptHub
Back to Blog
Developer Tools Open Source

tonhowtf/omniget: Cross-Platform Media Downloader with 1,800+ Site Support

B

Bright Coding

Author

11 min read 21 views
tonhowtf/omniget: Cross-Platform Media Downloader with 1,800+ Site Support

tonhowtf/omniget: Cross-Platform Media Downloader with 1,800+ Site Support

Developers and technical users often find themselves juggling multiple tools to download, organize, and consume media. A course on Udemy requires one workflow, a YouTube playlist another, a PDF or EPUB something else entirely. Most existing solutions are either command-line only, single-purpose, or locked behind proprietary services. The friction of switching between yt-dlp terminals, browser extensions, ebook readers, and music players accumulates fast.

tonhowtf/omniget addresses this fragmentation directly. It is a free, open-source desktop application that unifies media downloading, organization, and playback in a single interface. Built with Tauri, Rust, and Svelte, it runs natively on Windows, macOS, and Linux without requiring Python↗ Bright Coding Blog, terminal knowledge, or external setup. With support for over 1,800 sites through yt-dlp integration and native extractors for major platforms, it handles courses, videos, music, books, and more in one place. This article examines what tonhowtf/omniget offers, how it works, and whether it deserves a place in your workflow.

What is tonhowtf/omniget?

tonhowtf/omniget is an open-source desktop application maintained by the GitHub user tonhowtf. As of its last commit on 2026-07-10, the repository has accumulated 6,738 stars and 571 forks, with Rust as its primary language. It is released under the GNU General Public License v3.0.

The project sits at the intersection of several technical categories: media downloader, ebook reader, music player, and course manager. Its architecture is notable for modern desktop development: Tauri provides the native application shell, Rust handles the backend and system-level operations, and Svelte drives the frontend interface. This stack produces a smaller footprint than Electron-based alternatives while maintaining cross-platform compatibility.

OmniGet's relevance stems from its scope. Where most downloaders specialize—yt-dlp for video, Calibre for ebooks, various clients for music—OmniGet attempts to unify these functions. It bundles yt-dlp and FFmpeg internally, verifies yt-dlp by SHA256 before execution, and manages plugin updates automatically. The project earned its GitHub traction, according to its own documentation, because this particular combination of features in a single open-source application did not previously exist.

The application targets users who want local control of their media without command-line interaction. Everything runs on-device; there is no cloud component, no account requirement, and no telemetry on download activity.

Key Features

Native cross-platform delivery. OmniGet ships as a portable .exe for Windows, a .dmg for macOS, and a Flatpak or bundle for Linux. No installation wizard or administrator privileges are required.

Global hotkey downloading. Press Ctrl+Shift+D (or Cmd+Shift+D on macOS) with any URL in your clipboard, and OmniGet begins downloading in the background without opening its window. This works system-wide, regardless of which application is active.

Comprehensive site support. Through yt-dlp integration, OmniGet supports approximately 1,800 sites. Native extractors provide enhanced functionality for specific platforms:

  • Online courses: Udemy, Hotmart, Kiwify, Gumroad, Teachable, Kajabi, Skool, Wondrium, Thinkific, Rocketseat
  • Video and audio: YouTube, Instagram, TikTok, Twitter/X, Reddit, Twitch, Pinterest, Vimeo, Bluesky, Bilibili
  • Asian platforms: Douyin, Xiaohongshu, Kuaishou, Youku, iQiyi, Tencent Video, Mango TV
  • Image galleries: DeviantArt, Pixiv, ArtStation, Flickr, Tumblr, Imgur, Kemono, Newgrounds
  • File transfer: Torrent and magnet links, plus direct P2P transfer between computers using a short code

Bilibili deep integration. Signed-in users unlock 4K, HDR, Dolby Vision, Hi-Res lossless audio, and Dolby Atmos. The application supports 11 URL types including UGC, anime, courses, favorites, creator profiles, and more, with danmaku export in XML/ASS/JSON and NFO generation for Kodi and Jellyfin.

Built-in media players. Downloads are not merely stored—they are consumed within the application. The course player supports resumption to the exact second, timestamped notes, and side-by-side PDF attachments. The ebook reader handles PDF, EPUB, CBZ, TXT, and HTML with highlights, bookmarks, focus mode, and a paper-feel theme. The music player supports MP3, FLAC, M4A, OGG, and Opus, with synced lyrics, streaming service integration (Spotify, SoundCloud, YouTube Music, Qobuz, Last.fm), an equalizer, and Discord Rich Presence.

Reliable download mechanics. Speed and ETA are reported from the downloader itself, not extrapolated from percentage progress, so they remain accurate for live streams or unknown file sizes. Stalls are displayed as stalls. The queue resumes interrupted downloads and retries with backoff.

Extensible plugin system. Features including Courses, Telegram browsing, and format conversion are implemented as Rust dynamic libraries via the omniget-plugin-sdk. Third-party plugins are supported, with a template repository and registry available.

Additional utilities: Subtitle Workshop with timing tools, AI translation, and waveform editing; a Pomodoro timer; a notes application with bidirectional links and knowledge graph; a progress dashboard; an FFmpeg converter; a Telegram chat browser; and browser extensions for Chrome and Firefox.

Use Cases

Self-directed learners consolidating course materials. A developer purchasing courses from Udemy, Hotmart, or Teachable can download complete curricula with all attachments, then study offline with timestamped notes and synchronized PDFs. The resume-to-second functionality eliminates the friction of locating your position across multiple platforms.

Content archivists managing diverse media types. Technical users who maintain local libraries of videos, music, and documents can replace multiple specialized applications. A single hotkey downloads a YouTube playlist, a TikTok creator's output, or a podcast; the same application organizes and plays the resulting files.

Researchers working with international platforms. Academics or analysts accessing Bilibili, Douyin, or regional streaming services gain quality-unlocked downloads with proper metadata, subtitle extraction, and danmaku preservation—functionality typically requiring multiple manual tools.

Offline-first users with connectivity constraints. The portable mode (portable.txt adjacent to the executable) enables complete operation from a USB drive, with all data—settings, database, cookies, plugins, caches, and bundled tools—contained in a local data folder. No writes to AppData\Roaming or equivalent system directories occur.

Developers extending functionality. The plugin SDK and Rust-based architecture allow custom extractors or integrations. The Telegram plugin demonstrates how messaging platform content can be incorporated; similar patterns could apply to other APIs.

Installation & Setup

OmniGet provides platform-specific binaries on its GitHub Releases page.

Windows

Download the .exe from Releases and double-click. The application is portable and executes from any location.

# No installation command required
# Simply run the downloaded executable

On first launch, Windows SmartScreen may display a blue warning. Click More info, then Run anyway. This is standard behavior for open-source applications without paid code signing certificates.

macOS

Download the .dmg, open it, and drag OmniGet to Applications.

# First-launch Gatekeeper bypass (run once in Terminal)
xattr -cr /Applications/omniget.app
codesign --force --deep --sign - /Applications/omniget.app

The xattr -cr command clears extended attributes that mark the application as untrusted. The codesign command applies an ad-hoc signature, satisfying Gatekeeper requirements for local execution. These steps are necessary because OmniGet is not distributed with an Apple Developer ID certificate.

Linux

Install via Flatpak or download the bundle from Releases.

# Flatpak installation
flatpak install wtf.tonho.omniget

Alternatively, download and install the bundle manually.

Build from Source

For developers or users requiring custom builds:

# Clone the repository
git clone https://github.com/tonhowtf/omniget.git
cd omniget

# Install dependencies and launch development build
pnpm install
pnpm tauri dev

Prerequisites: Rust, Node.js 18+, and pnpm.

Linux build dependencies:

# Debian/Ubuntu dependencies
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev patchelf

Production build: pnpm tauri build.

Real Code Examples

The README contains limited explicit code examples. The following are reproduced directly from the documentation, with explanations of their purpose and context.

macOS Gatekeeper bypass (first launch only):

# Clear quarantine attributes from the application bundle
xattr -cr /Applications/omniget.app

# Apply ad-hoc code signature to satisfy Gatekeeper
codesign --force --deep --sign - /Applications/omniget.app

These commands address macOS security restrictions on unsigned applications. The -cr flags to xattr recursively remove the com.apple.quarantine extended attribute. The codesign invocation with --sign - (dash) generates a local signature without a Developer ID. This is a one-time procedure; subsequent launches proceed normally.

Development environment setup:

# Clone repository
git clone https://github.com/tonhowtf/omniget.git
cd omniget

# Install Node.js dependencies
pnpm install

# Start Tauri development server with hot reload
pnpm tauri dev

This sequence establishes the full development environment. pnpm install resolves the Svelte frontend and build tooling dependencies. pnpm tauri dev compiles the Rust backend, launches the Tauri application shell, and enables hot module replacement for the frontend. The Rust toolchain must be present via rustup.

Linux system dependencies:

# Install required system libraries for Linux builds
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev patchelf

These packages provide WebKit2GTK (the rendering engine for Tauri on Linux), X11 automation support (libxdo-dev), SSL/TLS functionality, system tray indicators, SVG handling, and ELF modification tools for AppImage generation. The -y flag automates confirmation.

Flatpak installation:

# Install from Flathub repository
flatpak install wtf.tonho.omniget

This command references OmniGet's reverse-domain application identifier (wtf.tonho.omniget) as registered with Flatpak. The user must have Flatpak configured with the appropriate remote; the README assumes this prerequisite.

The current documentation emphasizes end-user binaries over API or configuration examples. Developers seeking deeper integration should consult the plugin development guide referenced in the README.

Advanced Usage & Best Practices

Portable deployment. Create an empty file named portable.txt or .portable adjacent to the executable. Relaunch to redirect all data—settings, database, cookies, plugins, caches, and bundled yt-dlp/FFmpeg—to a local data directory. This is essential for USB-based workflows or sandboxed environments where system directory writes are restricted.

Quality tier optimization. For Bilibili specifically, sign in once to unlock premium quality tiers (4K, HDR, Hi-Res lossless, Dolby Atmos). The application respects your 大会员 subscription level through official API communication. Without authentication, yt-dlp fallback provides standard quality.

Clipboard workflow integration. The global hotkey (Ctrl+Shift+D / Cmd+Shift+D) is designed for integration with browser workflows. Copy a URL from any application—browser, chat client, terminal—and trigger immediate background download. For preview before download, paste into the omnibox to review quality options.

Plugin management. Plugins self-install on first launch and auto-update. Disable unused plugins from the sidebar to reduce resource footprint. Removed plugins persist as uninstalled; the application does not re-download them without explicit action.

Subtitle pipeline. For content lacking subtitles, Whisper integration generates them. Existing subtitles can be refined in the Subtitle Workshop with two-point sync, auto-fix, and AI-assisted translation or grammar correction.

Comparison with Alternatives

Tool Scope Interface Cross-Platform Open Source Key Trade-off
tonhowtf/omniget Download + play + organize Native GUI (Tauri) Windows, macOS, Linux GPL-3.0 Larger bundle size for unified functionality; unsigned binaries require first-launch workarounds
yt-dlp (alone) Download only CLI Any with Python Unlicense Maximum site support and flexibility; requires terminal proficiency and separate tools for playback/organization
4K Video Downloader Download only Native GUI Windows, macOS, Linux Proprietary (freemium) Polished commercial experience; paid tiers for full features, no local playback or ebook support
Calibre Ebook management/reading Native GUI Windows, macOS, Linux GPL-3.0 Superior ebook format conversion and library management; no video/audio download or playback

OmniGet's position is distinct: it sacrifices the minimal footprint of yt-dlp and the ebook depth of Calibre for integration breadth. The trade-off favors users who value a single application over optimal single-purpose tools. The unsigned binary distribution is a notable friction point on macOS, though the documented workaround is straightforward.

FAQ

Is tonhowtf/omniget free? Yes. GPL-3.0 licensed, no account, ads, or paid tier.

Does it require Python or terminal knowledge? No. yt-dlp and FFmpeg are bundled and self-updating. Terminal use is only needed for the one-time macOS Gatekeeper bypass.

Why won't it open on macOS? Unsigned applications are blocked by Gatekeeper. Run the two xattr and codesign commands documented in the README once.

Is this just a yt-dlp GUI? It uses yt-dlp for generic site support, but adds native extractors, a queue system, built-in players, and library management.

Can it download full courses? Yes. Log in once on the platform, select the course, and OmniGet downloads all lessons and attachments.

Is my download activity tracked? No telemetry is collected. All processing and storage are local.

What audio formats are supported for extraction? MP3, M4A, Opus, FLAC, and WAV.

Conclusion

tonhowtf/omniget occupies a specific niche: users who want comprehensive media handling without command-line interaction or multiple applications. Its 6,738 GitHub stars and active development (last commit July 2026) indicate sustained community interest. The Tauri/Rust/Svelte architecture represents modern desktop development practices, and the plugin system offers genuine extensibility.

The application is best suited for self-directed learners, offline-first users, and technical professionals who value integration over specialization. It is less ideal for users already comfortable with yt-dlp scripting or those requiring advanced ebook management beyond reading and annotation.

The unsigned binary distribution creates friction, particularly on macOS, but the documented workarounds are functional. For users willing to accept this trade-off, OmniGet delivers a genuinely unified media workflow that previously required multiple tools.

Explore the repository, download a release, or examine the plugin SDK at https://github.com/tonhowtf/omniget.

Comments (0)

Comments are moderated before appearing.

No comments yet. Be the first to share your thoughts!

Recommended Prompts

View All
All tools