Selene-TV: the repository ships five entries and none of them is source
以 MoonTV v100 版本 / Helios 为后端的 Android TV 客户端,针对遥控器设备优化
At a glance
- What is it?
- An Android TV Leanback client for MoonTV or Helios, distributed as two ARM APKs from a repository that contains no Kotlin sources, no Gradle files and no licence. The build targets SDK 36 while supporting Android 6.0, and only D-pad input is supported.
- Who is it for?
- Selene-TV suits someone with an ARM Android TV box or stick who wants a MoonTV or Helios front end with danmaku aggregation, a phone as a remote control, and no touch screen in the loop. It does not suit anyone who needs to build it, audit it, fork it or redistribute it, because there is no source and no licence file.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 103 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 October 2, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The repository holds a README, two images and a docs folder
The whole tree is five entries:
.github/
README.md
banner.png
docs/
screenshot/There is no `app/` directory, no Gradle wrapper, no `settings.gradle`, no `build.gradle`, and no Kotlin file anywhere in the listing. For a project whose architecture section names nine technologies in detail, that list is a description of a build that is not present in this repository. The technologies are Kotlin 2.2, Jetpack Compose for TV with Material3, ExoPlayer (Media3) and mpv as the two playback cores, akdanmaku as an OpenGL danmaku renderer, Ktor on Netty as the embedded HTTP server behind the phone remote, Coil for image loading with Douban hotlink handling, OkHttp for network requests, kotlinx.serialization for JSON, and qrcode-kotlin for the remote QR code. What you can actually obtain here is compiled APKs attached to releases, plus the documentation and the screenshots that describe them.
No licence file, and the primary language is not detected
Two of the repository's own metadata fields are empty. The licence is not recognised, and there is no `LICENSE` entry in the root listing, unlike almost every project that ships binaries. There is also no `CONTRIBUTING.md` and no code of conduct file, only `.github/`, the README, the images and `docs/`. The primary language is recorded as unknown, which follows from the absence of source: the repository's own bytes are Markdown, PNG files and whatever else sits in `docs/`. Neither of those fields is a technical obstacle to installing the app. Both of them matter if you were considering building on it, redistributing it, or shipping it inside something of your own, because there is no licence text to point at and nothing to compile.
Two ARM architectures are published and x86 is not
The download section gives a table with exactly two rows:
| Package | Architecture | Device | |---|---|---| | `SeleneTV-<ver>-arm64-v8a.apk` | armv8 (arm64-v8a) | 64-bit ARM, mainstream Android TV and TV boxes | | `SeleneTV-<ver>-armeabi-v7a.apk` | armv7a (armeabi-v7a) | 32-bit ARM, older devices |
The guidance for anyone unsure is to prefer arm64-v8a, and installation is by `adb install` or by sideloading through a file manager. There is no x86 or x86_64 package, which rules out the standard Android TV emulator images and any Intel-based box. That omission interacts with the dual-core playback claim: ExoPlayer is a library inside the APK, but mpv is a native library that has to be compiled for each ABI, and the documentation does not say which ABIs ship an mpv binary or whether the option is present on the 32-bit build at all. Three releases are on record, v1.4.4, v1.4.5 and v1.4.6, published on 2026-06-18, 2026-06-21 and 2026-06-22.
Minimum Android 6.0, target SDK 36, D-pad only
The platform support section is two lines and both matter. The minimum is Android 6.0, which is API 23, and the target is SDK 36. That is a ten-generation spread between the floor and the ceiling, and a floor that old is what lets the app run on cheap TV boxes with old firmware. The second line is a constraint rather than a capability: only D-pad remote operation is supported, with no touch or mouse dependency. Everything in the interface follows from that, from the native D-pad navigation with clear focus and smooth scrolling to the 1080p design baseline that adapts to 4K using dp sizing. It also means the touch-oriented paths most Android TV apps carry are absent by design, which is why the phone remote exists as a substitute input method rather than as a convenience.
The MoonTV link resolves to a repository named LunaTV
The project is an Android TV client for MoonTV or Helios, and both names link to the same organisation. The MoonTV link points at `github.com/MoonTechLab/LunaTV`, which is a repository called LunaTV rather than MoonTV, while the Helios link points at `github.com/MoonTechLab/Helios`. So the product name in the prose and the repository name in the URL differ, which is the same class of drift as the product version in the project description, which specifies MoonTV v100 as the backend generation. The acknowledgements section credits MoonTV and Helios for backend service support, and separately credits Selene as a sibling client for mobile and desktop, plus AndroidX Media3 as the player core. On first launch the app asks for the backend address and credentials, and the description also claims support for a lightweight local mode without a backend at all.
The network stack trusts self-signed certificates on purpose
One technical bullet is really a security posture decision. Self-signed certificate friendly is listed among the technical features, and the architecture names OkHttp as the HTTP client with the note that it trusts self-signed certificates. The same bullet covers plaintext HTTP, which is described as common in self-hosted backends. That combination is coherent for the intended deployment, where the MoonTV or Helios backend sits on a home network and a self-signed certificate is cheaper than a real one. It is also the reason the credential prompt on first launch is worth reading carefully, since the address you type determines whether the key you type is sent over TLS with a chain anyone can verify or over a channel where it is not. Two related caching decisions sit alongside it: Douban data and images are cached in memory and on disk in two layers, and Coil handles Douban's hotlink protection.
The README asks not to be promoted on named mainland platforms
There is a paragraph placed above the feature list that has nothing to do with features. It asks readers not to publish videos or articles promoting this project on Bilibili, Xiaohongshu, WeChat Official Accounts, Douyin, Toutiao or other mainland China social platforms, and states that no tech weekly or monthly style project or site is authorised to index the project. Below the features, a five-point disclaimer covers the same territory from the other direction: the project is for technical study and exchange only and offers no commercial service, the aggregated content comes from third-party platforms and the developers accept no responsibility for its legality, accuracy, completeness or availability, all rights in the media belong to the original authors and rights holders with a request to comply with applicable law and support legitimate copies, no liability is accepted for direct or indirect loss from use, and users are asked to comply with local law. The final line states that using the app constitutes reading and agreeing to the disclaimer.
Editorial conclusion
Selene-TV suits someone with an ARM Android TV box or stick who wants a MoonTV or Helios front end with danmaku aggregation, a phone as a remote control, and no touch screen in the loop. It does not suit anyone who needs to build it, audit it, fork it or redistribute it, because there is no source and no licence file. Check four things before you rely on it. Check your CPU architecture, since only arm64-v8a and armeabi-v7a APKs are published and there is no x86 build for an emulator or an Intel box. Check your backend, since the app asks for a MoonTV or Helios address and credentials on first launch. Check your network, since the app accepts plaintext HTTP and trusts self-signed TLS, which is convenient for a LAN backend and wrong for anything crossing a network you do not control. And check the terms, because the project carries no detected licence and its own notice asks that it not be promoted on a list of named mainland Chinese platforms. Three releases landed in five days in June 2026 and the default branch was last pushed on 2026-06-22.
Frequently asked questions
What is Selene-TV?
An Android TV Leanback client that uses MoonTV or Helios as its backend. It is built with Kotlin and Jetpack Compose for TV, plays through ExoPlayer (Media3) or mpv, and aggregates danmaku from Bilibili, Tencent Video, iQiyi, Youku, Mango TV and LeTV, automatically picking the source with the most comments.
Which Android devices does Selene-TV support?
Android TV with Leanback, from Android 6.0 (API 23) up to a targetSdk of 36, operated with a D-pad remote and no touch or mouse dependency. Published packages cover arm64-v8a and armeabi-v7a only, with no x86 build.
How do I control Selene-TV from a phone?
The app runs an embedded HTTP server and Settings shows a QR code. Scanning it turns the phone into a remote control and an input method. The server side is Ktor on Netty, and search accepts text typed on the phone.
Does Selene-TV need a MoonTV or Helios backend?
On first launch it asks for the backend address and credentials. The project description also says a lightweight local mode without a backend is supported, alongside connecting to MoonTV or Helios. Settings is where you view the remote QR code, configure the Douban and TMDB data sources and clear the cache.
Is Selene-TV open source and what licence does it use?
The repository has no licence file and its licence field is not recognised. The root listing contains only the GitHub directory, the README, a banner image, docs and screenshots, with no Kotlin sources or Gradle files, so the project is distributed as compiled APKs rather than as source.
Official sources
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.
[](https://hysenlabs.com/projects/moontechlab-selene-tv)