OGPlayer

The video player SDK

Native SDKs.
One API.

Native playback on every platform behind a single, mirrored API — live & DVR, multi-DRM, Google IMA & FreeWheel ads, subtitles, casting, content ratings and a fully themeable player UI.

Free to evaluate — the full SDK, every feature, no sign-up, no time limit. The player shows a small OGPlayer watermark until a license key removes it.

Android 8.0+ · Jetpack Compose iOS 18+ · SwiftUI Web · <og-player> Android TV · Fire TV Apple TV · tvOS 18+ Samsung Tizen · 5.5+ LG webOS · 5+ React Native · Fabric Flutter · plugin

The actual player chrome — identical on every platform.

Every feature, every platform

Distilled from the cross-platform parity matrix — dig into any of them in the guides.

Playlists & up next

Queue videos that auto-advance — per-item DRM and ads, a themeable countdown card, and a skip callback for analytics.

Vertical feed

A swipeable portrait feed on the same engine — player pool with instant swipes, split layouts, sponsored items, host rail.

Multi-DRM WV · PR · FP

Widevine, PlayReady and FairPlay behind one config — the SDK picks whichever the device supports, with rotating-token providers.

Live & DVR

Live edge, seekable DVR windows, low-latency HLS, behind-edge state — the chrome adapts to the stream type automatically.

Ads IMA · FreeWheel

Pre/mid/post-roll pods with SDK-drawn ad chrome, cue markers, skip handling and an ad-blocker policy on web.

Subtitles & audio

Embedded and sideloaded tracks, multi-language audio, styling and viewer-controlled text size.

Watermarks & overlays

Your overlays in nine anchored slots — the SDK keeps them clear of the controls and hides them during ads.

Content ratings

Kijkwijzer-style age and descriptor icons at program start — presets built in, your own artwork pluggable.

Theming & localisation

Color and dimension tokens, replaceable glyphs, up to eight of your own icons — and every word and screen-reader label of the chrome in your language.

Casting

Chromecast on Android, AirPlay on iOS — with a configurable button in the player chrome.

Offline downloads

Download VOD on Android and iOS — persistent DRM license included — and play it back with zero network.

Picture-in-picture

Content keeps playing in a small window on Android, iOS and the web — auto-enter on leaving the app (on the web, where the browser offers it), one switch to enable.

Don't take our word for it

The full demo runs in your browser — real streams, real DRM, real ads, no signup. Better yet: paste your own stream URL and watch it play in our player.

Write it once. Ship it everywhere.

The same class names, the same listeners, the same error codes — an integration ports between platforms almost mechanically.

val player = OGPlayer.Builder(context)
    .setLicenseKey("OGP1…")
    .build()

player.load(
    OGMediaItem.Builder("https://…/master.m3u8")
        .setTitle("Tears of Steel")
        .build(),
)

Native, modern on every platform

No XML layouts, no UIKit wrappers, no jQuery-era widgets — the player UI is built exclusively on each platform's modern toolkit.

Android

Media3/ExoPlayer engine with a Compose-only player UI — drop OGPlayerView straight into your Compose tree. Published AAR artifacts.

Demo app on GitHub →
iOS

AVFoundation engine with a SwiftUI-only player view — OGPlayerView is a native SwiftUI citizen. Swift Package Manager.

Demo app on GitHub →
Web

hls.js with native-HLS fallback and DASH via dash.js, a framework-agnostic <og-player> element — npm package or a single script tag.

Demo app on GitHub →
Smart TV

The same players on the big screen with a remote-control chrome: Android TV and Fire TV from the Android SDK, Apple TV from the iOS SDK, and Samsung Tizen and LG webOS from the web SDK's ogplayer/tv bundle with HLS and DASH — 2020 models and newer.

Demo app on GitHub →
React Native

The same native players behind a typed Fabric component — <OGPlayerView> from npm wraps the Android and iOS SDKs, so playback, DRM and ads never leave native code.

Demo app on GitHub →
Flutter

The same native players behind one widget — OGPlayerView from pub.dev wraps the Android and iOS SDKs as a platform view, so playback, DRM and ads never leave native code.

Demo app on GitHub →