A cross-platform IPTV player for Xtream Codes and M3U / M3U8 playlists.
Live TV with EPG, movies, series, offline downloads, and TV-remote (D-pad) navigation.
Ships on Windows (Microsoft Store + installer), Android phone / tablet / TV (Google Play), macOS, Linux, and the web.
More screenshots (Live TV, EPG, Movies, Series, Android TV, mobile)
Desktop
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Android TV (10-foot UI, D-pad focus)
![]() |
![]() |
![]() |
Phone (portrait, touch)
![]() |
![]() |
![]() |
- Two backends, one UI. Sign in with Xtream Codes credentials (host / port / user / pass) or paste a direct
.m3u/.m3u8URL. The app detects the mode automatically. - Live TV with category filtering, channel search, virtualised list, and inline EPG (now / next / today).
- Movies (VOD) and Series library with poster grids, detail dialogs, and season / episode navigation.
- Full schedule grid on the EPG page, with timezone-aware "all times local" rendering.
- Picture-in-picture and a Video.js-powered player tuned for HLS.
- Multiple playlists, switchable from the sidebar without re-entering credentials.
- TV-first navigation. Spatial focus (D-pad / arrow keys) is wired across the whole app via
spatial-navigation-polyfill. Hit targets, focus rings, and reflow tested for 10-foot UI. - Light and dark themes, both first-class. Honours
prefers-color-scheme,prefers-reduced-motion, andprefers-contrast. - Adjustable font scale (Default / Medium / Large / X-Large) plus a responsive root size that scales the whole UI on 4K and 8K displays.
- Self-updating Windows desktop build via the Tauri updater (signed with minisign, served from GitHub Releases).
- Offline-friendly persistence. Credentials and preferences live in the OS app-data dir on Tauri builds, with a localStorage / cookie fallback on the web build.
| Platform | How | Updates |
|---|---|---|
| Windows (Microsoft Store) | apps.microsoft.com | Microsoft Store |
| Windows (sideload) | NSIS .exe (or .msi) from Releases |
In-app auto-updater |
| macOS (Apple Silicon + Intel) | Universal .dmg from Releases |
In-app auto-updater |
| Linux (Debian / Ubuntu / Mint) | .deb from Releases |
Manual |
| Linux (Fedora / openSUSE / RHEL) | .rpm from Releases |
Manual |
| Linux (any distro, portable) | .AppImage from Releases |
In-app auto-updater |
| Android phone / tablet | Google Play | Play Store |
| Android TV | Same APK, sideload via ADB or use Play Store on supported devices | Play Store |
| Web preview | Build with pnpm build and serve dist/ (no auto-update, no native features) |
Manual |
The Microsoft Store listing is federated through winget, so you can install without opening the Store:
winget install --id 9NN162Z0WXSR --source msstoreThe macOS build is not yet notarized by Apple, so Gatekeeper blocks it on first launch with a message like "Apple could not verify Extreme InfiniTV.app is free of malware". After dragging the app from the .dmg into /Applications, remove the quarantine flag from a Terminal:
xattr -dr com.apple.quarantine "/Applications/Extreme InfiniTV.app"Then open the app normally. You only need to do this once per install.
Requirements: pnpm (the package manager is pinned in package.json), Node 20+, the Rust toolchain (only for tauri commands), and Android Studio for tauri:android.
pnpm install
pnpm dev # Astro + Svelte at http://localhost:4321
pnpm tauri dev # Native desktop shell (auto-spawns pnpm dev)
pnpm tauri:android # Android dev shellTo test the dev server on another device on the LAN (phone, TV), set XTREAM_HMR_HOST to your machine's LAN IP so Vite advertises the right HMR host:
XTREAM_HMR_HOST=192.168.1.50 pnpm devTests run with Vitest (pnpm test); the suite covers pure-function libs in tests/. Lint with ESLint flat config (pnpm lint / pnpm lint:fix); no Prettier. TypeScript is in strict mode (tsconfig.json extends astro/tsconfigs/strict); the @/* alias maps to src/*.
Copyright (c) 2025 Ludovico Ferrara.
Extreme InfiniTV is released under the GNU General Public License v3.0 or later. You are free to use, study, share, and modify it; any distributed fork or derivative must remain under the same license and ship its source.












