Library / SDK
mytv-android/mytv-android avatar
mytv-android/mytv-android

mytv-android: an IPTV player for Android TV with three playback engines

Material 3 Expressive 风格的Android/Android TV IPTV播放器,内建Media3,IJKplayer和 VLC。A Material 3 Expressive style Android/Android TV IPTV player with built-in Media3, IJKplayer and VLC.

2,698 stars283 forksUnknownMIT

At a glance

What is it?
mytv-android is a Material 3 Expressive IPTV player for Android and Android TV that bundles Media3, IJKplayer and VLC, and exposes a browser panel on port 10591 for source and player rules. The repository is public, but the README states the source code is no longer open.
Who is it for?
Adopt mytv-android if you want a remote-first IPTV client for Android 6.0+ with switchable Media3, IJKplayer and VLC engines and a LAN configuration panel. Do not adopt it if you need to read, patch or redistribute the source: the README states the project no longer publishes it, and only approved developers get the internal branch.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 12 days ago.
What is it written in?
GitHub does not report a main language for this repository.

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

Editorial analysis

What mytv-android solves, and who it is for

Android TV boxes rarely ship with a usable IPTV client. The stock launcher has a channel grid, a remote, and nothing that understands an M3U playlist or an Xtream portal. mytv-android fills that gap: it is an IPTV player for Android and Android TV, built with Android native tooling, and it is a continuation of 天光云影 3.3.9, which the README credits as the base. The repository topics list the target surface: android-tv, tvbox, m3u, xtream, stalker-portal, webview.

The audience is narrow and specific. You need a source (an M3U URL, an Xtream account, or a Stalker portal) and a device running Android 6.0 or newer. The interaction model assumes a remote control rather than a touchscreen, and the README documents the mapping explicitly because the app is used from a couch: channel switching is up and down on the D-pad or the number keys, channel selection is the OK key, and line switching is left and right. On a touch device, swipes stand in for the D-pad, a tap is OK, and a double tap opens the menu. If you are building a media center around a phone or tablet, this app works, but the remote-first design shows.

Three playback engines and a rule engine that picks between them

The core architectural decision is that mytv-android does not commit to one player. It embeds Media3, IJKplayer and VLC, and the README treats the choice as a per-source concern rather than a global preference. That is a real design position, not a feature list: engines fail differently, and the documentation says so. For RTSP sources the README is blunt: do not use the Media3 player. The workaround it gives is a remote panel rule, adding rtsp://.* and assigning IJK or VLC to it.

The same logic applies to rtp2httpd users, the forwarding tool the README lists under related projects. For FCC-capable sources, it advises preferring Media3 and VLC to get fast channel switching. So the intended data flow is: a source URL arrives, a pattern rule in the remote panel matches it, and the match decides which engine handles the stream. Everything else (channel list, line switching, EPG) sits around that decision.

The third lever is a setting called 更好的视频探测, or better video probing. The README gives a two-sided instruction. If a source will not play, turn it on. If a source starts too slowly, turn it off. That is an honest description of a trade-off rather than a bug, and it tells you the app is willing to trade startup latency for compatibility.

Installing mytv-android and configuring it from a browser

There is no package manager path here. The README points to the repository releases for downloads, and the top-level entries show only .github/, LICENSE files, README.md, README_EN.md and img/, so there is no build script to run from the published tree. You install the APK on the device.

The configuration surface is a web panel. The README states the address as the device IP on port 10591, written as http://<设备IP>:10591, so you replace the placeholder with the device's IP on your network and open the result in a browser on the same network. That gives you the remote panel, which is where source rules are added.

The README's own example for forcing an engine on RTSP sources is a rule matching rtsp://.* with IJK or VLC assigned. A rule like that is the first thing worth setting up, because it prevents the failure the FAQ describes.

The panel also carries the debug tools. When a stream errors, the README directs you to 网页面板/调试 导出Logcat, the Logcat export under the debug section of the web panel, and adds a timing constraint: export immediately after the error, because later log output overwrites it. One more note from the README concerns the panel's QR code: Apple's built-in scanner has trouble with it, and WeChat is suggested instead.

Where mytv-android is the wrong tool

