About this project

OTT-play FOSS is an IPTV/OTT player built around a local Rust HTTP server. It runs on Smart TVs (LG WebOS, Samsung Tizen, Panasonic, Sony), set-top boxes (Infomir MAG, Dune HD, Enigma2, Android TV), and desktop browsers. Playback covers HLS, DASH and plain HTTP streams through HLS.js and Shaka Player, with soft live reconnect on fatal HLS parse or network errors. The player provides an XMLTV EPG with fuzzy channel matching, time-shift/catch-up, denser guide rows, programme-title search, and reminders before timers. Other features include multi-list favorites with parental PIN, settings and favorites export/import as JSON, continue-watching archive resume bookmarks, and support for M3U playlists, Xtream Codes API and Stalker middleware. There are 24 device types with per-device remote control key mappings and 21 languages. A webhook-based push command system lets the player poll a local URL every 10 seconds. Commands are JSON objects and include popup messages, channel switching by number, name or random selection, and provider changes. Device UUIDs enable per-device routing, and an optional local proxy allows fully local automation without a central server. Remote text entry (swop) can use a phone keyboard via a Cloudflare Worker when the TV and phone are on different networks; the worker requires allowlisting the device UUID. The central server's webhook poll and notify endpoints are disabled for security, leaving local proxy use recommended for trusted home networks. Debug support is opt-in via a URL query, localStorage, a window property, or a server config endpoint. When enabled, a HUD can show playback details. Mobile apps use Capacitor to wrap the TypeScript frontend for iOS and Android. Tauri desktop and Capacitor device smoke documentation and scripts exist for Mode B testing. Installation packages are attached to tagged releases: macOS .dmg/.app.zip (unsigned, with Gatekeeper quarantine removal steps), Windows .msi/.exe, Linux AppImage/.deb/.rpm, iOS .ipa for sideloading through AltStore, TestFlight or Xcode, and Android .apk for direct install or ADB. Docker multi-arch images (amd64/arm64) are published as alvit/ottplay-foss, built on musl/Alpine to run on older-glibc hosts such as Synology DSM Docker. Building from source uses npm for the player bundle and cargo for the Rust server; the README documents smoke scripts for companion, stream-proxy headers, logo concurrency, XMLTV cache refresh, Mode A E2E play path, Capacitor devices, and Tauri desktop.