Extreme-InfiniTV

infinitel8pGPL-3.0活跃维护

跨平台 IPTV 播放器,支持 Xtream Codes 和 M3U/M3U8 播放列表,带电视遥控器操作、EPG 节目单和离线下载,覆盖 Windows、macOS、Linux、Android 及电视端。

Cross-platform IPTV player for Xtream Codes and M3U/M3U8 playlists. TV remote support, EPG, and offline downloads. Windows, macOS, Linux, Android and TV - on Microsoft Store, Google Play and Snap Store.

v2.0.0-beta.75发布于 2026-11-05 11:56 UTC214star +3 / 7 天34fork同步于 2026-11-10 18:04 UTC

怎么上手

由 README 提炼,执行前请确认
sudo snap install extreme-infinitv
winget install --id 9NN162Z0WXSR --source msstore
硬件要求按 README 说明

README 未说明显存或 GPU 要求;支持 Windows、macOS(Apple Silicon 与 Intel)、Linux、Android 手机/平板/Android TV/Fire TV,以及 Raspberry Pi 4/5 的 64 位系统。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

跨平台 IPTV 播放器,统一接入 Xtream Codes 与 M3U 播放源,支持电视遥控操作

跨平台 IPTV 播放器,支持 Xtream Codes 和 M3U/M3U8 播放列表,带电视遥控器操作、EPG 节目单和离线下载,覆盖 Windows、macOS、Linux、Android 及电视端。

核心能力

  • 自动识别 Xtream Codes 凭据、M3U 链接或本地播放列表
  • 直播频道支持分类筛选、搜索与内嵌 EPG 节目单
  • 支持回看与直播时移,可暂停和回退到直播点之后
  • 内置播放列表编辑器,可重排分组、改名改号并导出 m3u
  • 粘贴网页地址自动嗅探 HLS/DASH 流并多选清晰度

容易踩的坑

