Klipa Player for Desktop
Klipa Player is a lightweight, local-first IPTV player for
Windows and Linux. It is designed for people who bring their own M3U/M3U8 playlist or
Xtream-compatible login. It includes no channels, subscriptions, ads, accounts,
or telemetry.
The product has a separate history and runtime from the Klipa mobile app. The
desktop UI shares Klipa's visual language, while its navigation and interaction
model are desktop-native.
Current status
Public source, pre-release candidate (one tagged Linux release exists; see the
release checklist):
- Native Windows and Linux Flutter runners in one local Git repository
- Klipa desktop shell, bounded M3U import, search and single-player vertical slice
- Masked Xtream login with bounded, live-only account/category/stream requests
- Compact category filtering and background-isolate playlist parsing
- Compact live controls for play/pause, mute, app-session volume, fit mode and
native full screen on Windows and Linux, with focus-scoped keyboard shortcuts,
channel up/down from the player, and playback-only auto-hide of the controls
and pointer
- Race-safe channel replacement behind a small playback port, with teardown-first
switching, bounded readiness, retry, a bounded automatic reopen of a live
channel that stopped after it played, and generic user-facing native errors
- Strict HTTP(S), redirect, size, header, protocol and private-network controls
- Import-time disclosure that HLS/DASH sources may choose nested media hosts;
the lightweight player trusts each user-added source for destinations while
continuing to treat its metadata and media as untrusted input
- Versioned SQLite3MultipleCiphers schema, atomic snapshot writes, Windows
DPAPI and Linux Secret Service key-sealing, reset primitives, and
database/WAL/SHM leak tests
- Encrypted library save and startup restore on a background isolate; a failed
save leaves the previous working snapshot active
- Stable multi-source identities, source/group filtering, rename, confirmed
delete, and atomic refresh with
Ctrl+R
- Encrypted per-channel favorites with responsive row toggles and a composable
favorites-only filter; stable favorites survive source refresh
- Encrypted last source/group/channel state with stale-identity validation and
an explicit one-click Resume action that never autoplays on startup
- Provider guide IDs, provider-direct bounded XMLTV retrieval, a plain/gzip
parser, atomic encrypted now/next snapshots, Xtream import/refresh integration,
an optional encrypted M3U guide address, and compact current-programme labels
are implemented
- Runtime networking has no Klipa service dependency: install and startup make
no Klipa request, and provider data is never routed through Klipa
- Confirmed reset and missing/corrupt-key recovery are wired; the Windows
release workflow builds an unsigned MSIX for the Microsoft Store, which signs
Store packages after certification (see
Code signing policy)
- Native Windows debug build, DPAPI, encrypted database and libmpv smoke tests pass
- Native release build and an authorized private MPEG-TS playback smoke pass
- Native Linux release bundle builds at about 29 MiB before packaging; local
files use the same maintained picker on Windows and Linux
- A no-admin Windows installer (about 26 MiB), Windows portable archive, and
Debian/Ubuntu package (about 9.7 MiB) build locally
- Real Windows and Linux install, clean-start, zero-TCP, and uninstall smoke
tests pass; neither installer adds an updater, service, or scheduled task
- Release tooling generates a 123-component CycloneDX SBOM, exact native hashes
and versions, license notices, and a high/critical vulnerability gate
- Deterministic release fuzzing covers M3U, XMLTV, and Xtream inputs; optional
Windows Authenticode and Linux detached-signature paths keep keys external
- Public source at https://github.com/KlipaTV/klipa-desktop; Windows ships
through the Microsoft Store (listing text in
packaging/windows/store/), and
no Windows build is offered for direct download
The Windows toolchain uses Flutter 3.44.6 stable, Visual Studio Build Tools
2022, the Desktop development with C++ workload, and Windows SDK 10.0.26100.
Run tool/build_windows.ps1 from PowerShell for the full native Windows
validation (analyze, build, test). It builds in a synchronized mirror under
%USERPROFILE%\develop\klipa-player-windows-native, which keeps builds
working when the checkout lives on a filesystem where Windows Flutter cannot
create its package symlinks (for example a WSL UNC path).
Development
Prerequisites:
- Flutter 3.44.6 stable
- Dart 3.12+
- Windows 11 or Windows 10 22H2 x64
- Visual Studio with Desktop development with C++ for native builds
- On Linux: GTK 3 development files, libmpv, and libsecret
flutter pub get
flutter analyze --fatal-infos --fatal-warnings
flutter test
flutter build windows --release
# Linux: flutter build linux --release
Automated tests use only synthetic fixtures or legally documented
interoperability streams. An authorized private provider may be used for a
manual local smoke test through the masked UI, but never include its URL,
username, password, token, or authorization headers in source, commands, logs,
issues, tests, or screenshots.
On Windows, library data is stored below the app-specific directory in
%LOCALAPPDATA%. The database is encrypted as a whole and its random key is
sealed to the current Windows user with DPAPI. There is no plaintext fallback.
Linux uses the same encrypted database and stores only its random key in the
desktop Secret Service keyring.
The application has no Klipa API, telemetry, update-check, guide proxy, or
startup endpoint. Network access is initiated only for a source the user adds,
its provider-hosted guide/artwork/media, or a future explicit external-browser
promotion action. Normal operation does not require a Klipa VPS.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