Stream Sniffer
Sites increasingly hide their video behind blobs and encrypted players. Omni finds the real stream with a dual-path detection system.
Two cooperating paths
- Extension path — the bundled Omni Media Grabber WebExtension watches network requests and hooks
MediaSource/blob playback, then reports candidates to the app over native messaging. - Native path —
media/MediaInterceptor.ktinspects engine-level traffic for HLS (.m3u8) and DASH (.mpd) manifests.
Both converge on the ViewModel, which surfaces a grabber chip when a stream is found.
Using it
Play the media
Start the video or audio on the page.
Watch for the chip
When a stream is detected, a grabber affordance appears.
Choose an action
Tap it to play in the native player, download, or extract audio.
What it can’t grab
DRM is out of scope
Widevine/FairPlay-protected streams (most Netflix/Disney+/Prime video) are encrypted end-to-end. Omni will not and cannot strip DRM — and won’t try.
Some sites also use heavily obfuscated or proprietary transports that the sniffer doesn’t recognise yet. Detection coverage improves over releases.
Under the hood
// Simplified: surface a candidate when a manifest is seen
fun onResponse(url: String, mime: String) {
if (url.endsWith(".m3u8") || mime == "application/vnd.apple.mpegurl")
emit(StreamCandidate(url, Kind.HLS))
else if (url.endsWith(".mpd") || mime == "application/dash+xml")
emit(StreamCandidate(url, Kind.DASH))
}