CLI tool
NuvioMedia/NuvioTV avatar
NuvioMedia/NuvioTV

NuvioTV: an Android TV player built around the Stremio addon ecosystem

Project brief: Official Nuvio Android TV Repository. Stremio Addon ecosystem Android TV optimized Playback-focused experience About NuvioTV is a modern media player designed specifically for Android TV.

2,686 stars411 forksKotlinGPL-3.0

At a glance

What is it?
NuvioTV is a GPL-3.0 Kotlin media player for Android TV that turns Stremio addons into a browsable library with artwork, ratings and resume state. It is still in beta, and the README leaves most of the setup to the app itself.
Who is it for?
Adopt NuvioTV if you already run Stremio addons and want a playback-first client on an Android TV or Google TV device; the Play listing and the signed APK on the releases page are the two supported install paths. Skip it if you need a stable non-beta build, if your TV runs Tizen or webOS, or if you expect the repository to explain addon configuration, because the README does not.
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 received new commits within the last day.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

What NuvioTV is for, and who it is not for

NuvioTV is an Android TV client that plays media you already have sources for. The README describes it as a free, open-source media app for phone, desktop and TV, with the instruction to bring your own sources, and says Nuvio turns them into a library with artwork, ratings, subtitles and saved playback position. The repository is the official Nuvio Android TV repository, written in Kotlin, licensed GPL-3.0, with the default branch set to dev.

The audience is narrow and specific. You need an Android TV or Google TV device, and you need to be inside the Stremio addon ecosystem, because the addons are what supply the catalogue. Anyone expecting a bundled streaming service will find nothing here: the app has no content of its own. Anyone on a Samsung Tizen or LG webOS television is also outside the target, since the published install paths are Android TV on Google Play and an Android TV APK from the releases page.

The repository's own framing is playback-focused. That word matters. NuvioTV is not trying to be a media server, a downloader or a library manager for local files; it is the last mile between an addon that returns stream links and a television screen.

How the addon pipeline turns into a library

The mechanism is the Stremio addon protocol. Addons expose a manifest, and the app reads that manifest to learn what catalogues, metadata and streams the addon can provide. The README does not spell out the request flow, but the search questions around the project point at the manifest as the load-bearing piece: one of the most common reported failures is a missing manifest id, which is the identifier the app uses to tell one addon apart from another. If that field is absent or malformed, the addon cannot be registered.

From the manifest, the app assembles the pieces the README lists: artwork, ratings, subtitles and a saved position per title. The repository layout supports the playback-first claim. There is a libmpv-android directory and an ffmpeg-decoder-downmix directory at the top level, so decoding and audio downmixing are handled by bundled native components rather than left entirely to the platform. A baselineprofile directory indicates the build ships a baseline profile for ahead-of-time compilation of the hot paths, which is a startup and scroll-smoothness measure rather than a feature. The app module is a single Gradle module, with scripts and docs alongside it.

What the repository does not describe is a server component. There is no backend directory and no service the user is expected to run, so the addon endpoints are contacted directly from the device. That is a design choice with consequences: resolution quality and availability depend on the network the TV sits on, not on a relay you control.

How to install NuvioTV and play something

There are two documented install paths. The first is Google Play, for Android TV, at the package id com.nuvio.app. The second is the Android TV APK attached to the latest GitHub release. The README lists both and does not discuss sideloading onto non-TV Android builds, so treat the APK as an Android TV artifact.

If you prefer to build it yourself, the README gives a three-line Gradle recipe. Run these from a shell with the Android SDK and a JDK available:

bash
git clone https://github.com/NuvioMedia/NuvioTV.git
cd NuvioTV
./gradlew :app:assembleFullDebug

The result is a debug build of the full flavor. The README states that development requires Android Studio, a JDK and the Android SDK, and that the stack is Kotlin, Jetpack Compose, TV Material 3 and Media3. It does not list a minimum JDK or SDK version, so if the build fails on toolchain resolution, that is the gap to expect.

After installing on the TV, the first real task is adding an addon. The README does not document this step, and the repository has no configuration file for it; the app is where addons get registered. Because the manifest id is the field that trips people up, the practical check after adding a source is whether its catalogues appear at all. If a source you added shows nothing, the manifest is the first thing to inspect, not the playback settings.

For a local build, the repository ships local.example.properties at the top level, which is the template for machine-specific settings that should not be committed. Copy it to the untracked name the build expects before changing anything in it, and keep it out of version control.

Beta releases and the cost of tracking dev

Every release listed for this project is a beta: 0.8.9-beta, 0.8.10-beta and 0.8.11-beta, the last of which was pushed on 2026-08-29. One of them is labelled a hotfix. That sequence tells you more about the project's maturity than any feature list: fixes arrive quickly and version numbers move in small increments, which is normal for a client that has to keep up with third-party addon behaviour it does not control.

