omniget README

The project's README from github.com/OpenSelena/omniget. As one markdown file: README.md.

OmniGet: paste a link, get the file. Loop, the mascot, sends video, music, PDF, image, course and torrent files into a folder. Courses, video, audio, images and torrents, then transcribe, convert, read and study.

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.

Community Website Latest release Total downloads GitHub stars License GPL-3.0 Telegram channel Translation status

Download OmniGet   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.

Disclaimer
Maintained by Igect under GPL-3.0 · Based on original architecture by tonhowtf

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.

How OmniGet works in three steps: paste a link, OmniGet detects the site and picks a native extractor or yt-dlp, the file lands in your folder and opens in the built-in player.

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, 158 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 OpenSelena.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 OpenSelena/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.

Linux media plugins

OmniGet draws its window with WebKitGTK, and WebKitGTK plays every <video> and <audio> through GStreamer. If the GStreamer plugins are missing, WebKitGTK does not fail the media quietly: it aborts its own web process the moment a player appears, and you are left with an empty window. Most desktop distributions already have the plugins. Arch and the minimal server images treat them as optional, so install them once:

sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav   # Debian, Ubuntu
sudo dnf install gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugin-libav   # Fedora
sudo pacman -S gst-plugins-good gst-plugins-bad gst-libav   # Arch

gstreamer1.0-plugins-good (gst-plugins-good) is the one that stops the crash, because the audio sink WebKitGTK insists on lives there. The other two carry the H.264 and AAC decoders, so without them a player opens but stays silent or black. The .deb and .rpm ask for all three, so this only comes up with the AppImage or a package built by hand.

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.

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 Online courses 38 supported platforms (Hotmart, Udemy, Kiwify, Rocketseat, Coursera, Domestika, Skillshare, and more) through the embedded Courses plugin. Every lesson, section selection, attachments, resume where you stopped.
Video and audio 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 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 Image galleries Whole galleries and profiles from 250+ sites through gallery-dl (DeviantArt, Pixiv, ArtStation, Flickr, Tumblr, Imgur, Kemono and more)
Bulk Bulk Paste many links or load a .txt, download whole subreddits, Reddit and X profiles, Instagram and Pinterest profiles, Facebook albums
Files and transfer 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 Telegram Photos, videos, files and audio from any channel or group you belong to, saved into organized channel folders (OmniGram/<channel>/), through the embedded 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.

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.

For the sites the sniffer cannot see, there is Deep search, a switch in the popup that hooks the page's own video player and catches playlists that never show up as network requests. It asks for permission on all sites the first time and stays off until then. Around it, the sniffer estimates the size of an HLS stream before you download, pairs the separate video and audio tracks a site serves so you get one file, checks the first bytes of what it found so an HTML error page is never saved as a video, and lets you edit the capture rules in the options page. The same options page can back up the list of extensions you have installed, ahead of Chrome dropping Manifest V2 extensions; that needs the optional "management" permission and asks for it only when you use it.

Pick the level that matches how comfortable you are.

Loop plugging a cable from a browser window into the OmniGet app window, with cookies travelling along it and a padlock and a house above it: the pairing stays on your own machine.

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: 158 tools in 25 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. Everything below runs on your machine; the only tools that touch the network are the ones that fetch from the site they are named after.

Loop, the OmniGet mascot, opening a toolbox full of tool tiles: microphone, subtitles, scissors, PDF, photo, gear, folder, magnet, phone, AI, music, globe, keyboard, chat and wrench

OmniGet Tools hub with 25 categories: YouTube, Speech and subtitles, Video editing, Audio, Instagram, X, Facebook, Reddit, Pinterest, Twitch, Bilibili, Spotify, Music, LinkedIn, Games, PDF, Documents, Images, System, Files, Downloads, Automation, Phone, AI and CTF and analysis

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.

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 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
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 PDF tools in OmniGet: merge, split, compress, convert, OCR, repair, password and permissions, watermark and numbering, crop margins, table of contents, check redaction, safe PDF and PDF to Markdown
LinkedIn tools in OmniGet: data overview, connections, messages and profile score, all read from the official data export CTF and analysis tools in OmniGet: hash and HMAC, what is this file, classic ciphers, XOR, encodings and frequency analysis

