Library / SDK
fish2018/webhtv avatar
fish2018/webhtv

WebHomeTV: A Customisable Android Media App Built on the FongMi/CatVod Ecosystem

WebHomeTV 基于FongMi二次开发,增强了 WebHome 自定义首页、App Native SDK、网盘链接检测 和 Nostr推荐首页。 这个项目的核心目标是让 CSP 站点首页可以变成一个真正可开发的网页应用:开发者可以用 HTML/CSS/JavaScript 定制首页,再通过 App 暴露的 Native 能力完成搜索、播放、跨域请求、资源代理、最近观看、网盘检测和状态同步。

1,595 stars468 forksJavaGPL-3.0

At a glance

What is it?
WebHomeTV is a fork of the FongMi/CatVod Android media application that adds a programmable homepage layer: developers can write HTML, CSS, and JavaScript to build a custom home screen, then call native Android capabilities (search, playback, cross-origin requests, cloud drive detection, watch history, and state sync) through a JavaScript SDK the app exposes.
Who is it for?
WebHomeTV is for Android developers or advanced users in the CatVod/FongMi ecosystem who want a programmable media app homepage, cloud drive link checking, and multi-device config sync. The build process requires JDK 21, Android SDK 37, a specific Chaquo Python 3.10 runtime, and two separate NDK versions, making it more demanding than typical Android projects.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What WebHomeTV Adds to the FongMi/CatVod Base

WebHomeTV is a second-generation fork of the FongMi/TV (CatVod ecosystem) Android application. It preserves all the original capabilities: video-on-demand, live streams, Spider plugins, playback parsing, screen casting, and local HTTP service. The additions are focused on the homepage layer and on multi-device management.

The README describes the core goal as turning a CSP site homepage into a true web application: a developer writes HTML, CSS, and JavaScript to design the homepage, then calls the native capabilities the app exposes through a JavaScript SDK. These native capabilities include search, playback, cross-origin requests, resource proxying, recently-watched history, cloud drive link detection, and state sync.