The default branch is dev, not main or master. If you clone the repository as the README instructs, you get the development branch, which is the code the next beta is cut from. For a build you intend to watch television on, that is the wrong default; check out a release tag instead. The README does not mention tags or branches at all, so this is a decision the reader has to make unprompted.

Upgrade cost is low in the Play case, since the store handles it. For the APK path it is manual, and there is no documented rollback procedure or downgrade path in the README. If a beta regresses playback on your device, the release page is where you would look for an older build, and the README is silent on whether settings survive a reinstall.

Licence: GPL-3.0 and what it means for forks

NuvioTV is licensed under GNU General Public License v3.0, and the README links the LICENSE file at the repository root. This is a copyleft licence. If you distribute a modified build, the source for your modifications has to be made available under the same terms. That is a real constraint for anyone thinking of shipping a rebranded client to a store, and it is the main reason a commercial fork of this codebase is impractical without legal review.

The bundled native components sit alongside that licence. The repository contains libmpv-android and ffmpeg-decoder-downmix directories, and those upstream projects carry their own licensing. The README does not enumerate them or state how they are combined, so if you plan to redistribute a build, the per-component licences are something to confirm from those directories rather than from the README. Nothing here is legal advice; the point is that the licence question is not answered by the GPL line alone.

For a personal build on your own television, none of this matters. GPL-3.0 obligations attach to distribution, not to private use.

NuvioTV versus Stremio on the same TV

The comparison people actually search for is NuvioTV against Stremio, and the difference is architectural rather than cosmetic. Stremio is a general client that runs across desktop, mobile and TV and brings its own account layer and addon management surface. NuvioTV is Android TV only, and its README positions it as playback-focused, with the addon ecosystem as the input rather than the product.

In practice that means NuvioTV is a thinner client. It does not try to be the place where you curate addons across devices; it tries to be the thing that plays what the addons return, with a TV-shaped interface built on TV Material 3 and Media3 as the playback stack. If your complaint with Stremio on a television is the interface rather than the catalogue, NuvioTV is aimed squarely at that complaint. If your complaint is catalogue management, switching clients will not fix it, because both depend on the same addons.

The other honest alternative is doing nothing: staying on whatever client already works on your device. NuvioTV's beta status means the reason to move has to be the playback experience specifically, not a missing feature you cannot get elsewhere.

Maintenance status and what the repository shows

The repository is not archived, and the last push was on 2026-08-29, which is recent enough that the project is being worked on. The release cadence backs that up: three beta releases in the last week of August 2026, including a hotfix. This is a project under current development, not a dormant one.

What that does not tell you is stability. A rapid beta cadence on a dev branch means the code you build today is not the code most users are running. The repository does contain a release_test_cases.csv file at the top level, which suggests some release verification is tracked in-tree, but the README does not describe a test process or a support policy. There is a CONTRIBUTING.md and a docs directory, so contribution guidance exists, but the README itself is short and points outward to the website for anything beyond installation and building.

Read the README as a build guide, not as documentation. It tells you how to get the app onto a device and how to compile it, and stops there. Everything about addon behaviour, playback settings and troubleshooting lives somewhere else, and the search questions suggest users are finding that gap.

Editorial conclusion

Adopt NuvioTV if you already run Stremio addons and want a playback-first client on an Android TV or Google TV device; the Play listing and the signed APK on the releases page are the two supported install paths. Skip it if you need a stable non-beta build, if your TV runs Tizen or webOS, or if you expect the repository to explain addon configuration, because the README does not. Before installing, check which of the 0.8.x-beta releases is current, confirm your device is Android TV or Google TV rather than a phone-only Android build, and verify that the addons you rely on are reachable from the TV's network.

Frequently asked questions

How do I install NuvioTV?

The README lists two Android TV paths: Google Play under the package id com.nuvio.app, or the Android TV APK attached to the latest GitHub release. Building from source uses the Gradle task :app:assembleFullDebug after cloning the repository.

Can I watch NuvioTV on Google TV?

Yes. The published install paths are Android TV on Google Play and an Android TV APK, and Google TV devices run the Android TV app model. The README does not list any separate Google TV build.

How do I fix the error "Nuvio manifest missing id"?

The error means the addon's manifest does not carry the id field the app uses to register it. The README does not document this failure, so the fix has to come from the addon side: check that the manifest the addon serves includes an id before adding it to NuvioTV.

How does NuvioTV compare with Stremio?

Both depend on the Stremio addon ecosystem, so the catalogue is the same source. NuvioTV is Android TV only and the README describes it as playback-focused, while Stremio is a general client across desktop, mobile and TV.

What is the Nuvio Firestick code?

The README does not mention Amazon Fire TV or any Firestick pairing code. The documented install paths are Android TV on Google Play and the Android TV APK from the GitHub releases page.

Does NuvioTV support IPTV?

The README does not mention IPTV or M3U playlists. Content in NuvioTV comes from Stremio addons, which supply catalogues and streams through their manifests.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes