Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

fmhyplay/android

Media & Design

A TV-first Android app that plays streams from user-chosen sites in a native player with ad blocking, WARP and IPTV.

166
7
Java
MIT
3 days old

What it does

FMHYPlay is an Android app for watching video on phones, tablets and TV devices. Instead of replacing a streaming site, it loads the site in a WebView, detects the HLS or DASH stream the page starts, and hands that stream to ExoPlayer with the page's Referer, Origin and cookies intact. This keeps the site's catalog and server options while moving playback to a hardware-accelerated native player.

The app also exposes the site's own server and quality controls through the native player, blocks domains used for ads, trackers and pop-ups, and can route the app's traffic through an in-app Cloudflare WARP tunnel. An optional IPTV section lists public channels from iptv-org and accepts user playlists, single .m3u8 links or Xtream Codes logins. Optional integrations include OpenSubtitles and Simkl scrobbling.

The intended audience is people who watch web-based streaming sites or IPTV on Android TV and want remote-friendly navigation, fewer pop-ups and smoother playback. It is a browser plus player; the README states it hosts, stores, indexes and distributes no video and ships no stream list.

Install and first run

  1. Download the APK matching your device from the latest release: FMHYPlay-TV-vX.Y.Z.apk for Android TV, Google TV, Fire TV and boxes, or FMHYPlay-Android-vX.Y.Z.apk for phones and tablets. The release also provides SHA256SUMS.txt if you want to check the download.
  2. Allow installs from the file manager or browser, then open the APK. On a TV, adb install -r FMHYPlay-TV-vX.Y.Z.apk can be used over the network.
  3. Launch the app, pick a site from the built-in directory or add your own address as a favorite, and open a title. When the page starts a stream, the native player should take over automatically; if the stream cannot be played, playback falls back to the page.
  4. On the TV remote, use the player's Servers and Quality buttons to switch streams without returning to the page. For IPTV, open the IPTV section and choose the public channel list or add your own playlist, .m3u8 link or Xtream Codes login.

The user guide covers the site directory, IPTV sources and the optional self-hosted extra source list.

Build from source

Building requires an Android SDK with platform 34 and build tools, JDK 17+, and Go plus the Android NDK for the WARP helper. The README gives this order:

git clone https://github.com/fmhyplay/android
cd android
warp/build.sh      # builds the WARP helper
./build.sh         # builds the APKs

The resulting APKs appear in the project folder. Signing and CI details are in the build guide; the project deliberately uses plain Java and SDK command-line tools rather than Gradle.

Requirements and limits

  • Android 8.0 (API 26) or newer, on arm64 or 32-bit ARM devices.
  • The player depends on detecting HLS/DASH requests from the page; sites that do not expose a playable stream fall back to their own page player.
  • The optional WARP tunnel is a userspace WireGuard tunnel for the app's own traffic and needs neither VPN permission nor root; LAN addresses stay direct.
  • The IPTV section relies on third-party channel and playlist data, and the README states a background check can hide offline public channels.
  • The app opens third-party sites and playlists; the README places responsibility for what is watched on the user and says only content you have the right to watch should be used.
  • Licensed MIT. The README notes no affiliation with FMHY, Cloudflare, Stremio, OpenSubtitles, iptv-org or any streaming site.

HotRepo's take

The repository was created on 2026-11-03 and appeared on HotRepo's new-project list on 2026-11-06, when its star count moved from 100 to 130 within about two hours of observation. That is a short window on a very young project, so the figure shows early attention rather than established adoption; no all-language daily rank was recorded. What the material does establish is a concrete technical approach: WebView stream detection, ExoPlayer handoff with page headers, remote-driven control of site players, and a userspace WARP tunnel, with the codebase described as plain Java and no Gradle. The main thing a prospective user cannot verify from the README alone is how the distributed signed APKs correspond to this source tree, so checking the release checksums and the build guide before sideloading is the practical next step.

Written by AI from the project's README, updated . The project's own docs are the source of truth.