Beyond the homepage, WebHomeTV adds site health sorting (which learns each site's search, detail page, and playback success rates automatically), a LAN browser management page, remote hosting with multiple relay server options, one-click config sync between devices, and a Nostr recommendation homepage.

The WebHome SDK and Custom Homepage Development

The WebHome SDK is the central feature that distinguishes WebHomeTV from the upstream FongMi fork. It exposes native app capabilities to a hosted web page through a JavaScript interface. A developer writes an HTML page that uses the SDK to call search, playback, and data functions, then hosts that page and sets it as the home page for a content source.

The README points to the webhome-devkit/ directory as the central resource for homepage development. It contains homepage examples in webhome-devkit/examples/homepages/, extension examples in webhome-devkit/examples/extensions/, templates in webhome-devkit/templates/, and AI coding skills in webhome-devkit/skills/.

A WebHome homepage configured as a Nostr recommendation page uses a JSON config like the following:

json
{
  "key": "Nostr",
  "name": "Nostr推荐",
  "type": 3,
  "api": "csp_Nostr",
  "homePage": "https://www.252035.xyz/xs/tvbox/nostr.html"
}

The homePage field points to a self-hosted HTML file. When the relative path approach is used, the HTML and config file can be served from the same directory.

Building the App from Source

The build process has several hard requirements. JDK 21 is required; the README explicitly states that JDK 17 is not sufficient. The `sourceCompatibility` and `targetCompatibility` are both set to Java 21. Android SDK Platform 37 and Build Tools 37.0.0 are required, with compileSdk=37, minSdk=24, and targetSdk=28.

First, verify your environment:

bash
java -version
bash gradlew --version

Set the Android SDK path and install the required platforms:

bash
export ANDROID_HOME="$HOME/Library/Android/sdk"
"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "platform-tools" "platforms;android-37.0" "build-tools;37.0.0"

Then clone and build:

bash
git clone https://github.com/fish2018/webhtv.git
cd webhtv
printf 'sdk.dir=%s\n' "$ANDROID_HOME" > local.properties
bash gradlew :app:assembleMobileArm64_v8aDebug :app:assembleLeanbackArmeabi_v7aDebug :app:assembleLeanbackArm64_v8aDebug

This builds three APK variants: phone 64-bit (Mobile), TV 32-bit (Leanback), and TV 64-bit (Leanback). The debug build runs faster than release and suits local testing. The README notes that Python 3.10 is required by Chaquo; installing only Python 3.11, 3.12, or 3.13 will fail the build.

Site Health Sorting and Cloud Drive Detection

WebHomeTV includes two features that address common reliability problems with community-maintained content source configurations.

Site health sorting automatically learns each content source's success rates for search, detail pages, and playback. The app prioritises sources with higher success rates in search results and source switching. The README notes that the default site popup preserves the user's configured order, and health sorting must be explicitly enabled in the popup if desired.

Cloud drive link detection lets WebHome pages and the local HTTP API check whether a cloud storage share link is still valid. This is useful for content that relies on user-shared cloud drive links, which expire or get removed. The API is documented in the webhome-devkit/ development guide.

Together, these features address the reliability problems that arise in distributed content ecosystems where sources are community-maintained and frequently become unavailable.

Remote Management and One-Click Sync

The management page is a LAN web interface accessible inside the app at the path `/m`. It manages files, login state, sync directories, site injection, APIs, proxy settings, search, and push on the local or a remote device. The README notes that the management page runs as a foreground service to remain active.

For multi-device management, WebHomeTV supports remote hosting through relay servers. The README lists five relay server options: Cloudflare, Deno, Vercel, Go, and Rust. Go and Rust versions support WebSocket real-time channels; the others fall back to HTTP polling. The relay server lets you bind multiple WebHomeTV devices and manage configuration, search, push, homepage settings, and one-click sync from one interface.

One-click sync copies configuration, source data, login state, WebHome data, search history, watch history, favourites, and app settings between devices on the same LAN. Each category can be individually selected.

Comparison With the Upstream FongMi/TV Fork

FongMi/TV (also known as CatVod) is the upstream repository WebHomeTV forks from. It provides the Spider plugin system, video parsing, live stream support, and local HTTP service that WebHomeTV preserves unchanged.

WebHomeTV is not a replacement for FongMi/TV but a specialised extension for users who want a programmable homepage. The upstream fork is simpler to build and maintains closer alignment with the original CatVod protocol. WebHomeTV adds significant complexity: the WebHome SDK, remote hosting infrastructure, site health sorting, and the Chaquo Python runtime all add to build requirements and maintenance surface.

Kodi is another open-source media center with plugin support and a customisable interface, but it targets desktop and living room PC platforms rather than Android-native environments. WebHomeTV is specific to the Android TV and Android phone CatVod ecosystem.

Release Cadence, Maintenance, and License

The repository is not archived. The last push was on 2026-09-24, which corresponds to the release v5.6.0-202609241253. Recent releases were also made on 2026-09-18 and 2026-09-06, indicating approximately biweekly releases.

The project is licensed under GPL-3.0. All distributions or modifications of WebHomeTV, including apps built on it, must be released under GPL-3.0. This is inherited from the FongMi/TV upstream, which also uses GPL-3.0.

The Gradle wrapper version is 9.5.1 and the Android Gradle Plugin version is 9.2.1, both recent as of the release date. The build system does not require an IDE and is maintained as a command-line toolchain.

Editorial conclusion

WebHomeTV is for Android developers or advanced users in the CatVod/FongMi ecosystem who want a programmable media app homepage, cloud drive link checking, and multi-device config sync. The build process requires JDK 21, Android SDK 37, a specific Chaquo Python 3.10 runtime, and two separate NDK versions, making it more demanding than typical Android projects. Users who only want to run the app should use prebuilt releases rather than building from source.

Frequently asked questions

What is WebHomeTV and how does it differ from FongMi/TV?

WebHomeTV is a fork of FongMi/TV (CatVod) that adds a programmable HTML/JavaScript homepage layer with a native SDK, site health sorting, cloud drive link detection, and multi-device sync. The upstream FongMi/TV has none of these features.

How do I get WebHomeTV without building from source?

The repository provides prebuilt release APKs through the GitHub releases page, with builds tagged by version and date such as v5.6.0-202609241253. The README does not document a package manager installation path.

What Android SDK version does WebHomeTV require?

WebHomeTV requires Android SDK Platform 37 and Build Tools 37.0.0. The compileSdk is 37, minSdk is 24, and targetSdk is 28. JDK 21 is required for compilation.

Official sources

  1. fish2018/webhtv on GitHub
  2. License: GPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fish2018-webhtv.svg)](https://hysenlabs.com/projects/fish2018-webhtv)