Any streaming site,
a real player.

FMHYPlay opens the sites you choose, finds the video they play and plays it natively: hardware decoding, nothing painted over the picture, and a remote-friendly interface.

DownloadUser guideBuild from source The native player

What it does

Streaming sites are built for a mouse. FMHYPlay keeps the site and replaces the part that does not work on a TV.

Native player

Finds the stream the page starts and plays it in ExoPlayer with the hardware decoder. Quality with frame rate, audio, subtitles, speed and zoom.

Drives the site for you

The player's Servers, Quality and Episodes buttons press the site's own buttons, even inside cross-origin iframes. You never go back to the page.

Subtitles built in

OpenSubtitles search by title and episode, side-loaded without losing your place.

Built for the remote

Focus navigation designed for D-pads, a cursor mode for stubborn pages, and a TV launcher. On a phone: brightness and volume swipes, double-tap to skip.

Ad blocking and WARP

Domain, pop-up and redirect blocking, plus an optional in-app Cloudflare WARP tunnel for the app's traffic only, with no VPN permission.

IPTV

More than 11,000 public channels by category and country. Offline ones are hidden by a background check; add your own playlists by URL.

On the TV

Browse sites and a movie and series catalog, search by typing or voice, and pick up where you left off.

HomeSites
IPTVQuality

On the phone

The same app and the same player, on a touch screen.

Phone homePhone player

Under the hood

No Gradle

Plain Java and the Android SDK command-line tools, about 11 MB per APK. A clean clone builds with two commands.

Signed releases

Pushing a tag builds both APKs on GitHub Actions, signs them with the project key and publishes a release with checksums.

Private by design

No FMHYPlay account, no analytics, no telemetry. The tunnel is a userspace WireGuard client that only carries this app's traffic.