macOS 版本未经 Apple 公证,首次启动需执行 xattr -dr com.apple.quarantine 移除隔离标记;Windows/Linux 首次 Tauri 构建需联网下载并校验 FFmpeg sidecar;TMDB 元数据需自备免费 API Key 并在设置中填写。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.0.0-beta.75
  1. v2.0.0-beta.75Extreme InfiniTV v2.0.0-beta.75 (beta)pre-release最新正式版2026-11-05 · 2026-11-05 11:56 UTC

    Automated beta build from release/2.0.0 @ 90e1cbc.

    Android versionCode: 200000075 (TV: 200004575)

    Commits since v1.9.0

    • fix(android): local M3U file picker fallback and TV backup export (90e1cbc)
    • ci: pin @tauri-apps/cli to 2.12.2 until rpm bundling accepts prerelease versions (137bce3)
    • chore: update node version to 24 in workflow files and package.json (fd7ae0f)
    • fix(sidebar): animate the brand-mark comet on the compositor instead of offset-path Closes #238 (e9ccf8e)
    • bump deps (19f23c1)
    • fix(subtitles): size cues from the video height and add a Huge step Fixes #236 (dabb374)
    • fix(vod): land seeked remux mounts on the right timeline and keep the player off the old stream's end (#234) (57e9cf6)
    • feat(subtitles): size and delay on the TV playback sheet, Settings rows and backup (#236) (92b2043)
    • feat(android): subtitle size and delay in the native player (#236) (d08a451)
    • feat(subtitles): open the Subtitles dialog from inside the players so it works in fullscreen (#236) (3837365)
    • feat(subtitles): subtitle size for every embedded player and a delay that survives remounts (#236) (7c34b5e)
    • refactor(livetv): pull the per-tune UA into a tested helper (e842f33)
    • fix(livetv): send a fresh UA per HLS tune so a quick return isn't 403'd (#235) (44fd381)
    • refactor(player): key the iina-cli option rewrite on the launch kind, not the binary name (beb75f1)
    • feat(player): IINA as an external player on macOS (#233) (a5eb199)
    • fix(vod): keep a seek target through the remux re-register instead of snapping back (#231) (57efdf7)
    • feat(epg): programme search across the active category, catch-up window and upcoming schedule (#228) (4014803)
    • ci: don't fail the i18n key check when the PR comment can't be posted (2f22b4d)
    • fix(livetv): retry a 403 on a quick return to a channel instead of giving up (#227) ([4916595](https://github.com/infinitel8p/Extreme-InfiniTV/commit/4916595fa18a4f3b813b9d6
  2. v2.0.0-beta.74Extreme InfiniTV v2.0.0-beta.74 (beta)pre-release2026-10-28 · 2026-10-28 14:27 UTC
    查看更新说明

    Automated beta build from release/2.0.0 @ 137bce3.

    Android versionCode: 200000074 (TV: 200004574)

    Commits since v1.9.0

    • ci: pin @tauri-apps/cli to 2.12.2 until rpm bundling accepts prerelease versions (137bce3)
    • chore: update node version to 24 in workflow files and package.json (fd7ae0f)
    • fix(sidebar): animate the brand-mark comet on the compositor instead of offset-path Closes #238 (e9ccf8e)
    • bump deps (19f23c1)
    • fix(subtitles): size cues from the video height and add a Huge step Fixes #236 (dabb374)
    • fix(vod): land seeked remux mounts on the right timeline and keep the player off the old stream's end (#234) (57e9cf6)
    • feat(subtitles): size and delay on the TV playback sheet, Settings rows and backup (#236) (92b2043)
    • feat(android): subtitle size and delay in the native player (#236) (d08a451)
    • feat(subtitles): open the Subtitles dialog from inside the players so it works in fullscreen (#236) (3837365)
    • feat(subtitles): subtitle size for every embedded player and a delay that survives remounts (#236) (7c34b5e)
    • refactor(livetv): pull the per-tune UA into a tested helper (e842f33)
    • fix(livetv): send a fresh UA per HLS tune so a quick return isn't 403'd (#235) (44fd381)
    • refactor(player): key the iina-cli option rewrite on the launch kind, not the binary name (beb75f1)
    • feat(player): IINA as an external player on macOS (#233) (a5eb199)
    • fix(vod): keep a seek target through the remux re-register instead of snapping back (#231) (57efdf7)
    • feat(epg): programme search across the active category, catch-up window and upcoming schedule (#228) (4014803)
    • ci: don't fail the i18n key check when the PR comment can't be posted (2f22b4d)
    • fix(livetv): retry a 403 on a quick return to a channel instead of giving up (#227) (4916595)
    • fix: respect hidden categories on Recently Added, Search and the recommendation rails (#229) ([a4c4e59](https://github.com/infinitel8p/Extreme-InfiniTV/com
  3. v2.0.0-beta.70Extreme InfiniTV v2.0.0-beta.70 (beta)pre-release2026-10-24 · 2026-10-24 14:44 UTC
    查看更新说明

    Automated beta build from release/2.0.0 @ 57e9cf6.

    Android versionCode: 200000070 (TV: 200004570)

    Commits since v1.9.0

    • fix(vod): land seeked remux mounts on the right timeline and keep the player off the old stream's end (#234) (57e9cf6)
    • feat(subtitles): size and delay on the TV playback sheet, Settings rows and backup (#236) (92b2043)
    • feat(android): subtitle size and delay in the native player (#236) (d08a451)
    • feat(subtitles): open the Subtitles dialog from inside the players so it works in fullscreen (#236) (3837365)
    • feat(subtitles): subtitle size for every embedded player and a delay that survives remounts (#236) (7c34b5e)
    • refactor(livetv): pull the per-tune UA into a tested helper (e842f33)
    • fix(livetv): send a fresh UA per HLS tune so a quick return isn't 403'd (#235) (44fd381)
    • refactor(player): key the iina-cli option rewrite on the launch kind, not the binary name (beb75f1)
    • feat(player): IINA as an external player on macOS (#233) (a5eb199)
    • fix(vod): keep a seek target through the remux re-register instead of snapping back (#231) (57efdf7)
    • feat(epg): programme search across the active category, catch-up window and upcoming schedule (#228) (4014803)
    • ci: don't fail the i18n key check when the PR comment can't be posted (2f22b4d)
    • fix(livetv): retry a 403 on a quick return to a channel instead of giving up (#227) (4916595)
    • fix: respect hidden categories on Recently Added, Search and the recommendation rails (#229) (a4c4e59)
    • fix(snapcraft): update architecture variable for webkit2gtk and library paths (6bc3b50)
    • feat(subtitles): OpenSubtitles search and in-player subtitle selection (#226) (9fad653)
    • fix(mpv): restart the embedded mpv session after the process dies (7e8f0f8)
    • ci: build Linux desktop bundles on ubuntu-24.04 so the AppImage ships WebKitGTK 2.52.6 (115a82f)
    • fix: harden CodeQL-flagged sinks ([d224c14](https://github.com/infinitel8p/Extreme-Infi
  4. v2.0.0-beta.69Extreme InfiniTV v2.0.0-beta.69 (beta)pre-release2026-10-24 · 2026-10-24 14:15 UTC
    查看更新说明

    Automated beta build from release/2.0.0 @ 92b2043.

    Android versionCode: 200000069 (TV: 200004569)

    Commits since v1.9.0

    • feat(subtitles): size and delay on the TV playback sheet, Settings rows and backup (#236) (92b2043)
    • feat(android): subtitle size and delay in the native player (#236) (d08a451)
    • feat(subtitles): open the Subtitles dialog from inside the players so it works in fullscreen (#236) (3837365)
    • feat(subtitles): subtitle size for every embedded player and a delay that survives remounts (#236) (7c34b5e)
    • refactor(livetv): pull the per-tune UA into a tested helper (e842f33)
    • fix(livetv): send a fresh UA per HLS tune so a quick return isn't 403'd (#235) (44fd381)
    • refactor(player): key the iina-cli option rewrite on the launch kind, not the binary name (beb75f1)
    • feat(player): IINA as an external player on macOS (#233) (a5eb199)
    • fix(vod): keep a seek target through the remux re-register instead of snapping back (#231) (57efdf7)
    • feat(epg): programme search across the active category, catch-up window and upcoming schedule (#228) (4014803)
    • ci: don't fail the i18n key check when the PR comment can't be posted (2f22b4d)
    • fix(livetv): retry a 403 on a quick return to a channel instead of giving up (#227) (4916595)
    • fix: respect hidden categories on Recently Added, Search and the recommendation rails (#229) (a4c4e59)
    • fix(snapcraft): update architecture variable for webkit2gtk and library paths (6bc3b50)
    • feat(subtitles): OpenSubtitles search and in-player subtitle selection (#226) (9fad653)
    • fix(mpv): restart the embedded mpv session after the process dies (7e8f0f8)
    • ci: build Linux desktop bundles on ubuntu-24.04 so the AppImage ships WebKitGTK 2.52.6 (115a82f)
    • fix: harden CodeQL-flagged sinks (d224c14)
    • feat: merged view across multiple playlists (#164) (4253e03)
    • f
  5. v2.0.0-beta.67Extreme InfiniTV v2.0.0-beta.67 (beta)pre-release2026-10-23 · 2026-10-23 20:12 UTC
    查看更新说明

    Automated beta build from release/2.0.0 @ e842f33.

    Android versionCode: 200000067 (TV: 200004567)

    Commits since v1.9.0

    • refactor(livetv): pull the per-tune UA into a tested helper (e842f33)
    • fix(livetv): send a fresh UA per HLS tune so a quick return isn't 403'd (#235) (44fd381)
    • refactor(player): key the iina-cli option rewrite on the launch kind, not the binary name (beb75f1)
    • feat(player): IINA as an external player on macOS (#233) (a5eb199)
    • fix(vod): keep a seek target through the remux re-register instead of snapping back (#231) (57efdf7)
    • feat(epg): programme search across the active category, catch-up window and upcoming schedule (#228) (4014803)
    • ci: don't fail the i18n key check when the PR comment can't be posted (2f22b4d)
    • fix(livetv): retry a 403 on a quick return to a channel instead of giving up (#227) (4916595)
    • fix: respect hidden categories on Recently Added, Search and the recommendation rails (#229) (a4c4e59)
    • fix(snapcraft): update architecture variable for webkit2gtk and library paths (6bc3b50)
    • feat(subtitles): OpenSubtitles search and in-player subtitle selection (#226) (9fad653)
    • fix(mpv): restart the embedded mpv session after the process dies (7e8f0f8)
    • ci: build Linux desktop bundles on ubuntu-24.04 so the AppImage ships WebKitGTK 2.52.6 (115a82f)
    • fix: harden CodeQL-flagged sinks (d224c14)
    • feat: merged view across multiple playlists (#164) (4253e03)
    • feat: add AppRun seeding for AppImage bundler on Ubuntu (f4430fd)
    • feat: add workflow artifact upload for mobile AAB to support manual Play Console uploads (e0bfef6)
    • refactor: remove unused PluginManager binding logic from MainActivity (8b9a904)
    • Update windows dependency to version 0.62 and add Win32_UI_Input_KeyboardAndMouse feature (5ada868)
    • feat(epg): render the guide as one continuous multi-

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Screenshots

    Desktop

    Android TV (dedicated 10-foot interface, 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, inline EPG (now / next / today), and automatic channel-logo fallback from iptv-org's logo collection when a provider doesn't supply one.
    • 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, season / episode navigation, mark watched / unwatched with a watched badge, an optional hide-watched filter, and a "Surprise me" random-title picker.
    • TMDB metadata enrichment. Optional, bring-your-own free API key (Settings > Network): cast, director, and similar titles on movie and series detail pages.
    • "Because you watched" recommendations on the home screen, plus similar-title suggestions on detail pages, both computed locally from category, cast, and director so they work even without a TMDB key.
    • Search (Ctrl+K) across channels, movies, and series, with recent searches you can revisit or clear.
    • 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, plus MKV playback on desktop (remuxed on the fly through a bundled FFmpeg on macOS / Linux, and as a Windows fallback when WebView2 can't demux a file), with an option to turn captions on by default, audio track switching, and automatic audio repair for AC-3 / E-AC-3 / MP2 / DTS.
    • 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 and a collapsible desktop sidebar.
    • 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; each playlist can also override the accent (and add an emoji) so you can tell them apart at a glance. Honours prefers-color-scheme, prefers-reduced-motion, and prefers-contrast.
    • Adjustable font scale (Small / 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; clear your viewing history from Settings at any time.
    • No tracking, no ads, no telemetry. The app collects nothing about you or your viewing habits. Outbound metadata lookups are limited to TheTVDB artwork and episode details (keyless, can be turned off in Settings) and the optional TMDB enrichment above with your own API key.

    Install

    PlatformHowUpdates
    Windows (Microsoft Store)apps.microsoft.comMicrosoft Store
    Windows (sideload)NSIS .exe (or .msi) from ReleasesIn-app auto-updater
    macOS (Apple Silicon + Intel)Universal .dmg from ReleasesUpdate check in-app, download from Releases
    Linux (Snap, most distros)sudo snap install extreme-infinitv or Snap StoreSnap Store
    Linux (Debian / Ubuntu / Mint).deb from ReleasesManual
    Linux (Fedora / openSUSE / RHEL).rpm from ReleasesManual
    Linux (any distro, portable).AppImage from ReleasesIn-app auto-updater
    Raspberry Pi 4 / 5 (64-bit OS)sudo snap install extreme-infinitv, or arm64 .deb / .AppImage from ReleasesSnap Store / in-app (AppImage)
    Android phone / tabletGoogle PlayPlay Store
    Android TV / Fire TVAFTVnews Downloader (see below), or Play Store on supported devicesManual / Play Store
    Web previewBuild with pnpm build and serve dist/ (no auto-update, no native features)Manual

    Android TV / Fire TV

    Sideload with the AFTVnews Downloader app. Open it, enter one of the codes below in the URL field, and install:

    • 8281651 (or aftv.news/8281651) - the full app, with the TV browse UI (Home, Live TV, Movies, Series, Search, Downloads, Settings). This is what most TV users want.
    • 1317634 (or aftv.news/1317634) - the receiver-only kiosk build. No browse UI; it boots straight into a pairing screen and only accepts casts from your phone or desktop.

    Both codes always resolve to the current stable release, so they keep working across updates. ADB (adb install Extreme-InfiniTV.apk) works too if you'd rather skip Downloader.

    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); ~55 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/*.

    Community

    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.

    The optional TMDB metadata enrichment uses the TMDB API with your own API key. This product uses the TMDB API but is not endorsed or certified by TMDB. Channel logos not supplied by your provider fall back to iptv-org's CC0 logo collection.