YouTube YouTube (11)

Speech and subtitles Speech and subtitles (8)

Video editing Video editing (14)

Audio Audio (2)

Instagram 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 X / Twitter (10)

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

Facebook Facebook (2)

Reddit Reddit (3)

Pinterest Pinterest (10)

Works without login for anything public. Cookies are only needed for secret boards and for unsaving.

Twitch Twitch (2)

Bilibili Bilibili (2)

Video downloads from Bilibili live on the home screen. These two are about the floating comments.

Spotify Spotify (2)

Music Music (3)

LinkedIn LinkedIn (4)

All four read the official data export LinkedIn lets you request, on your own machine. Nothing logs in.

Games Games (3)

PDF PDF (13)

Documents Documents (5)

Images Images (9)

System System (10, Windows-only items marked)

Files Files (5)

Downloads Downloads (2)

Automation Automation (1)

Phone Phone (1)

AI AI (6)

CTF and analysis CTF and analysis (6)

Six small offline utilities for capture-the-flag puzzles, forensics homework and "what is this file" moments.

Every tool that talks to an AI uses the provider you set in Settings → AI: OpenAI, Anthropic, or any OpenAI-compatible local endpoint such as Ollama or LM Studio. The key is stored locally and never logged. The auto clicker, dictation and the replay buffer can each get a global shortcut of their own.


OmniGet for AI agents: MCP server and Claude Code plugin

Loop at a terminal handing a folder of files to a small robot that hands back a link, with microphone, subtitle and video tiles above the screen

Two doors, depending on where your agent lives.

Inside the app: the MCP server. Turn it on in Tools → AI → MCP server and OmniGet exposes 37 of its tools over the Model Context Protocol on the same local bridge the browser extension uses, behind the same per-install token. An agent can queue a URL and watch, pause, resume or cancel it in the Downloads panel, merge, split, render, extract text from or sanitize PDFs, transcribe a file with whisper.cpp, run text to speech and OCR, resize images, find duplicates, search files, read X posts, threads, profiles, searches and trends, look up an Instagram profile through your session, compare LLM prices, humanize text, scan disks and caches, list startup items and installed apps, and pull large files or galleries with aria2 and gallery-dl. The page prints the config snippet for Claude Code, Claude Desktop, Cursor, VS Code, Goose and Codex, so it is a paste, not a setup. beta

Inside Claude Code: the omniget plugin. The claude-plugin/ folder ships a plugin for Claude Code that needs no desktop app at all. Paste a video, audio or social post URL with a request and the omniget-fetch and omniget-transcribe skills trigger on their own. The slash commands are there when you want to be explicit:

/plugin marketplace add /path/to/omniget/claude-plugin
/plugin install omniget
/omniget:setup                       # installs yt-dlp, ffmpeg and omniget-cli after one confirmation
/omniget:fetch <url> [--audio]       # the media file, to ~/Downloads/omniget
/omniget:transcribe <url|file>       # captions, then local whisper.cpp, then Gemini or OpenAI if you added a key
/omniget:research <url>              # caption plus transcript distilled into a Markdown note with [mm:ss] references
/omniget:doctor                      # what is installed, what is missing, how to add it

Setup downloads the prebuilt omniget-cli for your OS, which gives the skill OmniGet's native Instagram, X, Bilibili and Threads extractors. A download that fails on a login wall is retried once with the cookies of the browser you name in OMNIGET_COOKIES_FROM_BROWSER. API keys go into ~/.config/ai-keys.env from your own terminal and are never printed back.


Plugins: Courses, Study, Telegram, Convert

Core plugins are embedded directly into the application binary, eliminating runtime download and ABI compatibility errors. The Marketplace page shows active plugins, what each plugin is allowed to do (events, notifications, settings, download folders, proxy, managed tools, download queue), and lets you configure or toggle them.

OmniGet Marketplace listing the Courses, Study, Telegram and Convert plugins with version, author, permissions and enable switches

Courses Courses

The embedded Courses plugin supports 38 learning platforms, including Hotmart, Udemy, Kiwify, Rocketseat, Coursera, Domestika, Skillshare, Alura, and Ebac. Sign in through a webview inside the app, with saved cookies from the extension, or with account credentials where available. OmniGet lists your purchases, opens the course outline so you can select the sections you want (DRM-protected lectures are skipped and reported), and downloads lessons and attachments with optional continuous numbering. Downloaded courses index into Study automatically.

Study Study

Study turns the folder of files you downloaded into something you can actually finish.

Loop with headphones reading a book on a cushion, surrounded by a paused video lesson, flashcards, a notebook with a knowledge graph, a pomodoro timer and a vinyl record

Telegram Telegram

Sign in with a QR code or your phone number. Browse every channel and group you belong to, filter by photo, video, document or audio, search files, and download individual media or entire chat archives with a progress list. Media downloads are organized into {download_dir}/OmniGram/{channel_name}/ with sanitized folder names. Videos from channels can be imported straight into the Study library.

Convert Convert

FFmpeg conversions with GPU acceleration where the machine has it: container, codec, resolution, bitrate and compression for video and audio, no internet required.


Built-in chat, off by default

OmniGet includes an optional Discord-style chat called OmniDisc for servers you self-host with omnidisc-server. Features include text channels, direct messages, friends, roles, voice, video, and screen sharing with hardware encoding. Direct messages and calls use MLS end-to-end encryption. Files sent through chat are encrypted at rest and deleted from the server after thirty minutes.

OmniDisc is disabled by default. Turn it on in Settings → Advanced → OmniDisc or type /omnidisc into the command palette (Ctrl+K).


For League of Legends players

A League menu sits in the sidebar. It reads your running League client locally, with no account and no third-party build site, and does nothing until the client is open. If you never play, switch it off in Settings → Advanced → League of Legends and the menu disappears.

Loop in a gaming chair with a headset, looking at a monitor with a three-lane map and a ten-player scoreboard, with trophy, dice, chart and AI tiles beside it

Match scouting for both teams with rank, recent form, KDA and the champions each player actually plays. Win probability that shrinks win rates toward the baseline by sample size and always shows a range. Live gold, CS and level for all ten players. Goals per role you can edit. Runes and summoner spells recommended by the client itself, applied in one click and only ever replacing the page OmniGet created. Champion tiers by role. Player search by Riot ID. Opt-in automation: accept matches, pick and ban from your priority list, grab a champion off the ARAM bench. Every automation has its own switch.

New and marked beta or experimental: a Profile tab that edits what other players see (rank shown in chat, challenge medals and title, banner and crest, chat icon, bulk friend management); a skin, chroma and ward roulette that rolls an owned skin the moment you lock in, with rerolls; a champion and lane raffle for when you want the queue to decide, plus an optional random pick in champion select; full match history and ranked stats for any player through the client's own backend gateway, with replay download; and an AI coach that reviews a game, spots trends over your last matches or answers a question about the current champ select, using your configured AI provider and OP.GG's public data.


Everything else in the box


Privacy and what OmniGet refuses to do

Loop hugging a laptop with the OmniGet download icon and a green padlock, inside a glowing shield

Everything runs on your computer. There is no account, no server of ours in the middle, and no telemetry about what you download. Cookies and API keys live in your local profile. The only network calls OmniGet makes on its own are to the sites you asked it to download from, to GitHub for updates and plugins, and to the AI provider you configured, when you use an AI tool.