The most consequential limitation is not technical. The README states that the project will no longer publish its source code, attributing this to the volume of redistribution (it cites a 5:1 star-to-fork ratio) and to redistributors who cannot support their own users. Developers who want access can apply through an issue, and the README says an internal branch exists that approved developers can view, edit and commit to. But from the outside this is a binary distribution. You cannot audit the playback path, you cannot patch an engine, and you cannot build your own APK from the public repository. For a tool that handles subscription credentials for Xtream and Stalker portals, that is a decision you have to weigh yourself; the README does not address it.

The second limitation is the release channel. The three most recent releases are V2.2.0.219, labelled a stable version, and V3.0.0.220 and V3.0.0.221, both labelled preview versions. If you install the newest build, you are on a preview line by the project's own labelling.

Third, the engine selection is manual knowledge. Nothing in the README suggests the app detects an RTSP source and switches away from Media3 on its own; the user is told to write the rule. Get that wrong and the failure looks like a broken source.

How this differs from a general-purpose player like VLC

VLC for Android is the obvious alternative, and the difference is not playback quality. VLC is a general media player: you open a file or a network stream, and it plays. It has no concept of a channel list, no line switching between mirrors of the same channel, no remote panel for source rules, and no EPG-oriented structure. mytv-android is built around the assumption that you have a subscription with dozens or hundreds of channels and several URLs per channel, and that you will drive it with a D-pad.

The trade-off runs the other way too. VLC is open source and you can build it. mytv-android's README says the source is no longer public. VLC also does not carry per-source engine rules, because it has one playback core; mytv-android carries three, which is more surface area to get right but also more ways to make a stubborn stream work. If your problem is "play this one URL", VLC is simpler. If your problem is "manage this playlist on a TV box", the channel and line model is the point.

Licence, maintenance and upgrade cost

The repository licence is MIT. That is not the whole picture, because the README documents two inherited components: the base project 天光云影, whose MIT licence is kept in LICENSE_ORIGIN, and code from BV, whose licence is in LICENSE_PART1. Anyone redistributing a build should read all three files rather than assuming a single MIT grant covers the whole binary. This is not legal advice.

On maintenance, the last push to the default branch was on 2026-09-20, and the most recent release is V3.0.0.221 from the same date. The upgrade cost is mostly operational: releases are APK downloads rather than a package-manager update, so moving between the stable V2.2 line and the V3.0.0 preview line is a reinstall decision you make per device. There is no documented rollback path in the README, so keeping the previous APK is on you. The README also points to a channel for update news and voting on planned improvements, and states that bug reports and suggestions belong in issues.

Editorial conclusion

Adopt mytv-android if you want a remote-first IPTV client for Android 6.0+ with switchable Media3, IJKplayer and VLC engines and a LAN configuration panel. Do not adopt it if you need to read, patch or redistribute the source: the README states the project no longer publishes it, and only approved developers get the internal branch. Before installing, confirm three things: which release you are taking (the stable line is V2.2.0.219, while V3.0.0.221 is marked as a preview), whether your Android TV box runs Android 6.0 or newer, and that port 10591 on the device is reachable from your browser.

Frequently asked questions

How do I download the mytv-android app?

The README says downloads are available through the releases on the right side of the repository page, and the top-level entries show no other distribution channel. There is no package manager or build-from-source route described for the public tree.

What are the mytv-android apps available for?

mytv-android is an IPTV player for Android and Android TV, described as built with Android native development on top of 天光云影 3.3.9. It handles M3U, Xtream and Stalker portal sources, according to the repository topics.

Which TV app is best for Android TV?

The README does not make that comparison. What it does document is a specific fit: a remote-first player for Android 6.0+ that embeds Media3, IJKplayer and VLC and lets you assign an engine per source through a web panel on port 10591.

Is an Android TV the same as a smart TV?

The README does not discuss that distinction. It only states the platform requirement for this app, which is Android 6.0 or newer, and describes operation through a remote control or touch gestures.

Official sources

  1. Issues
  2. License: MIT
  3. mytv-android/mytv-android on GitHub
  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/mytv-android-mytv-android.svg)](https://hysenlabs.com/projects/mytv-android-mytv-android)