Skip to content

ferrdishx/Omni

Repository files navigation

Omni

Android Kotlin Compose License yt-dlp Release


What is Omni?

I built Omni because every downloader app I tried either broke after a YouTube update, had obnoxious ads, or made you jump through hoops to get a decent quality file. I wanted something that just works: paste a link, pick a format, get the file.

It uses yt-dlp and FFmpeg under the hood, which means it supports 700+ sites and actually merges video and audio streams instead of giving you a muxed fallback. The engine updates itself automatically so YouTube changes don't randomly break everything.

No ads, no account, no nonsense.


Screenshots

Home Library Favorites Video Options Audio Options Downloads Settings
Home Library Favorites Video Options Audio Options Downloads Settings

Features

Downloading: Supports YouTube, Instagram, TikTok, Twitter/X, SoundCloud, Vimeo, Reddit and hundreds more. Video and audio streams are merged via FFmpeg so you get the real highest quality. The format picker only shows options that actually exist for that video (no fake qualities). Audio downloads can embed the thumbnail directly into the file so your MP3s have cover art everywhere.

Playback: The built-in player uses ExoPlayer (Media3) with background audio, lock screen controls, Picture-in-Picture, and a MiniPlayer that stays visible while you browse the app. On Android 12+, PiP activates automatically when you leave the app mid-video.

Interface: Material You adapts the colors to your wallpaper. Fully edge-to-edge with dark/light themes and an option to reduce animations.


Tech Stack

Language        Kotlin
UI              Jetpack Compose + Material Design 3
Architecture    MVVM (ViewModel + StateFlow)
Download Engine youtubedl-android (yt-dlp) + FFmpeg
Player          Media3 (ExoPlayer) + MediaSession
Database        Room
Preferences     DataStore
Images          Coil

Download

Download APK

The APK is 30MB+ because it ships with a full FFmpeg build. It's only on GitHub releases, no Play Store.

Automatic Updates via Obtainium (recommended)

Paste the repo URL into Obtainium and it handles updates automatically:

https://github.com/ferrdishx/Omni

Requirements: Android 8.0+ · ARM64 / ARMv7 / x86_64


How to Use

Copy a link from any app and paste it into Omni (or use the share menu). Pick your format, only real options show up. Hit Start Download and track progress in the Downloads tab. Files go to Downloads/Omni.

On first launch, Omni downloads the yt-dlp engine (~15MB). This happens once.


Build from Source

git clone https://github.com/ferrdishx/omni.git
cd omni

Open in Android Studio Hedgehog or newer, sync Gradle, run. JDK 17 and Android SDK 35 required.


Roadmap

  • Universal video/audio download
  • Real format & quality detection
  • Embedded thumbnail in audio files
  • ExoPlayer with background playback
  • Picture-in-Picture
  • MiniPlayer
  • Favorites & Library
  • Playlist download
  • Sleep timer
  • SponsorBlock integration
  • F-Droid release

Credits

Omni is built on top of other open source work. A few things worth calling out specifically:

RetroMusicPlayer (GPL-3.0, h4h13 and contributors): I borrowed the Settings screen structure, the accordion sections with colored circular icons and the dynamic palette extraction from artwork as a blurred background tint in the player.

YtDlnis (GPL-3.0, deniscerri): The download history data layer, HistoryItem entity structure, and the DAO query patterns for sorting and filtering by status came from here.

Libraries:

Library Purpose License
youtubedl-android yt-dlp wrapper GPL-3.0
ffmpeg-kit FFmpeg for Android LGPL-3.0
Media3 (ExoPlayer) Playback Apache-2.0
Coil Image loading Apache-2.0
Room Local database Apache-2.0
DataStore Preferences Apache-2.0
Palette Dynamic color extraction Apache-2.0

Legal

Omni is a tool. You're responsible for what you download with it. Only download content you have the right to.

No affiliation with YouTube, Google, or any platform it supports.


Contributing

PRs welcome. Open an issue first for anything significant.

git checkout -b feat/your-feature

License

GPL-3.0 · Built by ferrdishx

About

Modern media downloader and player for Android with playlist support and advanced features

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages