feat(website): name the Android TV players on the computer vs TV box page

"TiviMate for PC" is the query behind most of this page's traffic, so the
page now names the apps people mean instead of describing a category. What
it says about them is what could actually be verified: TiviMate's Google
Play listing (Android and Android TV, reads M3U, Xtream Codes and Stalker,
"a media player that provides no content"), and IPTV Smarters publishing
Windows and macOS builds — which is why the page does not claim TV apps
have no desktop version.

The useful half is the part no affiliate site writes: these names are
heavily abused, the stores carry copycat listings, and much of the search
result for any of them is someone selling "subscriptions" under the app's
brand. The developers are player authors who do not sell channels, which is
exactly what IPTVnator says about itself — the page links to our own
unofficial-websites post for the same reason.

Three FAQ entries answer the query directly, and the page joins the
NAMES_THIRD_PARTY_SOFTWARE set so the test requires its dated disclaimer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5 committed 2026-09-11 21:42:55 +02:00
1 parent f833e16cc4
commit 0c531276a0
2 files changed
+49 -4

No files matched your search

@@ -8,6 +8,7 @@ import RelatedPosts from '../../components/download/RelatedPosts.astro';
import CompareHero from '../../components/compare/CompareHero.astro';
import ComparisonTable from '../../components/compare/ComparisonTable.astro';
import CompareSwitcher from '../../components/compare/CompareSwitcher.astro';
import ThirdPartyNote from '../../components/compare/ThirdPartyNote.astro';
import type { FaqEntry } from '../../lib/download-schema';
import { buildComparisonPageSchema } from '../../lib/comparison-schema';
import { comparisonBySlug } from '../../lib/comparisons';
@@ -17,7 +18,7 @@ const comparison = comparisonBySlug('computer-vs-tv-box');
const pageUrl = absoluteUrl('/compare/computer-vs-tv-box/');
const title = 'IPTV on a Computer vs on a TV Box – Which Room Does What';
const description =
'A set-top box is unbeatable in front of the TV, and hopeless the moment you have to type a server URL or work out why a guide shows the wrong programme. What each place is good at, and how IPTVnator fits the computer half.';
'A set-top box is unbeatable in front of the TV, and hopeless the moment you have to type a server URL or work out why a guide shows the wrong programme. What each place is good at, why an Android-only app has no PC version, and how IPTVnator fits the computer half.';
const columns = ['TV box or smart TV', 'Computer'];
@@ -46,6 +47,29 @@ const practicalRows = [
{ label: 'Runs IPTVnator', cells: [false, true], note: 'IPTVnator is a desktop app for Windows, macOS and Linux, plus a browser version you host yourself. There is no TV build.' },
];
const apps = [
{
title: 'They read the same sources you already have',
description:
'The Android TV players people name — TiviMate, Televizo, OTT Navigator and the rest — take M3U links, Xtream Codes logins and Stalker portals, the same three things IPTVnator takes. TiviMate’s own Google Play listing says it plainly: it is a media player and provides no content. That is why a subscription is never tied to one app.',
},
{
title: 'Android-only is common, but it is not a rule',
description:
'TiviMate is published for Android and Android TV and has no desktop build, which is why “TiviMate for PC” is such a common search. Others do ship desktop versions — IPTV Smarters publishes Windows and macOS builds alongside its mobile ones. Check the developer’s own page rather than a reseller’s before believing either answer.',
},
{
title: 'On a computer, the equivalent is a desktop player — not an emulator',
description:
'Running an Android TV app in an emulator gets you a phone interface in a window, with the remote-control navigation still in the way. If the app you like is Android-only, what you actually want on a computer is a player built for one. IPTVnator reads the same three source types, so the provider details you already have are all it needs.',
},
{
title: 'Be careful what you search for',
description:
'These names are heavily abused. The app stores carry near-identical copycat listings, and a large share of the search results for any of them are sites selling “subscriptions” under the app’s brand. The developers are player authors; they do not sell channels — exactly what IPTVnator says about itself.',
},
];
const guidance = [
{
title: 'Set it up on the computer, watch wherever you like',
@@ -90,6 +114,18 @@ const faq: FaqEntry[] = [
q: 'Does IPTVnator run on a Raspberry Pi?',
a: 'Yes, on a Pi running a desktop Linux: arm64 and armv7l AppImage and .deb builds ship with every release. It is still the desktop app, with a desktop interface — a Pi behind the TV will want a keyboard, or the phone remote.',
},
{
q: 'Is there a PC version of TiviMate?',
a: 'No. It is published for Android and Android TV, and there is no desktop build. Running it inside an Android emulator is not the same thing: you get a remote-driven interface in a window. On a computer the equivalent is a player built for a computer, and since TiviMate reads M3U links, Xtream Codes logins and Stalker portals, the same provider details work in IPTVnator without buying anything again.',
},
{
q: 'Do all the TV apps lack a desktop version?',
a: 'No, and it is worth checking rather than assuming. IPTV Smarters, for example, publishes Windows and macOS builds next to its mobile ones. Look at the developer’s own page; the search results for these names are full of resellers who will tell you whatever sells a subscription.',
},
{
q: 'If I switch app, do I have to buy my channels again?',
a: 'No. The subscription belongs to your provider, not to the player. Any app that speaks the same source type — an M3U link, an Xtream Codes login, a Stalker portal — can use the details you already have. The only real limit is how many streams your account allows at once.',
},
{
q: 'Can I run the same subscription in both places?',
a: 'That is your provider’s decision, not the app’s. Accounts carry a maximum number of simultaneous connections, often one or two. The account dialog in IPTVnator shows the active and maximum connections for an Xtream account.',
@@ -122,7 +158,7 @@ const jsonLd = buildComparisonPageSchema({ comparison, pageUrl, description, faq
columns={columns}
rows={setupRows}
rowHeader="Task"
caption="Rows describe the ordinary experience of each kind of device rather than any particular application; individual apps differ."
caption="Rows describe the ordinary experience of each kind of device rather than any particular application; individual apps differ, and the section below names the ones people usually mean."
/>
</DownloadSection>
@@ -134,6 +170,11 @@ const jsonLd = buildComparisonPageSchema({ comparison, pageUrl, description, faq
<ComparisonTable columns={columns} rows={practicalRows} rowHeader="Detail" />
</DownloadSection>
<DownloadSection id="apps" eyebrow="Names" title="The apps people" accent="actually mean" lead="“TV box” usually means one of a handful of Android TV players. Knowing what they have in common is more useful than ranking them.">
<FeatureList items={apps} />
<ThirdPartyNote names={['TiviMate', 'Televizo', 'OTT Navigator', 'IPTV Smarters']} checked="September 2026" />
</DownloadSection>
<DownloadSection id="guidance" eyebrow="Making it work" title="Use both, on" accent="purpose">
<FeatureList items={guidance} />
</DownloadSection>
@@ -145,7 +186,7 @@ const jsonLd = buildComparisonPageSchema({ comparison, pageUrl, description, faq
</DownloadSection>
<DownloadSection id="guides" eyebrow="Keep reading" title="Guides and" accent="background">
<RelatedPosts slugs={['remote-control-guide', 'epg-wrong-program-fix', 'offline-downloads-guide']} />
<RelatedPosts slugs={['remote-control-guide', 'beware-unofficial-iptvnator-websites', 'epg-wrong-program-fix']} />
<div class="mt-10">
<OfficialSourcesNote />
</div>
+5 -1
View File
@@ -19,7 +19,11 @@ const COMPARISONS = [
'computer-vs-tv-box',
];
/** Pages that name other software must say they are not affiliated with it, and date their claims. */
const NAMES_THIRD_PARTY_SOFTWARE = new Set(['iptvnator-vs-vlc', 'iptvnator-vs-kodi']);
const NAMES_THIRD_PARTY_SOFTWARE = new Set([
'iptvnator-vs-vlc',
'iptvnator-vs-kodi',
'computer-vs-tv-box',
]);
const readDist = (relativePath) => readFile(new URL(relativePath, distRoot), 'utf8');