
8.61 MB
Android 9.0+
272
arm64-v8a, armeabi-v7a, x86, x86_64
Verified safeScanned with ClamAV, APKiD, and Quark-Engine. No threats detected.
What's New
https://github.com/khalilbenaz/ultra-tv/compare/v1.0.29...v1.0.30/
Description
Ultra TV is a fully native Android TV IPTV client. D-pad navigation is handled by Compose-TV's focus tree (no WebView bridges), playback uses Media3 / ExoPlayer for native codec support, and the whole catalog (channels, movies, series, EPG, history, favorites) lives in a local Room database. It speaks Xtream Codes, M3U / M3U8 (URL or local file), and Stalker Portal out of the box.
A companion Cloudflare Worker (in cloudflare-config/) provides a MAC-based remote-config dashboard so users can provision their providers from a web browser and have the TV pull them in one click.
Features
Catalog & providers
- Xtream Codes · M3U URL · M3U file from local storage · Stalker Portal with Live + VOD + series catalogues (MAC handshake + lazy create_link at play time, including movies)
- Multi-provider — add as many as you want, pick the default in Settings (★ Default badge)
- De-duplication — re-adding the same (kind, url, username) reuses the existing row instead of duplicating
- Cloud sync via Cloudflare Worker — paste your device MAC into the dashboard (login + password), add providers, then the app pulls them with one tap. App reads are anonymous (the MAC, hashed from ANDROID_ID, is the bearer); only dashboard mutations require the per-MAC password.
- Background sync via WorkManager (every 6 / 12 / 24 h, or on every launch)
- Live sync progress banner pinned to the top of every screen during sync
Live TV
- Tivimate-style two-pane layout: categories on the left, channels of the selected category on the right
- Channel position numbers, logos, focus highlight, now-playing + next-up programme under each name (from cached EPG)
- Categories management (search, bulk Hide/Show, "Hide adult" preset, 🔒 / 🔞 markers)
- Cleans decorative wrappers (### FRANCE ### -> FRANCE) for display while keeping the DB intact
Movies / Series
- Netflix-style rails by category (top 25 per rail), hero banner with the featured title
- Focus scale animation (1.0 -> 1.08, 160 ms tween)
- Cross-content search (debounced 220 ms): channels + movies + series, with the last 10 recent queries as one-tap chips
- Favorites (per kind, browsable from a dedicated screen)
- Series episodes loaded on demand — Xtream via get_series_info (per-season map), Stalker via get_ordered_list?category=…; played through Media3 (Stalker episodes resolve their stalker:// URL via create_link at play time, exactly like channels and movies)
Player
- Media3 / ExoPlayer — HLS, DASH, MPEG-TS, MP4 with hardware codec support
- D-pad: BACK = exit, plus Live: ▲/▼ zap channels in the current category; VOD: ◀/▶ seek
- Subtitle + audio track selector (VOD only) — reads tracks from Media3, applies a TrackSelectionOverride
- EPG drawer overlay (Live only) — press OK/center to slide in a right-side channel list with now/next; D-pad picks a channel to zap to
- Chromecast button in the player toolbar — opens the system Cast picker when Google Play Services are available (silent no-op on Cast-less Android TV builds)
- Continue watching (position recorded every 10 s + on dispose)
- Auto-play last watched on launch option
- Open in external player (VLC / MX / Just Player / Next Player) for codecs Media3 can't handle
- Record VOD — from a movie's detail page, queue an OkHttp-backed download via WorkManager; progress visible on a Recordings screen; played locally once done (no external storage permission — saved under app-private external storage)
- Aspect & speed controls in the player toolbar — Fit / Fill / Zoom / 16:9 / 4:3 for picture; 0.5x / 1x / 1.25x / 1.5x / 2x for VOD playback speed
- Sleep timer (15 min · 30 min · 1 h · 2 h · cancel) — pauses + exits player at the deadline
- Stream stats overlay — resolution / video & audio codec / frame rate / bitrate / buffer ahead; toggled from the player overlay
Discovery / Home
- Dynamic Home: Continue watching (tap an item -> Resume / Dismiss sheet), Recently watched, Movies, Series, Featured channels rails
- First-time MAC card: shows your device MAC + dashboard steps when no provider is configured
- TV Guide grid (Tivimate-style): 12 h x N channels timeline with "now" indicator; refreshed from the provider's full xmltv.php feed (streaming pull-parser handles 50 MB+ feeds)
- Multi-View: up to 4 channels simultaneously in a 2x2 grid
Personalization
- 3 themes: Dark · AMOLED · Blue
- Adaptive nav: sidebar on tablets/TV (>= 840 dp), top bar on medium widths (600–840 dp, also the user-selectable option in Settings), bottom bar on phones (< 600 dp). Phones/tablets ship from the same APK.
- Multi-language UI: English / Francais / Espanol / العربية + System (auto-detect). RTL layout direction flips automatically for Arabic. The translation table covers nav, home, settings, and common buttons; the longer prose is still English for now.
- Boot autolaunch — open Ultra TV automatically when the box finishes booting
- Picture-in-picture — pressing Home while a stream plays shrinks the player into a corner (Android 8+)
- Onboarding wizard on first launch — 3-step flow showing the device MAC and the two provider-adding paths
- Show/hide channel numbers, hide adult categories behind a PIN, resume playback toggle, auto-play next episode
Backup & state
- Export/restore providers + favorites + watch history as a single JSON file (Storage Access Framework picker)
Security
- Parental PIN (SHA-256, DataStore-backed) — auto-locks adult categories on each sync when a PIN is set
- Per-channel lock — Settings -> Manage locked channels lets you flag individual channels; playing prompts for the PIN
- Stable per-device MAC derived from ANDROID_ID (hashed) — never the real Wi-Fi MAC
Updates
From version 1.0.5 onwards, Ultra TV includes a self-update mechanism. On launch, it checks GitHub for new releases. If an update is available, you can download and install it directly from the app in one tap.
Disclaimer
Ultra TV is an IPTV client, not a content provider. It does not include, host, or distribute any stream. Use only playlists, EPG sources, and credentials you are authorized to access in your jurisdiction.
License
MIT
Rate this app
Ratings & reviews
No reviews yet.