OmniGet downloads what your own logged-in session can already open. It does not bypass DRM, break paywalls, or share credentials, and DRM-protected lectures are skipped and reported. You are responsible for respecting copyright and each platform's terms of service. The full text is in the app under About → Terms and ethics.


Code signing policy

Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation.

Code changes and signed releases are reviewed and approved by the OpenSelena maintainers. See Privacy and what OmniGet refuses to do and the privacy documentation for how OmniGet handles data.


Frequently asked questions

Is OmniGet free? Yes. GPL-3.0, no paid tier, no ads, no account.

Is OmniGet a yt-dlp GUI? Partly. yt-dlp handles the long tail of sites and OmniGet bundles it, verifies it and updates it. On top of that sit native extractors for courses, Instagram, X, Pinterest, Bilibili, Telegram and torrents, a queue with resume and retry, the Tools section, and the Study library.

Can OmniGet download a Udemy or Hotmart course I bought? Yes. The Courses plugin is embedded directly in the app. Sign in through the app, pick the course and sections, and download. Lessons and attachments land in a folder per course and appear in Study. 38 platforms are supported, including Hotmart, Udemy, Kiwify, Rocketseat, Coursera, Domestika, and more.

Can it download Instagram stories, close friends or highlights? Yes, using your own session captured by the browser extension. Stories are downloaded without being marked as seen.

Can it download an X video, a whole thread or all media from a profile? Yes. Public posts need no login. Bookmarks and your own follow lists need your X session.

Can it back up a Pinterest board in original quality? Yes, including videos, sections, secret boards with cookies, and incremental sync so you only fetch what is new.

Does it resume interrupted downloads? Yes. Partial files are kept and continued, and rate limits trigger retries with backoff.

Which formats can it save? Video as MP4, MKV or WebM. Audio as MP3, M4A, Opus, FLAC or WAV. Subtitles as SRT, VTT or ASS, embedded or beside the file.

Does it need Python, Node or a terminal? No. Download the app, open it, paste a link. The only terminal step is the one-time macOS Gatekeeper fix above.

macOS says the app is damaged. Run the two commands in the first launch section. It happens because the app is not notarized, and it happens once.

Can it read my Reddit, LinkedIn, Spotify, X or Instagram data export? Yes. Request the export from the platform, then open the zip in the matching tool. It is parsed on your machine and nothing is uploaded.

Can an AI agent use OmniGet? Yes, two ways. The MCP server in Tools → AI exposes 37 tools to Claude Code, Claude Desktop, Cursor, VS Code, Goose and Codex, and the claude-plugin/ folder ships a Claude Code plugin that fetches and transcribes media without the desktop app. See OmniGet for AI agents.

Can I transcribe a video to subtitles offline? Yes. Tools → Speech and subtitles → Transcribe uses whisper.cpp locally. Models download on demand.

Can I run it from a USB stick? Yes, on Windows, with a portable.txt file next to the executable.

Which Linux package should I pick? Debian and Ubuntu: .deb. Fedora, openSUSE, RHEL family: .rpm. Anything else: .AppImage. Both x86_64 and ARM64 are published. OmniGet is not on Flathub.


Command line

omniget-cli ships with every release for Windows, macOS (Intel and Apple Silicon) and Linux. Grab omniget-cli-<version>-<target> from the latest release.

omniget info <url>                     # title, formats and size, downloads nothing
omniget download <url> -q 1080 -o ~/Videos
omniget download <url> --audio-only --subs en,pt
omniget batch links.txt -m 3           # one URL per line, 3 at a time
omniget import-cookies cookies.txt     # Netscape format

Build from source

If you only want to use OmniGet, grab a release. To build it you need Rust (the exact toolchain is pinned in rust-toolchain.toml because the plugin ABI depends on it), Node.js 18+ and pnpm.

