Skip to content

Releases: ahXN00/OwnTV

OwnTV v2.0.0

12 Jun 21:40

Choose a tag to compare

v2.0.0 — 2026-06-13

This update delivers the complete, long-term vision for the app. I’ve been working on this feature set for a long time! My original goal was to launch with everything ready, but I decided to get the core IPTV features into your hands early so we could catch and fix any bugs first. Now, the full roadmap is finally here. This update brings you content customization, a smarter guide, resume & complete backup, in-app updates, custom accent colors, and a top-to-bottom D-pad navigation overhaul, plus all the bug fixes from the last update.

✨ New features

  • Playlist-order sorting — sync now preserves your provider's original order (channels, movies,
    series, and category/group order). Each section (Live TV / Movies / Series) has a sort chip next to
    the search bar to toggle Playlist/Provider order ↔ A–Z, remembered per section. Live TV defaults
    to playlist order. (Re-sync a source once to pick up the stored order.)
  • Full category names — the category rail expands when focused (like the sidebar) and shows full
    names; Favorites/History show icon + label.
  • Content customization (per profile, survives re-syncs)
    • Hide, rename, and reorder categories in Live TV / Movies / Series (Settings → Customize).
    • Hide and rename channels straight from the Live preview pane.
    • Hidden-channels list (top of Settings → Customize) to unhide.
    • Hidden channels disappear everywhere: lists, folders, favorites, section & global search,
      recently watched, and the EPG guide.
  • Custom EPG URL per source — for Xtream and M3U; your own XMLTV link overrides the defaults
    (Xtream xmltv.php / M3U url-tvg).
  • Tune from the Guide — OK on a channel name tunes straight to it; programme details have a
    Watch channel button.
  • Guide search — a search bar in the Guide filters channels across the whole guide (not just
    the visible rows).
  • Guide lists every channel — rows load their programmes lazily as they scroll into view, so the
    guide shows your full lineup (no more 300-channel cap) with flat memory use.
  • Resume, your way — replaying a movie/episode with a saved position now shows a small
    "Resume at 23:45?" prompt (Resume / Start over). A new Resume playback setting in Video Player
    settings picks the behavior: Always resume · Ask to resume (default) · Never resume.
  • In-app updates — OwnTV updates itself straight from GitHub Releases: automatic check shortly
    after launch (toggleable via Settings → Check updates on startup), or manually via
    Settings → Check for updates. The startup check shows a small top-right status card
    ("Checking… / You're up to date", auto-hides) that stays with Update now / Later when a release
    is newer; the manual dialog shows the full changelog. Updating downloads the APK with progress
    and hands it to the system installer — no storage permission needed (the APK stays in app-private
    storage).
  • Custom accent colors — the accent picker grew from 5 presets into a full palette + hex code
    input (e.g. #52DBC8); the whole Material theme is generated from your color.
  • Simpler Settings — the Personalization sub-menu was dissolved: Theme (picker), Accent
    color
    and UI Zoom now live directly under Appearance (avatars are edited per profile in
    Profiles).
  • Selective backup & restore — exporting asks what to include (profiles & sources,
    customizations, favorites, history, resume positions — or everything), and restoring shows the
    file's contents and lets you pick which parts to apply.
  • Restore on first launch — setup now starts with a choice: create a new profile, or restore
    everything from a backup file
    (profiles included) without creating a throwaway profile first.
  • TV-style search bars — focusing a search bar no longer opens the keyboard; it highlights like
    any control and the keyboard opens on OK (applies to Live/Movies/Series, the Guide and global
    Search).
  • About screen — Settings gained a proper About dialog (version, license, author, project link);
    the old "Star on GitHub" / "Report a bug" browser links were removed (TV browsers are no place to
    send people).
  • EPG status — the Guide shows "Guide loaded: N channels · M programmes"; each source row in
    Settings shows its EPG state (✓ + count, or "not downloaded").
  • Complete backup — Backup & Restore now covers everything: profiles, playlists/sources,
    customizations, favorites, watch history, and resume positions. Favorites/history/resume
    re-attach automatically once the restored sources finish syncing (episode data attaches when you
    open the show).

🛠️ Fixes & stability

  • Runs properly on real TVs — a top-to-bottom playback overhaul for TV-class hardware:
    • Direct-to-display rendering: on TV devices the hardware decoder now writes frames straight
      to the screen (the same zero-copy pipeline YouTube/Netflix use) — smooth 4K HDR with the TV's
      own native HDR handling, faster channel starts, and a far lighter memory footprint. Text
      subtitles are drawn by the app Netflix-style; a Renderer setting (Auto / Quality) can force
      mpv's full GL renderer (complete ASS/PGS subtitle styling + zoom modes) on devices that can
      afford it, and the app falls back to it automatically where direct rendering isn't available.
    • The player's memory scales to the device (the old emulator-tuned 256 MB stream buffer
      OOM-killed budget 4K TVs): lean buffers and cheaper framebuffers on low-RAM devices.
    • A decode watchdog stops playback with a clear message if a 4K/8K stream would fall back to
      software decoding (which overloads TV chips).
    • The image cache is capped, going to the background releases the stream immediately, and the
      app sheds caches when the system signals memory pressure instead of getting killed.
  • No more freezes (ANRs) — all player commands run off the UI thread; a stalling stream can no
    longer lock up the remote. Fast preview-scrolling coalesces loads (only the channel you land on is
    opened).
  • Blank player fixed — preview → fullscreen now reuses the running stream instead of
    reconnecting (no overlapping connections, which tripped strict 1-connection providers with
    HTTP 509). The transition is seamless now, too.
  • Live-drop recovery — temporary provider errors (e.g. connection-limit responses right after a
    channel switch) are now retried at the network layer and usually ride over invisibly; if a live
    stream still dies, the player shows the buffering spinner and auto-reconnects, and only then a
    proper error + Retry — never a silent black screen.
  • Guide fixes — the grid now picks only channels that actually have programmes (was scanning the
    first 300 by number) with case-insensitive EPG-id matching (fixed "guide loaded but empty"); Back
    in the Guide no longer blocks exiting the app.
  • Episode resume actually works now — resume positions for series episodes were read on play but
    never saved; episodes now save progress every 10s like movies (and track prev/next in the queue).
  • Crash fixed when hiding a live channel (Paging re-collection).
  • Profile PIN locks can now be removed — the profile editor gained a Remove PIN lock toggle
    (previously a blank PIN field just kept the old PIN forever).
  • Restoring a backup keeps you in Backup & Restore — it no longer bounced the app back to the
    Settings menu mid-restore (the profile swap briefly emptied the profile list, which reset the UI).
  • Category rail performance — virtualized list + overlay expansion: buttery smooth with hundreds
    of categories (the channel grid is no longer re-laid-out during the animation).
  • Layout fixes — the Movies download button no longer stretches; preview-pane buttons reflowed;
    the sort chip matches the search bar height.
  • Focus fixes — rename dialogs focus their text field; the source edit form focuses the Name
    field; Settings → Sources restores focus after add / edit / re-sync / failed import.
  • D-pad navigation fixed everywhere — moving between panels no longer lands on whatever happens
    to be horizontally aligned: entering the category rail always lands on the selected folder,
    entering the sidebar lands on the current section, entering a content pane lands on the
    last-focused (or first) item — never the search bar, every Settings sub-screen opens on its
    first control, and closing any dialog returns focus to the row that opened it. Returning from
    playback puts focus back on the exact item you played — the channel row in the Guide, the
    episode in a show, the poster in Movies/Series, the row in Downloads.

Full Changelog: v1.0.0...v2.0.0

OwnTV v1.0.0

11 Jun 03:26

Choose a tag to compare