readme.md
July 30, 2026 ยท View on GitHub
Extreme InfiniTV
A cross-platform IPTV player for Xtream Codes and M3U / M3U8 playlists.
Live TV with EPG and catch-up, movies, series, custom playlists, 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.
Screenshots
More screenshots (Live TV, EPG, Movies, Series, Android TV, mobile)
Desktop
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Android TV (10-foot UI, D-pad focus)
![]() | ![]() | ![]() |
Phone (portrait, touch)
![]() | ![]() | ![]() |
Features
- Any source, one UI. Sign in with Xtream Codes credentials, paste an M3U / M3U8 URL or a direct stream link, or load a playlist file from your device. The app detects the mode automatically.
- Live TV with category filtering, channel search, channel-number entry, a virtualised list, and inline EPG (now / next / today).
- Catch-up TV and replay. Replay programmes from your provider's archive and pause or rewind behind live, with a full-programme seekbar.
- Custom playlists built in a full in-app editor: pull channels from any playlist, reorder and group them, rename, renumber, find and replace, check links, and export as
.m3u. - Add a stream from any website. Paste a page URL and the app sniffs the network for playable HLS / DASH streams, with quality labels and multi-select.
- 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, custom EPG sources, and channel mapping.
- A player for everything. Three embedded engines (ArtPlayer, Video.js, Shaka) cover HLS, MPEG-TS, MPEG-DASH with ClearKey, and HEVC (with one-click install of the Windows HEVC extension). Picture-in-picture included.
- Embedded subtitles from MP4 files everywhere and MKV files on desktop, plus audio track switching and automatic audio repair: AC-3 / E-AC-3 / MP2 / DTS transcoded on the fly through a bundled FFmpeg (Windows / Linux).
- External players. Hand any stream to MPV or VLC on desktop (with window reuse), or to any installed video app on Android.
- Multiple playlists, switchable from the sidebar without re-entering credentials, each with its own favorites, watchlist, progress, and health panel.
- 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, plus a TV safe-area setting for overscan. - 16 languages including RTL (Arabic, Urdu), translated before first paint so there's no flash of English.
- Light and dark themes with seven accent colors, 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 desktop builds (Windows NSIS and Linux AppImage) via the Tauri updater, signed with minisign and served from GitHub Releases, with stable and beta channels and a "What's new" dialog after each update.
- Backup and restore. Export playlists, preferences, and settings as one file and import them on another device.
- 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.
- No tracking, no ads, no telemetry. The app collects nothing about you or your viewing habits.
Install
| 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 | Update check in-app, download from Releases |
| Linux (Snap, most distros) | sudo snap install extreme-infinitv or Snap Store | Snap Store |
| 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 |
| Raspberry Pi 4 / 5 (64-bit OS) | sudo snap install extreme-infinitv, or arm64 .deb / .AppImage from Releases | Snap Store / in-app (AppImage) |
| 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 |
via winget
The Microsoft Store listing is federated through winget, so you can install without opening the Store:
winget install --id 9NN162Z0WXSR --source msstore
macOS: "Extreme InfiniTV.app" cannot be opened
The 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.
Develop
Requirements: pnpm (the package manager is pinned in package.json), Node 20+, the Rust toolchain (only for tauri commands), Java 21 and Android Studio for tauri:android. mise.toml pins the toolchain versions if you use mise.
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 shell
On Windows and Linux, pnpm tauri dev / pnpm tauri build first download and checksum-verify a trimmed FFmpeg sidecar into src-tauri/binaries/ (run pnpm fetch-ffmpeg to do it manually). The first Tauri build therefore needs network access.
To 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 dev
Tests run with Vitest (pnpm test); ~28 suites in tests/ cover the parsers, serializers, catch-up math, codec hints, custom playlists, backup, and the playback proxies. 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/*.
Credits
Copyright (c) 2025 Ludovico Ferrara.
License
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.
The Windows and Linux desktop builds bundle a trimmed FFmpeg binary (LGPL v2.1) for the automatic audio fix. The full notice, source pointer, and build recipe are in the app under Settings > About > Open-source licenses.