git clone https://github.com/OpenSelena/omniget.git
cd omniget
pnpm install
pnpm tauri dev
Linux build 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 libasound2-dev libpipewire-0.3-dev clang libclang-dev

Production build:

pnpm tauri build --config '{"bundle":{"createUpdaterArtifacts":false}}'

Releases sign their updater artifacts with a private key only the maintainer holds, so a plain pnpm tauri build stops with "A public key has been found, but no private key". The flag above turns those artifacts off for a local build and changes nothing else.

The courses, telegram, convert and study plugins live inside src-tauri/plugins/ and compile into the main binary. The plugin registry is omniget-plugins.

Stack: Tauri 2, Rust, SvelteKit with Svelte 5, SQLite, yt-dlp, FFmpeg, librqbit for torrents, whisper.cpp, aria2, gallery-dl.


Contributing and translations

Bug reports and pull requests go to Issues and Pull requests. Questions and quick help live on Telegram. Security inquiries and vulnerability reports: SECURITY.md or [email protected].

Translations are managed on Weblate. Pick your language and translate in the browser. New strings appear there a few hours after they land in main.

OmniGet is built on yt-dlp, FFmpeg, gallery-dl, whisper.cpp, aria2, SponsorBlock, Return YouTube Dislike, FxTwitter, Spicetify, cat-catch (parts of the extension's media sniffer) and Tauri. Thank you to everyone who maintains them.

Loop, the creature on the home screen, is OmniGet's mascot. Fan art is welcome. The original artwork may not be used commercially or redistributed modified. The illustrations in this README were generated with Higgsfield from the original Loop artwork.

Star history of OpenSelena/omniget

Download OmniGet · GPL-3.0

omniget (OpenSelena/omniget)

Searching Database…

1.3K ·GitHub
What is this?OmniGet is a free, open source desktop download manager. It saves Udemy and Hotmart courses, YouTube videos and audio, and files from 1,800+ other sites through one text box, then lets you play, read and transcribe what you saved.
Is it a desktop app or a terminal tool?It is a desktop app with a GUI, built on Tauri 2.0, Rust and Svelte. You paste a link, pick a quality and press Enter. There is a command line section too, but the main use is the window.
Do I need Python or other tools first?No. yt-dlp and FFmpeg install themselves and stay updated, so there is nothing to configure. The browser extension is optional and only needed for logged-in content.
Any install pitfalls?The app is not signed with a paid certificate, so Windows SmartScreen and macOS Gatekeeper warn once. On macOS you paste two lines into Terminal. On Debian 12+ or Ubuntu 24.04+ the AppImage needs libfuse2, so the .deb is easier. On Linux, media playback needs GStreamer good plugins, or players stay silent or crash.
Which systems does it run on?Windows 10 and 11, macOS 10.15+ (Apple Silicon and Intel builds), and Linux through .deb, .rpm and AppImage for amd64 and arm64.
Does it send my data anywhere?No account, no ads and no telemetry on what you download. Your files stay on your computer.
Can I grab only the audio from a link?Yes. Copy a link and press Ctrl+Shift+M (Cmd+Shift+M on macOS) and it saves audio only, so a YouTube link becomes an MP3 without opening the window. The hotkey is off until you enable it, and Ctrl+Shift+D starts a normal background download.
Can it download from Telegram and Bilibili?Yes. The Telegram plugin saves photos, videos, files and audio from channels or groups you belong to, into channel folders. Signed-in Bilibili supports 4K, HDR and Hi-Res audio depending on your subscription.
What is the Tools section?It holds 158 tools in 25 categories that work on files you have already saved, such as transcribing, converting and reading them.
Can AI agents use OmniGet?Yes. The README describes an MCP server and a Claude Code plugin for OmniGet, so AI agents can drive downloads from outside the window.
Creator
OpenSelena
Size
76.5 MB
Stars
1.3K
Age
3mo
Commits · 90 Days