Back to projects
Kotlin ★ pinned Active · 1.0.6 on Google Play

Headent Client

MikrotikExe/headentclient

Native Android client for Tvheadend — live TV, EPG, teletext, recordings (DVR) and radio. For Android TV boxes and phones, built with Jetpack Compose.

Android TVJetpack ComposelibVLCHTSPEPGDVRTeletext

Overview

Headent Client is an independent Android client for a Tvheadend server. It bundles no channels or content — it connects to a Tvheadend server you run and configure yourself. One APK serves both phones and TV boxes, with a UI optimised for D-pad remotes as well as touch. Version 1.0.6 added a teletext decoder built into the app, a guide and favourites for radio stations, and the colour keys of a TV remote. The app and website are localised into 31 languages. No ads, no tracking, no telemetry.

Key features

  • Live TV from your Tvheadend server over HTTP and the native HTSP protocol
  • EPG grid (TV guide) with fast scrolling and instant now/next from cache
  • Teletext (EN 300 706) decoded by the app itself, over HTSP and HTTP — colour pages, mosaic graphics, subpages, Fastext and all European character sets
  • Recordings (DVR): scheduling from the guide or the player, playback, resume and a categorised archive
  • Seeking inside recordings and the archive — drag the bar, or move a marker in 30 s steps with the remote (holding an arrow accelerates)
  • Audio tracks labelled by language and DVB subtitles with a dedicated renderer
  • Radio stations with their own guide, now/next, favourites and numbering from 1; picons (channel logos)
  • Favourites in your own order — reorderable with the remote or by dragging, published as launcher shortcuts and as a row on the Android TV home screen
  • Channel switching by number, channel list and zapping; colour and media keys on TV remotes
  • Optional parental lock with PIN — configurable grace period and scope
  • Deinterlacing (automatic or manual) and audio passthrough to TV/AVR on Android TV
  • Optional modern UI mode — home screen, player and navy/teal theme
  • Multiple servers with backup & restore of settings
  • Optimised for Android TV / set-top boxes (D-pad) and phones
  • Localised into 31 languages

Tech & architecture

Kotlin Multiplatform with Jetpack Compose for the UI and libVLC for playback. The shared KMP core holds the API client (Ktor, Basic/Digest auth), data models, HTSP, the DVR classifier and secure storage. The Android app is the actively developed target (one APK for phone and TV); an iOS (SwiftUI) target shares the core and is work in progress. Built with Gradle (the wrapper is part of the repository, so a fresh clone builds without installing Gradle); CI runs on GitHub Actions on each push, producing R8/minified release builds.

Project structure

shared/      — KMP core: API client (Ktor, Basic/Digest), models, HTSP, DVR classifier, secure storage
androidApp/  — Jetpack Compose UI, one APK for phone and Android TV
iosApp/      — SwiftUI (work in progress)

Requirements

  • A running Tvheadend server you have access to
  • Android 6.0 (API 23) or newer — Android TV or phone